作者:小杨技术铺
适用工具:Cursor、Claude Code、Codex
适用范围:自有 App、授权安全测试、公开靶场、CTF

⚠️ 本文讲工程化分析方法,不提供商业 App 破解、绕过付费、盗版分发或未授权攻击步骤。


📌 前言:AI 能看代码,但不会自动对逆向结论负责

现在把一个 APK 丢给 jadx,再让 AI 帮忙分析,确实比以前快。

但真正做过 APK 分析的人都知道,最难的不是“打开反编译代码”,而是下面这些问题:

  • 🔍 几千个类应该先看哪里?

  • 🔗 登录、令牌、长连接和业务指令怎么串起来?

  • 🔐 Base64、GZIP、MD5、CRC、JWT 到底哪些是加密,哪些不是?

  • 🧩 Java 层找不到算法时,什么时候该换 apktool、Ghidra、Frida 或抓包?

  • 💾 分析到一半关掉窗口,第二天怎么继续,而不是从头解释?

  • 📄 最后怎么把聊天记录变成一份有证据、能复查、可交付的报告?

如果没有流程约束,AI 往往会出现三种情况:

  1. ❌ 搜到一个关键词就过早下结论;

  2. 🔄 在几千个类里漫游,消耗大量 Token;

  3. 🤔 说了很多“可能、疑似、建议关注”,却交不出完整结果。

所以我把自己实际使用的 APK 分析方式整理成了一套 APK Reverse Harness

🚀 不让 AI 自由发挥,而是让 Cursor / Claude Code / Codex 按固定工单推进,每一步必须留下可检查的产出,最终只维护一个 REPORT.md


🎯 一、先明确:APK 逆向不是“搜几个关键词”

一份真正有用的 APK 分析,至少要回答五类问题

1. 📦 项目上下文

  • 应用包名、版本、入口组件是什么?

  • 使用了哪些网络库、序列化框架、地图或推送 SDK?

  • 令牌、账号、设备标识保存在哪里?

  • Java / Kotlin 与 JNI 的边界在哪里?

2. 🏗️ 架构和协议设计

  • 应用有几条通信通道:HTTP、WebSocket、TCP、蓝牙还是串口?

  • 登录令牌如何进入后续请求?

  • 消息头、长度、命令字、负载、校验位分别是什么?

  • 请求与响应怎样对应?

3. 🛤️ 关键路径

例如:

登录页面
→ 登录接口
→ Token 落盘
→ Authorization / 协议字段注入
→ 长连接建立
→ 业务指令编码
→ 服务端响应解析
→ UI 状态更新

⚠️ 这条链没有串起来,只列几个类名不算完成。

4. 🔐 加密拆解

不能看见 Base64 就写“采用加密传输”。必须先分类

类型 常见形式 是否可逆 结论写法
编码 Base64、Hex ✅ 是 编码,不是加密
压缩 GZIP、ZIP ✅ 是 压缩,不提供机密性
摘要 MD5、SHA ❌ 否 摘要,需判断用途
校验 CRC16、CRC32 ❌ 否 完整性校验,不是密码学加密
真加密 AES、RSA、ChaCha20 有密钥条件下 必须补齐模式、密钥、IV、调用链
令牌 JWT 通常可解码 签名令牌不等于密文

5. 🧾 风险与证据

每个结论必须带证据锚点

  • 📍 类名与方法;

  • 📋 Manifest 组件;

  • 📁 资源路径;

  • 🔧 SO 导出符号或 JNI 映射;

  • 📡 抓包字段或 Frida 观测点;

  • ✅ 已验证 / 高置信 / 待动态确认。

🚫 没有证据锚点的“猜测”,不能写进最终结论。


📋 二、我把流程拆成 11 个阶段

  • scope → env → unpack → map → context → design → trace → crypto → dynamic → report → memory

01 🎯 scope:先锁定授权边界和分析目标

不是上来就扫代码,而是先确认:

  • ✅ 样本是否为自有或明确授权;

  • ✅ 目标是协议还原、敏感信息排查、加密识别,还是业务链追踪;

  • ✅ 哪些动态操作允许做,哪些明确禁止;

  • ✅ 最终交付物是什么。

02 🛠️ env:检查工具,不让环境问题拖死分析

先检查 Java、apktool、jadx、adb,以及可选的 Ghidra、Frida、mitmproxy。

