参考资料
| 内容 | 资料/链接 | 说明 |
|---|---|---|
| ApkTool + dex2jar + JD-GUI | 《(Mac)反编译Android APK详细操作指南》 | Apk 反编译工具(入门级,较繁琐) |
| Jadx | Github 源码 | Apk 反编译工具(推荐) |
| 脱壳原理介绍 | 《APK脱壳简介》 | 调试 → 找到入口点 → 脱壳 → 修复 |
| ApkScan | 《APK查壳工具PKID》 | 查壳工具 |
【加壳】 也称 “加固”, 是指在一个主程序的外面再包裹上另一段代码,用于保护里面的主程序不不被非法修改或反编译。它们一般都是先于主程序运行、拿到控制权,然后完成它们保护主程序的任务。

学习记录
练习 1 (无壳 - 已完成)
| 条项 | 说明 |
|---|---|
| APK | 3.6.4-xxx-store.apk |
| 目标 | 找到登录 Token |
| 工具 | ApkTool + dex2jar + JD-GUI |
对 APK 解包 unzip 3.6.4-xxx-store.apk 得到 12 个 classesN.dex 文件:

使用 d2j-dex2jar 工具把这 12 个 dex 文件转换成 jar 包 ./d2j-dex2jar.sh *.dex:

使用 JD-GUI 反编译这些 jar 包,找到 Token 在 classes9-dex2jar.jar 里面的 com.xxx.store.BuildConfig.class :

练习 2 (无壳 - 已完成)
| 条项 | 说明 |
|---|---|
| APK | xxx.go.v4.v4.1.2.apk |
| 目标 | 找到激活 Token |
| 工具 | Jadx |
直接使用 Jadx 打开 3.6.4-xxx-store.apk 即可实现反编译。
在 xxx.pilot.active.xxxActiveController.class 和 xxx.pilot.active.b.class 可以找到特征非常明显的激活 Token ,激活逻辑在 xxx.pilot.active.b.class 下面,对该 Token 实现了调用。



练习 3 (有壳 - 未完成)
| 条项 | 说明 |
|---|---|
| APK | 3.6.4-xxx-store-梆梆加固.apk |
| 目标 | 找到登录 Token |
| 工具 | ApkScan + Jadx |
使用 ApkScan 查壳,发现 APK 使用了【梆梆企业版】进行加固:

未完待续 … …