反编译代码
使用到的工具:
- -- 将dex文件转换成jar文件
- -- 将jar文件转换成java代码
具体操作
dex2jar
- 将想要反编译的 apk 文件重命名为 zip 文件,并解压得到相关的文件夹。
- 将解压文件中的 dex 文件防止到 dex2jar 解压出来的目录下,进入该目录下执行命令行
d2j-dex2jar class.dex复制代码
如果没有什么错误的话,dex2jar 目录下会多一个 jar 文件,该文件就是该工具成功转换出来的 jar 文件。
jd-gui 工具使用
打开通过 dex2jar 生成的 jar 文件,就可以查看相应的 java 代码。
反编译资源
通过解压方式获得资源文件是在打包过程中被编译过的,直接打开是看不到明文代码的,所以我们要对资源文件进行反编译,这时我们就需要另外一个工具了-- 了,更工具能够极大程度的还原 apk 中的资源文件。
具体操作
- 下载两个文件, apktool.jar 和 apktool.bat 两个文件,将两文件放置于同一个文件夹下。
- 将反编译的 apk 文件拷贝到该文件夹下
- 通过终端进入该文件目录下,执行命令:
apktool d xxx.apk复制代码
apktool 附加参数含义
- -f 如果目标文件夹已存在,则强制删除现有文件夹(默认如果目标文件夹已存在,则解码失败)。
- -o 指定解码目标文件夹的名称(默认使用APK文件的名字来命名目标文件夹)。
- -s 不反编译dex文件,也就是说classes.dex文件会被保留(默认会将dex文件解码成smali文件)。
- -r 不反编译资源文件,也就是说resources.arsc文件会被保留(默认会将resources.arsc解码成具体的资源文件)
通过以上操作,APK 资源反编译的工作完成,可以正正常查看APK 资源文件。如果操作失败,请根据相应的错误信息进入搜索查询。