💡 静态分析通常用 apktool + jadx 就能启动;遇到 JNI、运行时参数或证书固定,再按卡点换工具,不是一上来把工具全部堆满

03 📦 unpack:先判断壳、分包和原生层

输出:

  • 📋 Manifest 摘要;

  • 📄 DEX 数量;

  • 📁 lib/*/*.so 列表;

  • 📂 assets/ 与特殊资源;

  • 🛡️ 壳或动态加载迹象;

  • ✅ jadx 是否足够,是否需要动态路线。

04 🗺️ map:建立包地图和入口地图

把代码先分区:

  • 🏢 自研业务包;

  • 📦 第三方 SDK;

  • 🌐 网络层;

  • 📊 数据模型;

  • 💾 存储层;

  • 🔗 JNI 层;

  • 🖥️ UI 与组件入口。

⚡ 这一步能避免 AI 在第三方 SDK 里浪费大量上下文。

05 📖 context:强制形成项目上下文

这不是“应用大概做什么”的简介,而是后续所有阶段共享的事实底座

  • 🧰 技术栈;

  • 🧩 核心模块;

  • 🔑 关键状态;

  • 🌍 网络端点;

  • 💿 本地存储;

  • 🔒 硬编码和敏感信息;

  • ⚠️ 已知限制与未知项。

06 🏛️ design:还原架构、通道、协议和指令表

把散落代码整理成:

  • 🔗 模块关系;

  • 📡 通信通道;

  • 🪪 身份与令牌流;

  • 📦 协议帧结构;

  • 📋 指令枚举;

  • 🔄 请求/响应关系;

  • ⚙️ 状态机与异常路径。

07 🔍 trace:沿一条真实业务主链追到底

不要每个类都看一点。选择一条最有价值的主链,例如:

登录 → Token → 长连接 → 指令编码 → 响应解析

每一步记录

  • 🚪 入口方法;

  • 📥 输入;

  • 🔗 关键调用;

  • 📤 输出;

  • 🎯 下一跳;

  • 📌 证据锚点。

08 🔐 crypto:每种算法单独建卡

每张卡至少包含

  • 📛 名称;

  • 🏷️ 类型;

  • 📥📤 输入与输出;

  • 📍 调用点;

  • 🔑 密钥/IV/模式来源;

  • 🔄 是否可逆;

  • 📌 证据;

  • ⚠️ 风险;

  • 📊 置信度;

  • 🔬 下一步动态验证方法。

🚨 如果没发现真加密,也必须明确写“未发现”,并说明搜过哪些入口,不能直接跳过

09 🧪 dynamic:只验证静态阶段解决不了的问题

动态阶段不是“随便 Hook 看看”,而是带着假设去验证

  • ❓ 明文在加密前位于哪里?

  • ❓ Token 在哪一步进入请求?

  • ❓ JNI 方法真实入参是什么?

  • ❓ 证书固定发生在哪个调用点?

10 📄 report:最终只交付一个 REPORT.md

报告建议固定包含

  1. 📌 执行摘要;

  2. ⚖️ 范围与合规边界;

  3. 📦 样本与工具;

  4. 🗺️ 包和入口地图;

  5. 📖 项目上下文;

  6. 🏛️ 架构与协议设计;

  7. 🛤️ 关键路径;

  8. 🔐 加密拆解卡片;

  9. 🧪 动态验证结果;

  10. ⚠️ 风险分级;

  11. 🔮 限制与待验证项。

11 💾 memory:把本次经验变成下一案的加速器

记录有效搜索词、工具卡点、误判、协议识别方式和动态观测点。下一次遇到同类框架时,不再从零开始


🚀 三、Cursor / Claude Code / Codex 怎么导入

我把安装方式做得尽量简单:解压后放到项目同级目录即可

目录示例

D:\我的逆向工作区\
├── apk-re-harness-v1\
│   ├── skills\
│   ├── docs\
│   ├── templates\
│   ├── cases\
│   └── CLAUDE.md
└── target.apk

💻 Cursor

把:apk-re-harness-v1/skills/apk-reverse-workflow

项目根目录/.cursor/skills/

或者用户级:

C:\Users\你的用户名\.cursor\skills\

重载 Cursor 窗口即可

🤖 Claude Code

把整包放在工作目录中。包内已有 CLAUDE.md 规约;也可以把 Skill 复制到 .claude/skills/

⌨️ Codex

把整包放进工作目录,开场让 Codex 先读:

框架说明.md
skills/apk-reverse-workflow/SKILL.md

之后三种工具都用同一条启动语句

读取 框架说明.md,按 apk-reverse-workflow,
对我的授权 APK 从 /re scope 开始。
context + design + crypto 必做,最终只维护一个 REPORT.md。

每阶段完成后回复

/re continue

查看进度

/re status

✅ 最终看到 REPORT READY,才算完成。


⚠️ 四、实跑中最容易出现的一个误判:GZIP + Base64 不是加密

我在 DEMO 中专门选了一个很典型的场景:

登录
→ JWT
→ TCP 长连接
→ 业务协议帧
→ GZIP + Base64
→ CRC16

如果只靠关键词,很容易把这整条链写成“应用采用多层加密”。

实际上

  • 🔑 JWT 是令牌机制;

  • 📦 GZIP 是压缩;

  • 🔤 Base64 是编码;

  • ✔️ CRC16 是校验;

  • ❌ 它们都不能替代真正的机密性保护。

真正有价值的结论不是“发现了 Base64”,而是:

  1. 📍 数据在哪个方法进入 GZIP;

  2. 📦 压缩前的结构是什么;

  3. 🔤 Base64 用于文本承载还是协议封装;

  4. ✔️ CRC 校验覆盖哪些字节;

  5. 🔒 通道本身是否有 TLS 或应用层加密;

  6. 🚨 如果没有,敏感字段是否存在明文暴露风险。

🎯 这就是“搜索关键词”和“工程化拆解”的区别。


👥 五、这套框架适合谁

✅ 适合

  • 🧭 会用 jadx / apktool,但打开几千个类就迷路的人;

  • 🧪 做自有 App 排查、授权测试、公开靶场的人;

  • 📊 需要向客户、领导或团队交付可复查报告的人;

  • 🤖 已经在用 Cursor、Claude Code 或 Codex,希望把逆向流程固定下来的人;

  • 📚 希望以后每个案例都能断点续跑和沉淀经验的人。

❌ 不适合

  • 🔓 想一键破解某个商业 App;

  • 🚫 想绕过付费、登录、授权或风控;

  • 🎯 索要目标 APK、反编译源码或黑产脚本;

  • 💤 完全不愿意安装基础工具,只想按一个按钮出万能结果。


📢 六、免费文章和完整框架包的边界

本文已经把核心方法和 11 阶段结构讲清楚,你完全可以照着自己搭建

如果你不想再花时间整理阶段规则、质量门禁、模板和 DEMO,我把自己使用的版本整理成了可直接下载的商品包

📦 包含内容

  • ✅ APK Reverse Workflow Skill;

  • ✅ scope → memory 全阶段细则;

  • ✅ apktool / jadx / Ghidra / Frida / 抓包工具分诊手册;

  • ✅ 真加密 / 编码 / 压缩 / 摘要 / 校验拆解专册;

  • ✅ 案例模板、检查清单和断点续跑文件;

  • ✅ 完整 DEMO 报告;

  • ✅ 快速开始、命令速查、实战导读;

  • ✅ 支持 Cursor / Claude Code / Codex。

🛒 商品页

🔗 APK高级逆向分析框架(Cursor / Claude / Codex)- 上下文·协议·加密拆解全流程 - 小杨技术铺

💰 首发价 ¥69(标价 ¥99),一次买断,微信 / 支付宝支付后自动下载 ZIP。


💡 如果你只是偶尔查一个类,或者只想找几个命令,没有必要购买
🎯 如果你需要的是一套可以反复复制、能形成上下文、架构、协议、加密证据和最终报告的工程流程,这套包就是为这个场景做的


🎬 最后

AI 做 APK 逆向的价值,不是“替你搜更多关键词”,而是把散乱的代码、协议和证据组织成一套可复查的结论

工具可以是 Cursor,也可以是 Claude Code 或 Codex。真正决定质量的,是你有没有把 AI 关进一套

🎯 有范围、有阶段、有证据、有门禁、有交付物的逆向工程流程。

如果你也在做授权 APK 分析,欢迎在评论区说说你最容易卡在哪一步:

打开几千个类迷路、协议追不下去、加密判断不准,还是最终报告写不出来? 🤔

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