安卓逆向:1.安卓APK反编译

1.安卓APK反编译

对apk反编译有个组合套餐:apktool、dex2jar、jd-gui,apktool的作用是将apk文件解压,获取资源文件,提取图片文件和布局文件进行查看;dex2jar的作用是将apk反编译成java源码(classes.dex转化成jar文件);jd-gui浏览jar包的源码文件。由于侧重点不同,当我们有不同的需求时,可以选择不同的工具从而获取不同的资源。

1.1安装apktool

官方安装说明:https://ibotpeaches.github.io/Apktool/install/

下面以安装windows版为例:

(1)打开wrapper script文件链接,右键另存为apktool.bat文件。

链接:https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/windows/apktool.bat

(2)下载apktool.jar文件,如最新版本:apktool_2.3.4。

链接:https://bitbucket.org/iBotPeaches/apktool/downloads/

(3)将下载的版本重命名为apktool.jar并和apktool.bat存放在同一目录下。

安卓逆向:1.安卓APK反编译

(4)cmd切换到apktool目录运行命令:apktool d <path>.apk,对指定路径的apk的资源文件、源码文件解码。

(5)如果解压包不包含classes.dex文件,在上述命令行添加-s,表示禁止将dex文件解码成smali,如下:

安卓逆向:1.安卓APK反编译

1.2安装dex2jar

(1)下载dex2jar,链接:
https://www.softpedia.com/get/Programming/Other-Programming-Files/dex2jar.shtml

(2)打开cmd命令行,切换到dex2jar所在目录,运行命令:

d2j-dex2jar  <path>.dex

安卓逆向:1.安卓APK反编译

(3)可以看到在dex2jar根路径下生成了对应的jar包文件,该文件统一命名为:classes-dex2jar.jar

安卓逆向:1.安卓APK反编译

1.3安装jd-gui

(1)下载jd-gui,链接: http://jd.benow.ca/。

(2)解压jd-gui-windows-1.4.0.zip,双击运行jd-gui.exe,选择想要打开的classes-dex2jar.jar文件。