APK反编译

以前的apk反编译方式已经不行了,因为项目需求重新学习了下反编译,这里做一个记录。

一、反编译工具介绍

apktool  

     作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看

     https://ibotpeaches.github.io/Apktool/

dex2jar

     作用:将apk反编译成java源码(classes.dex转化成jar文件)

     https://sourceforge.net/projects/dex2jar/

jd-gui

     作用:查看APK中classes.dex转化成出的jar文件,即源码文件

     http://jd.benow.ca/

二、操作步骤

1、解压资源文件:

1)进入apktool官网,下载apktool.bat和apktool_2.3.1.jar,把下载的jar重名为apktool.jar,并把这两个文件放在同一个目录下,例如新建一个apktools文件夹,把着两个文件都放在这个文件夹中

2)把要解压的apk也放在apktools这个目录中,运行cmd,进入该目录,然后执行命令:apktool d xxx.apk,命令执行完后,反编译后的文件就在该目录下了,其中 d 表示解压文件

2、解压源码

1)下载dex2jar,下载下来是一个zip包,直接解压,例如解压到dex2jar目录下

2)把要解压的apk后缀名改成zip或者.rar,解压出来,得到classes.dex,把这个classes.dex文件放在dex2jar目录中,运行cmd,进入到这个目录中,执行命令:

dex2jar classes.dex,命令执行完之后得到classes-dex2jar文件

3)下载jd-gui,下载下来也是一个zip包,解压,运行jd-gui.exe文件,然后在jd-gui打开上一个步骤得到的jar文件,这时就可以看到源码了

三、注意:

1.如果解压apk出来得到两个dex文件时,例如解压出来有classes.dex和classes2.dex,那么就要通过dex2jar同时把这两个dex文件都解压出来,才能看到完整的代码。

2.另外,我用最新版jd-gui查看jar文件时,提示我必须使用jre1.7,可是我的环境是1.9,不知道为什么不行?目前我下载一个低版本的jd-gui就可以。

相关推荐