方法
- 用 Jadx 反编译 apk 到 Java 代码。这个比较方便,代码质量也不错,配置 idea 来打开调试,大部分代码可以跳转。这样对代码结构,加密字段能有个基本了解。
- 用 Jeb 处理 Jadx 不能反编译的代码。Jeb 拥有更强大的反编译引擎。
- 用 Jeb 动态调试。不涉及 so 文件的,完全可以 Jeb 动态调。有个 native debugger 选项,低版本不能去掉,导致经常出错。郁闷,坐等高版本流出。
- 用 Android Studio + ideasmali 配合动态调试。这个方法需要先用 Android Killer 导出 smali 数据。调试的时候发现经常出现代码行不对应的情况。不知道哪里的问题。
- Android Killer 重打包。在指定位置添加 log 代码,打印变量内容。
- IDA 动态调试
代码
插入 log,v2 是 tag,v1 是要打印的变量
const-string v2, "TAG"
invoke-static {v2, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I