前言
反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。
该教程只在mac环境下测试。
ApkTool
资源文件获取,Google提供的APK编译工具,可以反编译和回编译。一般将apk文件后缀改成zip解压后得到的xml会是乱码,用apktool则不会。
下载
下载地址:地址一(google)、地址二(github)
上图的意思大概是:
wrapper script 右键 >>> 链接另存为 >>> 文件名保存为 apktool,或者直接点进去,把网页里的内容复制,把复制的内容保存到一个命名为apktool文件里,文件不要加后缀;
下载 apktool-2.x.jar,下载地址:apktool-2.x.jar download,下载完成后改名为:apktool.jar;
将 apktool 和 apktool.jar 移动到 /usr/local/bin 文件目录下,需要添加权限;
sudo chmod -R 777 文件夹名称
# -R 是指级联应用到目录里的所有子目录和文件
# 777 是所有用户都拥有最高权限在终端能够运行 apktool 就说明成功了。
使用
使用很简单,终端 cd 到任意一个文件夹中,然后输入命令:
反编译
apktool d xxx.apk # 反编译,其中xxx.apk为反编译的apk
二次打包
apktool b xxx -o yyy.apk
生成的文件夹(终端cd到哪儿文件夹就在哪儿)就是该apk的资源文件;
dex2jar
将dex文件转换为jar包;
下载
下载地址:dex2jar download
下载完成后就是一个zip文件,解压到任意一个文件夹中;
使用
解压 dex2jar-2.0.zip 到文件夹 dex2jar-2.0;
修改文件权限
Chmod +x ../dex2jar-2.0/d2j-dex2jar.sh ../dex2jar-2.0*/*d2j_invoke.sh
# d2j-dex2jar.sh 和 d2j_invoke.sh 为绝对路径;
输入命令:
sudo sh ../dex2jar-2.0/d2j-dex2jar.sh xxx.apk
xxx.jar 就是终端cd后的目录里。
jd-gui
JD-GUI是一个独立的图形工具,用于显示“.class”文件的Java源代码。您可以使用JD-GUI浏览重建的源代码,以便即时访问方法和字段。
下载地址:JD-GUI