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 KillerAndroid 逆向助手等,百度下载即可,记得将他们集成的三个工具,手动换成最新的,不然无法使用,因为他们作者不再维护了。

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