如何实现反编译一个APP

时间:2024-03-22 14:11:54

前言:

    开始反编译之前,我们要知道有三个工具,分别是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

当然,当我们反编译一些大厂的APP的时候,可能会出现如下错误,最简单的方法就是更新apktool包:

如何实现反编译一个APP



dex2jar:

    预处理:(得到classes.dex)

       执行之前,我们先需要把XXX.apk后缀直接改成.zip后缀的压缩文件,然后把文件解压出来后列表如下,classess.dex就是我们需要的文件:

如何实现反编译一个APP

    


    执行指令:XXX.bat classes.dex

       为什么我这里写XXX.bat而不是平时大家常说的dex2jar.bat classes.dex呢?因为我升级这个版本后发现,程序名是随时修改的,我这个版本的.bat程序被更名为d2j-dex2jar.bat,所以提醒大家注意。编辑完成我们得到一个.jar文件。

如何实现反编译一个APP

如何实现反编译一个APP

jd-gui:

    之前通过dex2Jar从dex文件转成得到一个.jar后,我们把.jar用jd-gui打开:

如何实现反编译一个APP