使用Xposed去Hook Android,最让人头痛的是怎么样才能找到合适的函数入口。
Xposed的作者rovo89在开发教程https://github.com/rovo89/XposedBridge/wiki/Development-tutorial里说,有两个方法:
Possibility one: Decompile it。rovo89说反编译得到smali代码很难阅读。在没有JEB之前确实是这样。有了JEB和JD-GUI,反编译apk不再是梦。当然,这里涉及到另一个问题:很多程序是以odex打包的,而JEB只支持dex格式。所以需要将odex转换成dex或jar。
smali可以将odex反编译成.smali文件;dex2jar可以将dex变成jar文件。现在我们以CardManager.odex为例,对CardManager.odex进行反编译。
1. 运行 java -jar baksmali-1.3.2.jar -a 12 -x CardManager.odex // 会生成一个out文件夹,里面的文件以.smali结尾
2. 运行 java -jar smali-1.3.2.jar out/ -