本文说明如何在ubuntu下进行apk的反编译

工具 链接到标题

apktool 链接到标题

https://ibotpeaches.github.io/Apktool/install/ 下载linux版本的文件,分别为apktool和apktool.jar 将以上文件放在**/home/frank/opt/android-tool/disass**下

dex2jar 链接到标题

https://github.com/pxb1988/dex2jar 下载最新的release版本,解压缩到**/home/frank/opt/android-tool/disass**下

jd-gui 链接到标题

http://jd.benow.ca/ 下载linux版本放到**/home/frank/opt/android-tool/disass**下 jd-gui需要libgtk-x11-2.0.so.0,且jg-gui只有32bit版本,需要安装

sudo apt-get install libgtk2.0-0:i386

配置 链接到标题

将**/home/frank/opt/android-tool/disass**添加到环境变量,修改~/.bashrc在最后加入一句

export PATH=$PATH:/home/frank/opt/android-tool/disass/

使用 链接到标题

apktool 链接到标题

从apk中提出资源

apktool d app-debug.apk

会在当前目录下产生app-debug目录,里面保存反编译出来的资源

.
├── AndroidManifest.xml
├── apktool.yml
├── original
├── res
├── smali
└── smali_classes2

dex2jar 链接到标题

将dex转为jar 先将app-debug.apk改为app-debug.zip,并解压缩得到dex文件

unzip app-debug.zip

再将dex文件转换为jar

d2j-dex2jar.sh classes.dex
d2j-dex2jar.sh classes2.dex

生成的文件为classes-dex2jar.jar和classes2-dex2jar.jar

jd-gui 链接到标题

查看转化为jar的源文件 执行jd-gui开启classes2-dex2jar.jar, 可以查看各个class及代码 jdgui