前言:
开始反编译之前,我们要知道有三个工具,分别是apktool,dex2jar,jd-gui,其中apktool是用来反编译资源文件和注册清单这些资源的,dex2jar和jd-gui用来做java代码的反编译。反编译之前提醒大家以上工具尽量去官网下载新的版本,因为安全问题就是大家的攻防战,各大互联网公司也存在安全顾问,会做一些处理导致低版本无法反编译成功。
以下列出三个官网:
apktool:https://ibotpeaches.github.io/Apktool/
jd-gui:http://jd.benow.ca/
dex2jar:https://sourceforge.net/projects/dex2jar/?source=typ_redirect
ApkTool:
指令:apktool d xxx.apk
apktool不需要进行任何预处理,把xxx.apk放在apktool当前目录,然后执行 apktool d xxx.apk 就能得到如下列表文件,里面就有我们需要的资源:
当然,当我们反编译一些大厂的APP的时候,可能会出现如下错误,最简单的方法就是更新apktool包:
dex2jar:
预处理:(得到classes.dex)
执行之前,我们先需要把XXX.apk后缀直接改成.zip后缀的压缩文件,然后把文件解压出来后列表如下,classess.dex就是我们需要的文件:
执行指令:XXX.bat classes.dex
为什么我这里写XXX.bat而不是平时大家常说的dex2jar.bat classes.dex呢?因为我升级这个版本后发现,程序名是随时修改的,我这个版本的.bat程序被更名为d2j-dex2jar.bat,所以提醒大家注意。编辑完成我们得到一个.jar文件。
jd-gui:
之前通过dex2Jar从dex文件转成得到一个.jar后,我们把.jar用jd-gui打开: