目录

apk反编译工具Jadx的使用

目录

在github上瞎逛的时候找见了一个新的反编译工具Jadx,使用简单,命令行直接搞定,感觉比之前用的apktool+dex2jar+jd-gui方式要方便很多。可以直接反编译.apk文件,也可以反编译解压出的classes.dex文件。特此记录使用过程。

github-jadx

反编译之后的GUI代码查看面板:

https://camo.githubusercontent.com/2b504e792e3ddb1d95094b44e01ab21e101b6f56/68747470733a2f2f692e696d6775722e636f6d2f6839313749425a2e706e67

安装

按照作者指定的安装步骤进行安装,我用的是git bash命令行工具,全部在命令行完成:

1
2
3
git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist

http://ww1.sinaimg.cn/large/006dvlfWgy1fvemkts8d7j30p90by759.jpg

作者说:on Windows, use gradlew.bat instead of ./gradlew,在windows上用gradlew.bat代替./gradlew,但是我在git bash中运行的时候只认./gradlew

等上面的gradlew命令执行完之后,便可以进行反编译操作了。

运行

作者的说明文档中给出了一个使用的例子:

1
2
3
4
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

http://ww1.sinaimg.cn/large/006dvlfWgy1fvemld3jeij30lf022t8p.jpg

就开始打印反编译的log,同时打开了GUI。等GUI左下角的loading走完之后,表示反编译已经完成了。

http://ww1.sinaimg.cn/large/006dvlfWgy1fvemlr6exyj30bt07lq33.jpg

可以看到反编译出的代码以及资源文件。如果apk是混淆过的,就会看到一系列abcd....表示的包以及文件。

http://ww1.sinaimg.cn/large/006dvlfWgy1fvemm07x14j308z09c74c.jpg