参考资料
内容 | 资料/链接 | 说明 |
---|---|---|
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 使用了【梆梆企业版】进行加固:
未完待续 … …