破解范围:apk、dex、jar、zip、class、aar
搜索功能:可以点击 Navigation -> Text Search 或者 Navigation -> Class Search 激活它 。jadx 的搜索,支持四种维度,Class、Method、Field、Code
搜索在哪里被调用: 找到我们需要查看的类或者方法,选中点击右键,选择 Find Usage。查看某一种方法在哪里被调用
反混淆deobfuscation: 这个功能可以在 Tools -> deobfusation 中激活。标记混淆后的 方法名称。
一键导出gradle工程:可以通过 File -> Save as gradle project 来激活这个功能。
jadx 错误处理:
inconsistent code :有时候有代码,反编译的不完整,你会看到 JADX WARNING : inconsistent code 标志的错误。
解决方案:开启 Show inconsistent code 开关。你可以在 File -> Preferences 中找到它。
由于内存不足引起的错误:
官方对于这样因为内存不足引发的问题,也提供了一些解决方案。
1、减少处理的线程数。
jadx 为了加快编译的效率,所以是使用多线程处理的,而多个线程会耗费跟多的内存。所以减小反编译时候的线程数,是一个有效的方法。
如果使用命令行的话,可以使用-j 1参数,配置线程数为 1,不配置的话,默认线程数为 4。
而使用 jadx-gui 的话,可以在 Preferences 中,通过配置 Processing threads count 来配置线程数。
2、修改 jadx 脚本
直接编辑 ./bin 目录下的 jadx 脚本,配置找到 DEFAULT_JVM_OPTS ,将它设置为DEFAULT_JVM_OPTS="-Xmx2500M",就可以配置当前使用的内存大小。
如果是 Windows 系统,你需要编辑 jadx.bat 文件。
3、使用命令行命令
如果以上方式都不好用,在没有更好的办法的情况下,你可以直接使用命令行,通过 jadx 的命令进行放编译。并将线程数配置为 1 ,这样虽然慢一些,但是多数情况下,是可以正常输出反编译后的代码的。
举个例子:
jadx -d out -j 1 classes.dex
更过命令,可以通过jadx -h命令进行查看。
jadx-help
仔细看看 jadx 命令配置的参数,基本上都可以在 Preferences 中,找到对应的配置项,相互对照理解一下,应该不难发现它的使用方式。