反编译 APK

反编译 APK
BambooAndroid逆向
反编译APK
工具介绍
如果只是想拿到apk中的图片资源,只需要将apk后缀改为zip然后解压缩,res目录中就包含了所有的资源文件
classes.dex 则包含了所有的代码,只是还无法查看
AndroidManifest.xml 文件打开会发现无法阅读,都是16进制数
此时就需要用到工具 —— ApkTool
ApkTool
下载
安装
使用
1 | apktool d xxx.apk |
d 表示 decode
还可以加上一些附加参数来控制 decode 行为:
-f :如果目标文件夹已存在,则强制删除现有文件夹(默认如果目标文件夹已存在,则解码失败)
-o :指定解码目标文件夹的名称(默认使用 APK 文件的名字来命名目标文件夹)
-s :不反编译dex文件,也就是说 classes.dex 文件会被保留(默认会将 dex 文件解码成 smali 文件)
-r :不反编译资源文件,也就是说 resources.arsc 文件会被保留(默认会将 resources.arsc 解码成具体的资源文件)
反编译之后会得到以下内容:
- 1、AndroidManifest.xml:经过反编译还原后的 manifest 文件
- 2、original 文件夹:存放了未经反编译过、原始的 AndroidManifest.xml 文件
- 3、res 文件夹:存放了反编译出来的所有资源
- 4、smali 文件夹:存放了反编译出来的所有代码,只不过格式都是
.smali
类型的
xml文件已经可以看懂了,不过 smali 类型文件我们依然无法阅读
此时,需要用到另一个工具 —— dex2jar + jd-gui
dex2jar
功能
将 dex 转换成 jar 形式文件
下载
使用
将下载的 dex2jar 压缩包解压后,可以看到以下内容
windows上使用dex2jar.bat即可
1 | dex2jar.bat classes.dex路径 |
看到上述console则表示成功
代码都位于 classes-dex2jar.jar 中
现在需要用到另一款工具 jd-gui
jd-gui
下载
根据需要下载对应包即可
使用
解压到本地,双击jd-gui.exe文件即可运行
用jd-gui打开之前解压出来的dex文件即可看到所有的源码
评论
匿名评论隐私政策