章节摘要:Ghidra 是 NSA 开源的逆向框架(约 8.9 万 stars,Apache-2.0,最新 12.1.4,社区口径 2026-10),反编译器、多架构与脚本化三件事齐备,是全书的地基。1.1 节从 JDK 与发行包装起,建首个工程、导入自己编译的 demo,跑通自动分析,并导览 CodeBrowser 界面。1.2 节练老手艺:伪 C 窗口、函数列表、交叉引用、重命名与注释,最后完整走查 stripped 版本——在没有函数名的情况下把 check_key 与异或常量 0x5a 找出来。1.3 节把界面操作变成脚本:analyzeHeadless 命令行批处理、PyGhidra 在 Python 里驱动 Ghidra,产出函数清单 JSON——这是第 03 章 MCP 工具流与第 04 章自动化的备料起点。
本章产出的分析流水线(第 03~05 章都在它上面生长) 二进制文件 Ghidra 工程 结构化产物 ┌────────────┐ 导入 ┌──────────────────┐ 脚本 ┌──────────────┐ │ demo │ ──────▶ │ 自动分析 │ ──────▶ │ functions.json│ │ demo_stripped│ │ 反编译 + 符号 + xref│ │ 函数清单 JSON │ └────────────┘ └────────┬─────────┘ └──────────────┘ │ 人的手(GUI) │ ▼ ▼ 重命名 / 注释 / 书签 给大模型读的「备料」 (理解写回工程) (第 02 / 04 章消费)
一句话金句:Ghidra 给你的是「带工程文件的逆向」——理解不会散落在屏幕上,而是攒在工程里。
三节按序读:1.1 让工具跑起来,1.2 练会看与记,1.3 把前两节的动作变成可批量复制的脚本。
┌──────────────┐ 会用界面 ┌──────────────┐ 会读会记 ┌──────────────────┐ │ 1.1 安装与 │ ─────────▶ │ 1.2 反编译 │ ─────────▶ │ 1.3 headless 与 │ │ 首个工程 │ │ 阅读 │ │ PyGhidra │ └──────┬───────┘ └──────┬───────┘ └─────────┬──────────┘ │ 产物:可用的 Ghidra │ 产物:读懂的 demo_stripped │ 产物:functions.json │ 工程 │ 与写回工程的命名 │ (函数清单备料) └──────────────────────────┴───────────────────────────────────┘ ▼ 第 02 章(r2pipe 消费同类备料)/ 第 03 章(MCP 直接操作工程)
合规声明:本节内容仅用于授权范围内的安全研究与教育目的;未经授权对他人软件进行逆向工程可能违反法律与许可协议。