1. 准备工具
ApkTool
用于反编译apk
或者分析apk
的工具,可反编译出真实的资源文件和smali
文件,也可用于重新打包,建议使用最新版,可以减少出现问题,同时记得window平台需要下载apktool.bat
下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads/
dex2jar
从字面意思就知道,这是将dex
文件转化成jar
的工具,转化为jar便于我们直观的看见java源码,找到问题的关键。但是这个java代码是自读的。
下载地址:https://github.com/pxb1988/dex2jar
jd-gui
是将dex2jar
生成的jar
包解析,可视化浏览java
代码的工具,辅助我们分析源码(只读),根据平台下载对应的版本。
下载地址:http://java-decompiler.github.io/#jd-gui-download除了
jd-gui
之外还有一个可以用来作为分析java
代码的可视化工具(java
只读,smali
可编辑),这个工具实际上是将前面的工具集成了。但是这个工具反编译出来的资源文件并不是一定准确,可以说比不上ApkTool反编译出来的资源文件。而且作者不在维护了。记得下自己平台版本
下载地址:https://github.com/skylot/jadx除此之外还有国内开发者开发的工具,基本都是集成上面三个工具,比较优秀有:
Android Killer
、Android 逆向助手
等,百度下载即可,记得将他们集成的三个工具,手动换成最新的,不然无法使用,因为他们作者不再维护了。
2. 使用
- 反编译
apk
获取资源文件、smali
文件、dex
文件、manifest
文件等
第一步:将apktool.jar和apktool.bat复制到C:\Windows的目录下
第二步:将apk拷贝到你放置上面文件的地方
第三步:打开cmd命令行,进入apktool.jar的目录下: apktool d apk_name
- 把
dex
文件转化为jar
文件
第一步:将apk的后缀名改名为zip,并解压
第二步:将上面解压出来的中的classes.dex复制dex2jar文件夹中
第三步:在cmd命令行进入dex2jar文件中输入: d2j-dex2jar.bat classes.dex
- 使用
jd-gui
打开上述的jar
包就可以看到java
源码
没啥可说的,直接open
- 重新打包
cmd进入在apktool.jar文件下,输入: apktool b 源文件夹名
- 重新签名
第一步:复制签名文件到auto-sign文件夹下,cmd进入auto-sign文件夹下
第二步:cmd输入:jarsigner -verbose -keystore [your_key_store_path] -signedjar