AI 逆向工程与代码理解实战 · 第 01 章 Ghidra地基


AI 逆向工程与代码理解实战 · 第 01 章 Ghidra地基

章节摘要: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 章自动化的备料起点。

学习目标

  • 安装 JDK 与 Ghidra 12.1.4,独立完成建工程、导入、自动分析全流程。
  • 说出 CodeBrowser 主要窗口的职责与联动方式。
  • 用反编译器窗口、函数列表与交叉引用读完一个陌生函数。
  • 掌握重命名、注释、书签三类「把理解写回工程」的操作。
  • 独立走查一个 stripped 小程序,恢复其核心逻辑与命名。
  • 用 analyzeHeadless 与 PyGhidra 把分析变成脚本,导出函数清单 JSON。

核心概念速览

本章产出的分析流水线(第 03~05 章都在它上面生长) 二进制文件 Ghidra 工程 结构化产物 ┌────────────┐ 导入 ┌──────────────────┐ 脚本 ┌──────────────┐ │ demo │ ──────▶ │ 自动分析 │ ──────▶ │ functions.json│ │ demo_stripped│ │ 反编译 + 符号 + xref│ │ 函数清单 JSON │ └────────────┘ └────────┬─────────┘ └──────────────┘ │ 人的手(GUI) │ ▼ ▼ 重命名 / 注释 / 书签 给大模型读的「备料」 (理解写回工程) (第 02 / 04 章消费) ​

一句话金句:Ghidra 给你的是「带工程文件的逆向」——理解不会散落在屏幕上,而是攒在工程里。

子章节导航

  • 第 1.1 节《安装与首个工程》:JDK 与发行包、建工程与导入、CodeBrowser 导览、自动分析、卡点清单。
  • 第 1.2 节《反编译阅读》:伪 C 窗口、函数列表、交叉引用、重命名注释书签、stripped 程序完整走查。
  • 第 1.3 节《headless与PyGhidra》:analyzeHeadless 批处理、函数清单导出脚本、PyGhidra 库模式。

三节按序读:1.1 让工具跑起来,1.2 练会看与记,1.3 把前两节的动作变成可批量复制的脚本。

子章节之间的逻辑关系

┌──────────────┐ 会用界面 ┌──────────────┐ 会读会记 ┌──────────────────┐ │ 1.1 安装与 │ ─────────▶ │ 1.2 反编译 │ ─────────▶ │ 1.3 headless 与 │ │ 首个工程 │ │ 阅读 │ │ PyGhidra │ └──────┬───────┘ └──────┬───────┘ └─────────┬──────────┘ │ 产物:可用的 Ghidra │ 产物:读懂的 demo_stripped │ 产物:functions.json │ 工程 │ 与写回工程的命名 │ (函数清单备料) └──────────────────────────┴───────────────────────────────────┘ ▼ 第 02 章(r2pipe 消费同类备料)/ 第 03 章(MCP 直接操作工程) ​

前置知识与后续延伸

  • 前置:第 0.2 节的环境四件(JDK 21、Ghidra 12.1.4、Python 3.12)与练习目录布局、demo 与 demo_stripped 两个编译产物。
  • 延伸阅读:反编译产出的伪 C 与编译器各阶段的关系,见《build-your-own-x》第 9 章《造操作系统与编译器》;Ghidra 官方文档的 GhidraScript 与 PyGhidra 章节可作 1.3 节的加深。
  • 后续:第 02 章《radare2与脚本化》给出轻量命令行对照;第 03 章《GhidraMCP实战》让模型直接操作本章建好的工程。

合规声明:本节内容仅用于授权范围内的安全研究与教育目的;未经授权对他人软件进行逆向工程可能违反法律与许可协议。


作者与出处
原作者: 灏天文库
整理: 灏天文库整理
本站整理收录,版权归原作者/开源协议所有;欢迎通过原文链接访问源仓库。
发布者: 作者: 灏天文库 转发
评论区 (0)
U