目录
本实验操作系统为Windows 7,所需要的软件有:
1、打开Android 逆向助手,选中“dex转jar”按钮,将crackme0502.apk导入Android 逆向助手。
点击“操作”,完成转换。
2、进行IDA分析。将crackme0502.apk扩展名由apk改为zip,然后解压缩包,得到classes.dex文件,并将classes.dex导入IDA中。
3、切换到exports选项卡,通过搜索,找到“MainActivity$2.onClick@VL”函数。
4、双击“MainActivity$2.onClick@VL”函数进入操作界面。
5、按空格键切换到IDA的流程视图。
通过流程图,我们可以看到:代码的关键是if-eqz v2这条语句,通过更改这条语句的判断逻辑,即可达到破解的目的。
6、将光标定位到if-eqz v2上,单击Hex View-1标签,切换到十六进制处,可以看到if-eqz v2的字节码为“38 02 0F 00”,地址为“0002D0BE”。
7、将classes.dex文件导入C32 ASM中,以十六进制打开,并跳转到0002D0BE处,将38改为39.
8、保存修改后的文件,使用dexfixer对该dex文件进行重新校验,具体做法:直接将该文件拖入dexfixer中。
注意:在windows 7中运行不了dexfixer,需要用windows xp完成这一步。
9、将修复好的classes.dex文件放到原来的文件夹,并且删除之前的签名文件夹META-INF,然后将所有文件压缩到一个压缩包下。
10、将生成的zip文件改扩展名,由zip改为apk。然后打开Android逆向助手,对该APK文件重新签名,得到crackme_sign.apk文件。
11、在雷电模拟器中安装生成的apk文件。
12、运行安装的apk文件,直接单击“检测注册码”按钮,提示“注册码正确”。