【实践记录】反编译APK
简单记录一次突发奇想的实践经历,以及反编译 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.bat和apktool.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包查看源码。