在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....表示的包以及文件。


Sanchi
364 声望14 粉丝

01001001001001110110110100100000011101110110100101110100011010000010000001111001011011110111010100101110