在github上瞎逛的时候找见了一个新的反编译工具Jadx
,使用简单,命令行直接搞定,感觉比之前用的apktool
+dex2jar
+jd-gui
方式要方便很多。可以直接反编译.apk
文件,也可以反编译解压出的classes.dex
文件。特此记录使用过程。
下载地址
反编译之后的GUI代码查看面板:
安装
按照作者指定的安装步骤进行安装,我用的是git bash
命令行工具,全部在命令行完成:
git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist
作者说:on Windows, use gradlew.bat instead of ./gradlew
,在windows上用gradlew.bat
代替./gradlew
,但是我在git bash
中运行的时候只认./gradlew
。
等上面的gradlew命令执行完之后,便可以进行反编译操作了。
运行
作者的说明文档中给出了一个使用的例子:
cd build/jadx/
bin/jadx -d out lib/jadx-core-*.jar
#or
bin/jadx-gui lib/jadx-core-*.jar
说明:先进入jadx文件夹,第一个命令bin/jadx -d out lib/jadx-core-*.jar
的意思是在该文件夹下创建out
目录,将lib
文件夹下的jadx-core-*.jar
文件进行反编译。反编译出的文件存放在out
目录中。
第二个命令bin/jadx-gui lib/jadx-core-*.jar
的意思是将lib
文件夹下的jadx-core-*.jar
文件进行反编译并用自带的GUI打开,效果如上图。
那么按照这个思路,我们来进行apk的反编译。
我在工程中新建了一个文件夹jadx\build\jadx\input
来存放我需要反编译的apk,然后执行命令:bin/jadx-gui input/app-debug-unaligned.apk
就开始打印反编译的log,同时打开了GUI。等GUI左下角的loading走完之后,表示反编译已经完成了。
可以看到反编译出的代码以及资源文件。如果apk是混淆过的,就会看到一系列abcd....
表示的包以及文件。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。