要求apk未使用高级加密工具,例如腾讯的加固或者其他加密方法加密。最好是未加密的。此处例子是我自己的一款软件的早期未额外加密版本。
反编译apk的目的是获取spk包中的java代码、xml、布局和图像等资源。
apktool的项目地址是https://ibotpeaches.github.io/Apktool/install/
,可以找到下载地址等信息。其中下载信息如下。
apktool可以在如下网址下载jar包,重命名为apktool.jar。
https://bitbucket.org/iBotPeaches/apktool/downloads/
需要使用批处理脚本或shell脚本运行这个jar包。脚本下载地址是:
xxxxxxxxxx
https://ibotpeaches.github.io/Apktool/install/
将脚本和apktool.jar放在同一目录里。不带参数运行脚本应该可以看到一些信息,说明可以运行。建议使用新版本的jar包,旧版本的对新的sdk产生的apk支持不好。
项目地址为https://github.com/pxb1988/dex2jar
,本文使用的是https://github.com/pxb1988/dex2jar/releases/download/2.0/dex-tools-2.0.zip
。
项目地址为https://github.com/6168218c/FernflowerUI
,可以获取其最新发布版本。
有可能会被报病毒。该软件为一个UI,它会自动下载其后端程序。
注意,其稳定版本为2015年的版本,相当老旧,可能使用较新的每夜构建的快照版本更加合适。我在使用2015年的旧版本的时候出错了,而快照版本作为可以正常使用。
将apk文件,apktool.bat,apktool.jar放在一起,并在该目录中运行脚本:
xxxxxxxxxx
$ apktool.bat d myapk.apk
解这就会在该目录中产生一个文件夹,其中包含了apk的资源。
使用解压缩软件,或者干脆把apk包命名为.zip文件,然后提取其中的.dex文件到一个文件夹里。可能有多个dex文件,全部提取出来。
运行dex2jar中的借本即可从dex得到jar:
xxxxxxxxxx
$ d2j-dex2jar.bat classes.dex
建议使用static版本的fernflowerUI,首次使用的时候他会提示需要下载后端程序,让他自动下载即可。
从菜单里打开dex2jar得到的jar文件,等待反编译完成即可。其实像intellij IDEA也能够反编译jar和class到java文件。
Home Page