很多Android APK由于加密了(比如加了花指令), 无法反汇编为Java程序。此时只能查看Smali源码, 用Smali源码进行调试分析。
smali以及baksmali的jar包用法
baksmali下载:jar包下载地址
命令行:java -jar baksmali-2.1.3.jar -o [输出文件夹] dex文件
运行结果如图:
运行成功后,可以进入smali文件夹中看到转换成功的smali文件了。
smali源码的调试分析
用QTrace(http://www.qtrace.top)程序可以方便的查看Smali源码,并进行调试。
打开QTrace, 点击菜单 File->项目->编辑项目:
项目路径设置为,反编译后的Smali源码路径。
并把要调试的代码,添加到项目中。
然后就可以打开对应的Smali源码进行调试了,调试方法跟Java源码完全一样。当发生中断时,源码的位置也是非常准确的。