菜鸟一个,主要是学习Android破解,记录提高自己。
1. 准备环境
- IDA Pro 6.1以上版本
- Android 虚拟机或一部root的手机
- 安卓改之理(apktool与jeb也行)
- JD-Gui
2. 分析过程
首先利用ApkIDE将apk文件解压,获得以下结构,如何调用JD-Gui查看代码
从代码中可以看到,程序做了反调试的操作。输入的字符串为flag时,弹出来一个Toast提示,所以关键代码在libeasy中。
用IDA 打开libeasy,查找导出函数Java_com_syc_kitkat_func(为什么是这样子?请查找相关资料,JNI编程),但是找了半天没有发现此函数,顿时没了方向。
后来记起来,so文件申明注册函数,可以在JNI_Onload中注册。dex文件加载so文件时,首先会在导出函数中查找JNI_Onload函数,JNI_Onload的默认情况下,不需要我们去声明与定义,但是我们可以重写JNI_Onload,来注册func函数。
查看JNI_Onload函数,由于对arm不是很熟,直接用IDA+f5 arm插件