apk-reverse快速上手教程:10分钟配齐你的Android逆向工具链
【免费下载链接】apk-reverseSuitable for Android APK reverse engineering analysis项目地址: https://gitcode.com/gh_mirrors/ap/apk-reverse
apk-reverse 是面向 Android APK 逆向工程分析的开源项目,一套完整的 Android 逆向工具链:涵盖 dex 外科式补丁、APK 重打包、加壳脱壳、Frida 动态分析、签名与重签名,以及运行时和服务端行为分析。本快速上手教程将带你走完「克隆项目 → 一条命令体检环境 → 配齐核心工具 → 跑通第一个分析脚本」的全流程,无需任何前置逆向经验。
一、apk-reverse 是什么:它为什么不一样
很多逆向教程教你"某个工具怎么用",而 apk-reverse 是一个Agent Skill(AI 智能体技能包),它把逆向工作沉淀为三样东西:
| 组成 | 位置 | 作用 |
|---|---|---|
| 决策流程 | SKILL.md | 带"闸门"的检查清单:先分类、先体检,再动手打补丁 |
| 专题文档 | references/ | 40+ 个按需加载的主题文件,一个文件讲透一个坑 |
| 参数化脚本 | scripts/ | 60+ 个可直接运行的 Python/JS 脚本,静态、动态、重打包全都有 |
它还内置了一份 失败目录(pitfalls.md)——每一条都是"看起来健康、产物其实已损坏"的真实事故复盘,是新手最该先读的文件之一。
二、第1步:克隆项目(约1分钟)
git clone https://gitcode.com/gh_mirrors/ap/apk-reverse cd apk-reverse克隆后你会看到这样的结构:
apk-reverse/ ├── skills/apk-reverse/ # 核心技能:SKILL.md + references + scripts ├── docs/tool-verification/ # 真实测量过的工具证据记录 ├── tests/ # 可执行的测试层与基准回归矩阵 └── README.zh-CN.md # 中文完整文档三、第2步:一条命令给工具链做体检(约2分钟)
配工具链最大的坑是"以为装了,其实没装全"。项目自带一个环境医生脚本 doctor.py,它会回答三个问题:
- 本机现在具备哪些能力(静态 / native / 动态 / 设备)
- 每个脚本能否直接运行,缺什么依赖
- 环境里是否有会"悄悄污染实验"的因素(时钟偏移、残留的 adb 代理转发、设备上还在跑的 frida 进程等)
python skills/apk-reverse/scripts/doctor.py报告会明确标出哪些能力是BLOCKED,并给出可执行的下一步和大致耗时。如果你的工具不在 PATH 上(比如项目本地的tools/目录或独立的 SDK 目录),设置APKREV_TOOLS环境变量指向它们即可被识别,详见 toolchain.md。
💡 提示:报告说
BLOCKED是特性而不是 bug——"能装的工具没装"属于待办事项,而不是需要绕开的限制。
四、第3步:配齐核心工具清单(约5分钟)
好消息:没有任何工具是强制的,每个脚本会自己检查依赖。按投入产出比排序,推荐安装顺序如下:
| 工具 | 用途 | 备注 |
|---|---|---|
| Python 3.9+ | 运行全部脚本 | 通常已具备 |
| droidasc | 整包交叉引用索引,一次查询问出"谁引用了这个字符串" | pip install droidasc,无需 JVM/SDK,强烈建议第一个装 |
| ddc | dex→Java 快速反编译 + 查询子命令 | 负责"读",与 droidasc 的"定位"配合 |
| baksmali / smali + dexlib2 | smali 反汇编与外科式打补丁 | jar 形式 |
| JDK | 构建 dexlib2 补丁器,提供 keytool | 顺带解决签名密钥管理 |
| Android SDK build-tools | aapt、zipalign、apksigner | ⚠️ 签名请用 apksigner,jarsigner 会破坏 Android R+ 要求的对齐 |
| ADB | 设备连接与调试 | 动态分析必备 |
| Frida + 匹配的 frida-server | 运行时 hook 与探测 | 版本必须对齐 |
| 已 root 的设备或模拟器 | 静态分析之外的一切 | 设备选型见 environment.md |
完整对照与调用细节见 toolchain.md。
五、第4步:把技能安装到你的 AI 智能体(约1分钟)
apk-reverse 是标准的 Agent Skills 布局,可以用 skills CLI 按名字安装,而不是复制目录:
npx skills add newliver666/apk-reverse --list # 先看看有哪些技能 npx skills add newliver666/apk-reverse -y # 安装安装后,智能体在任务匹配时自动加载 SKILL.md,并只在需要时拉取对应的references/*——没有全局状态、没有机器特定路径、无需构建步骤。
六、第5步:跑通你的第一个分析脚本(约2分钟)
以无需反编译器的字符串提取脚本 dex_strings.py 为例,直接从 dex 中抓取 URL 和 SDK 标记:
python skills/apk-reverse/scripts/dex_strings.py classes.dex --urls再比如,给重打包后的 APK 重建、剥离旧签名、对齐并重新签名,一条命令搞定:
python skills/apk-reverse/scripts/repack.py --apk app.apk --dexdir work/ --out app_patched.apkrepack.py 会自动保留META-INF/services/、写出 4 字节对齐的归档,并处理 split APK / App Bundle 集合——这些正是新手手工重打包时最容易踩坏的环节。
七、新手必读:四个最痛的坑
在开始改包之前,务必先读 pitfalls.md。伤害最大的四个:
- 重打包时删掉整个
META-INF/→ ServiceLoader 注册丢失,应用启动即死,报错却指向无关的库 - 字节级改字符串却不保持
string_ids顺序→ 整个 dex 被拒绝,而校验和与签名"完美通过" - 用整棵 smali 树往返重建 dex→ 不可见地损坏 R8 输出,类表对比干净,运行时才炸
- 让 native 终止路径"不返回"来中和检查→ 自旋桩不抑制检查,只会冻死所有线程,应用挂死且无任何崩溃记录
八、下一步去哪
- 📖 想理解工作流全貌:读 SKILL.md 的四条覆盖规则与四个闸门(G1–G4)
- 🧭 不知道该查哪份文档:查 routing.md,它按"何时加载"列出了所有 reference 与脚本
- 🧪 想看真实测量证据:docs/tool-verification/ 与回归矩阵 tests/benchmark.md,本地可用
python tests/run_tests.py跑测试 - 📚 完整中文说明:README.zh-CN.md
边界提醒:本项目仅覆盖 Android(不含 iOS),不覆盖 Unity/IL2CPP 逻辑恢复与绕过服务端权威;技能文档会明确说"不覆盖"并停下,而不是硬套最近的流程。
⚖️合规声明:本项目仅用于学习、研究和经授权的安全测试。请只在你自己的应用、被明确授权分析的目标或 CTF 沙箱中使用——分析无权分析的软件在你所在地区可能违法,该判断责任在你自己。
按照以上五步,你现在已经拥有一个能自我体检、自带失败目录和完整证据记录的 Android 逆向工具链。祝你分析顺利!
【免费下载链接】apk-reverseSuitable for Android APK reverse engineering analysis项目地址: https://gitcode.com/gh_mirrors/ap/apk-reverse
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考