逆向 APK 文件
目录
解包工具 apktool
apk 包本身是个 zip 包,包里面的 xml 资源等都转换为二进制数据无法阅读。
使用 apktool 能对 apk 进行解包,如果有修改后,还能重新打包。
工具下载:https://apktool.org/
使用命令:
|
|
解包命令可以加额外参数:
-f :如果目标文件夹已存在,则强制删除现有文件夹(默认如果目标文件夹已存在,则解码失败)
-o :指定解码目标文件夹的名称(默认使用 APK 文件的名字来命名目标文件夹)
-s :不反编译dex文件,也就是说 classes.dex 文件会被保留(默认会将 dex 文件解码成 smali 文件)
-r :不反编译资源文件,也就是说 resources.arsc 文件会被保留(默认会将 resources.arsc 解码成具体的资源文件)
后面直接反编译 Java 的源码, 我常用的命令是:
|
|
解包后的目录结构:
AndroidManifest.xml:经过反编译还原后的 manifest 文件
original 文件夹:存放了未经反编译过、原始的 AndroidManifest.xml 文件
res 文件夹:存放了反编译出来的所有资源
smali 文件夹:存放了反编译出来的所有代码,只不过格式都是.smali类型的
转换工具 dex2jar
将安卓的 dex 文件转换为 class 文件
工具下载:https://sourceforge.net/projects/dex2jar/
使用方法:
d2j-dex2jar classes.dex
反编译工具 jd-gui
反编译 class 显示 Java 代码
工具下载:http://java-decompiler.github.io/
启动图形界面,文件-> 打开 classes-dex2jar.jar
支付宝
微信