安卓apk反编译过程——以豆瓣apk为例

一、环境和工具准备

环境:Windows 10

工具:apktool、dex2jar、jd-gui

命令行终端:PowerShell 7

二、 使用 apktool 获取AndroidManifest、XML文件和图片资源文件

2.1 安装 apktool 

按照官网https://ibotpeaches.github.io/Apktool/install/要求的操作步骤进行安装和配置,可以选择配置环境变量或者直接移动文件。

apktool安装步骤

2.2 使用apktool

打开命令行窗口,按照上述流程成功安装配置好的话,直接键入apktool即可出现以下提示信息:

安卓apk反编译过程——以豆瓣apk为例_第1张图片
apktool提示信息

其中红框标注的即为经常使用的命令,其他参数用途可以见提示信息的解释。

如若反编译豆瓣apk,即可键入命令  apktool d .\com.douban.frodo.apk,即为反编译当前目录下的com.douban.frodo.apk文件,如果反编译过一次,则需要使用apktool d -f .\com.douban.frodo.apk命令,强制删除上一次生成的反编译目录。反编译后的目录结构如图:

安卓apk反编译过程——以豆瓣apk为例_第2张图片
豆瓣app反编译后的目录

本次反编译受未能完全成功,但仍然得到了需要的AndroidManifest.xml文件和res资源文件。

三、使用 dex2jar和 jd-gui反编译并查看源代码

流程:使用dex2jar反编译出源代码,使用jd-gui查看源代码。

3.1 安装dex2jar并反编译apk文件

下载地址:https://github.com/pxb1988/dex2jar/releases

下载后解压,将解压目录配置到系统环境变量。

在命令行可以直接使用命令 d2j-dex2jar,信息如下:

安卓apk反编译过程——以豆瓣apk为例_第3张图片
dex2jar提示信息

可以看到,直接使用命令dex2jar file.apk即可按默认参数反编译apk,我们在豆瓣apk存储目录下打开powshell,键入d2j-dex2jar .\com.douban.frodo.apk命令,即可反编译出com.douban.frodo-dex2jar.jar文件。

3.2 使用jd-gui查看源代码

下载地址:http://java-decompiler.github.io/

下载后,打开exe文件,打开刚刚反编译的jar文件,即可查看源代码,如图:

安卓apk反编译过程——以豆瓣apk为例_第4张图片
jd-gui打开的jar源码

四、总结

目前大型公司开发的apk,多是multidex,即会有多个.dex文件,要使用2.1以上版本的dex2jar直接对apk文件进行反编译。

你可能感兴趣的:(安卓apk反编译过程——以豆瓣apk为例)