【实践记录】反编译APK

3 min

简单记录一次突发奇想的实践经历,以及反编译 APK 的步骤。

突发奇想

学校的 APP 特别不好用,经常吐槽它,就在昨天晚上,我们突发奇想,看可不可以将一些内容迁移到小程序上,于是我说干就干了,首先我反编译了 APK,随后看了一些相关代码,找了到一些接口的 URL 以及传递的参数名,然而不知道参数是什么样的形式,随后使用fiddler开始抓包,其中碰到了一个不能抓取 https 协议请求的问题,这里附上配置链接,安卓配置iOS 配置,解决了这个问题,抓到包,但是发现了参数中的token需要解决,解决不了无法提供给多人使用,所以我又看了一下代码,发现他是使用了一个单例模型,将一个类的实例转为String作为token,但是这里我不太确定只有这一种方法,因为我看到了登录的接口中,返回的参数返回了一个token,可能分不同的情况吧,到这里我开始打退堂鼓了,还得好好锻炼,一个人还是很难耐得住寂寞。

反编译 APK

再这里记录一下反编译 APK 的步骤吧。

参考链接

第一步、解压 APK

使用 WINRAR 解压软件解压 APK 包,得到.dex文件。

第二步、使用 apktool 反编译 APK

注意需要安装 java 8 以及以上版本的 JDK。参考链接

下载工具

下载脚本apktool.bat,下载 jar 包apktool.jar,注意,这里下载的包需要更名为apktool.jar

配置环境变量

apktool.batapktool.jar所在文件夹添加到环境变量中,或者这两个文件放到C://Windows目录下。

执行反编译命令

命令格式为 apktool d [apk 文件] [输出文件夹]

apktool d base.apk base

第三步、使用 dxe2jar 反编译 APK

这里将解压出来的.dex转为jar包。

下载工具

下载dex2jar

执行命令

dex2jar文件夹中执行命令,命令格式d2j-dex2jar.bat [dex文件路径],注意将所有的.dex文件转换为jar包。

d2j-dex2jar.bat E:\classes.dex

第四步、使用 jd-gui 查看 jar 源代码

下载jd-gui,使用jd-gui打开jar包查看源码。