安卓逆向12.IDA Pro+Cheat Engine KeyGen AliCrackMe

用到的工具

1.IDA7.2

2.GDA3.72

3.Cheat Engine 6.5

目的:

主要是学习下Cheat Engine工具怎么在PC端运行,调试安卓程序!

下载链接:

链接:https://pan.baidu.com/s/1Q_Q8ovHLXUcsRjLyCf0d0w
提取码:u72u

1.程序界面

2.GDA打开程序,定位到关键验证位置,发现核心验证在so层,函数名为SecurityCheck,参数为String类型我们输入的假码

3.提取出so文件,打开IDA,定位到验证函数

4.F5查看伪代码,采用的是JNI静态注册,算法很简单

5.对伪代码进行整理分析后得知,当我们输入的字符串和全局变量strRightKey相同即注册成功!

8.转到strRightKey查看正确的Key,结果是"woshidaan"

9.然而实际输入后提示验证码校验失败!

10.通过IDA分析我们已经可以肯定,最终一定会和strRightKey做对比,为什么这里却不成功呢?很可能是程序在运行之后对这个字符串进行了修改,真正的key并不是这个,需要跑起来才行。
11.本打算使用IDA附加单步调试去跟踪正确的key,结果发现有反调试!那我们换个思路,用CE去附加APK进程,然后找到字符串相对偏移,就拿到了正确key了!所以现在IDA中记录下key偏移为0x4450

12.执行命令【adb push C:ceserver_x86 /data/local/tmp】把ce的调试服务ceserver_x86发送到模拟器/data/local/tmp目录下

13.在adb shell中切换到/data/local/tmp目录下执行【chmod 777 ceserver_x86】,将ceserver_x86修改为777权限,然后执行【./ceserver_x86】启动ce调试服务

14.新开CMD,执行【adb forward tcp:52736 tcp:52736】进行端口转发

15.重新进入adb shell,执行【ps】,查询所有进程信息,找到我们要调试的进程ID为3080

16.执行【cat /proc/3080/maps】查询进程ID为3080的进程所有模块信息,可以看到模块基址为0xC000000,根据上面得到的Key偏移0x4450,那么正确key位置应该在0xC004450

17.打开CE,进程->网络->输入127.0.0.1端口57236

18.选择进程并打开

19.添加地址0xC004450,看到正确key为"aiyou,bucuoo"

20.验证

原文地址:https://www.cnblogs.com/fuhua/p/12753115.html