Ghidra 逆向工程
必要操作(讀完後立刻執行)
立即: 讀取 ../field-journal/precedent-reverse.md
立即: 確認需要 Ghidra(無 IDA / 偏好開源 / 批次 headless)
下一步: 讀 ../tool-index.md 查詢 ghidra / ghidra-mcp 路徑
下一步: 缺少工具 → 自行安裝 ghidra-mcp(若 manifest 支援)或按照手動步驟安裝 Ghidra
執行: 導入樣本 → 自動分析 → 匯出關鍵函數反編譯
適用場景
- 無 IDA 授權時的主要逆向入口
- 批次 headless 分析 / CI 中反編譯
- Ghidra 腳本(Java/Python Jython/PyGhidra)自動化
- 與
binary-diff / patch-diff-exploit 的 ghidriff 聯動
與 IDA 分工
| 需求 | 優先使用 |
|---|
| 已有 IDA MCP 深層分析 | ida-reverse/ |
| 開源 / 批次 / 教學 | 本技能 |
| 僅 CLI 快速偵察 | radare2/ |
工作流程
1. 專案與自動分析
□ 新建 Project → 匯入檔案 → 分析(預設分析器)
□ 記錄語言/編譯器識別結果與基底位址
□ 標記入口、匯出表、字串交叉引用
2. 關鍵函數
□ 從字串 / 匯入 API 反向查詢
□ 反編譯視窗還原演算法
□ 重新命名函數/變數;撰寫 Plate 註解
□ 需要動態分析時交接 Frida/GDB(逆向工程動態章節)
3. Headless(批次)
analyzeHeadless /path/to/project Proj -import sample.bin -postScript ExportDecomp.py
4. MCP(若已設定)
□ 確認 ghidra MCP 埠號(常見 8765,以 tool-index 為準)
□ 使用 MCP 工具拉取反編譯 / xrefs,禁止猜測埠號
工具鏈
| 工具 | 用途 | 自舉方式 |
|---|
| Ghidra | 反編譯主要工具 | 手動 release / 套件管理員 |
| ghidra-mcp | AI 橋接 | 自舉能力名稱 ghidra-mcp |
| ghidriff | 補丁差異比對 | 見 patch-diff-exploit |
參考資料
references/ghidra-cheatsheet.md
../ida-reverse/ ../radare2/ ../binary-diff/
路由上下文
上游: MASTER R22
下游: 動態驗證 → Frida/GDB;利用 → pwn-chain
同級: ida-reverse(商業深層分析)
任務完成自檢