使用CE查找Android中变量的偏移

 学习逆向联系QQ1847076032
 QQ群692903341

0x00 准备工作
下载Cheat Engine以及调试器服务端:https://www.cheatengine.org/index.php
夜神模拟器:https://www.yeshen.com/
下载安装贪婪洞窟(梦境模式):http://a.4399.cn/game-id-94656.html

0x01 CE远程挂接模拟器
将CE工具的服务器文件传入模拟器中:
adbpush C:\Users\Darkbright\Desktop\ceserver_x86 /data/local/tmp
进入模拟器shell:
adbshell
然后执行:
#cd /data/local/tmp/
#chmod 777 ceserver_x86
#./ceserver_x86
Windows端另起一个终端,进行端口转发:
adbforward tcp:52736 tcp:52736
打开CE工具,连接模拟器(注意选择Network):
使用CE查找Android中变量的偏移_第1张图片
使用CE查找Android中变量的偏移_第2张图片

0x02 查找游戏数据
打开游戏,使用CE搜索最小攻击力的值:
使用CE查找Android中变量的偏移_第3张图片
使用CE查找Android中变量的偏移_第4张图片
通过戴上/取下武器改变这个值,并使用CE工具进行搜索
在确定变量的地址之后,下面找到这个变量的基地址:
首先查找Find out what writes to this address:
使用CE查找Android中变量的偏移_第5张图片
搜索算出的上一级地址:
使用CE查找Android中变量的偏移_第6张图片
后续持续查找Find out what accesses this address,直到找到基地址:
使用CE查找Android中变量的偏移_第7张图片
使用CE查找Android中变量的偏移_第8张图片
使用CE查找Android中变量的偏移_第9张图片
出现模块名,表示找到了基地址
下面整理整体偏移:
使用CE查找Android中变量的偏移_第10张图片
重启CE和游戏,找到的数据能够正确获取,说明方法正确。

0x03后续说明
通过CE找到的数据偏移基本上通用模拟器与真机,唯一的区别是不同的机器模块加载的基地址不尽相同,后续需要编写代码获取模块加载地址。
后续会封装Linux进程读写API,包括模块基地址获取、进程内存空间读写等内容。

你可能感兴趣的:(Android逆向,手游逆向)