我把 Cursor / Claude / Codex 变成了 APK 逆向工程师:从 jadx 迷路到一份可交付 REPORT
作者:小杨技术铺
适用工具:Cursor、Claude Code、Codex
适用范围:自有 App、授权安全测试、公开靶场、CTF
⚠️ 本文讲工程化分析方法,不提供商业 App 破解、绕过付费、盗版分发或未授权攻击步骤。
📌 前言:AI 能看代码,但不会自动对逆向结论负责
现在把一个 APK 丢给 jadx,再让 AI 帮忙分析,确实比以前快。
但真正做过 APK 分析的人都知道,最难的不是“打开反编译代码”,而是下面这些问题:
-
🔍 几千个类应该先看哪里?
-
🔗 登录、令牌、长连接和业务指令怎么串起来?
-
🔐 Base64、GZIP、MD5、CRC、JWT 到底哪些是加密,哪些不是?
-
🧩 Java 层找不到算法时,什么时候该换 apktool、Ghidra、Frida 或抓包?
-
💾 分析到一半关掉窗口,第二天怎么继续,而不是从头解释?
-
📄 最后怎么把聊天记录变成一份有证据、能复查、可交付的报告?
如果没有流程约束,AI 往往会出现三种情况:
-
❌ 搜到一个关键词就过早下结论;
-
🔄 在几千个类里漫游,消耗大量 Token;
-
🤔 说了很多“可能、疑似、建议关注”,却交不出完整结果。

所以我把自己实际使用的 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
报告建议固定包含:
-
📌 执行摘要;
-
⚖️ 范围与合规边界;
-
📦 样本与工具;
-
🗺️ 包和入口地图;
-
📖 项目上下文;
-
🏛️ 架构与协议设计;
-
🛤️ 关键路径;
-
🔐 加密拆解卡片;
-
🧪 动态验证结果;
-
⚠️ 风险分级;
-
🔮 限制与待验证项。
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”,而是:
-
📍 数据在哪个方法进入 GZIP;
-
📦 压缩前的结构是什么;
-
🔤 Base64 用于文本承载还是协议封装;
-
✔️ CRC 校验覆盖哪些字节;
-
🔒 通道本身是否有 TLS 或应用层加密;
-
🚨 如果没有,敏感字段是否存在明文暴露风险。
🎯 这就是“搜索关键词”和“工程化拆解”的区别。

👥 五、这套框架适合谁
✅ 适合:
-
🧭 会用 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 分析,欢迎在评论区说说你最容易卡在哪一步:
打开几千个类迷路、协议追不下去、加密判断不准,还是最终报告写不出来? 🤔
更多推荐



所有评论(0)