#1: 作者: Slowking, 時間: 2026-3-27 10:06
Ghidra(讀音類似 "Gee-druh")是一款由美國國家安全局(NSA)開發的開源軟件逆向工程(Software Reverse Engineering, SRE)框架。
它在 2019 年的 RSA 大會上正式向公眾發布並開源,從此打破了逆向工程領域由昂貴的商業軟件 IDA Pro 壟斷的局面。對於數據庫工程師或底層開發者來說,Ghidra 是研究二進制文件、分析閉源程序邏輯的“手術刀”。
#2: 作者: Slowking, 時間: 2026-3-27 10:07
核心功能
Ghidra 的主要任務是將機器碼(0和1)轉換回人類可讀的形式。
反匯編(Disassembly): 將二進制指令轉換為匯編語言。
反編譯(Decompilation): 這是 Ghidra 的殺手鑭。 它能將匯編代碼進一步還原為高度可讀的 C 語言偽代碼。雖然不是 100% 還原原始源碼,但邏輯清晰度極高。
多處理器支持: 支持幾乎所有主流架構(x86, ARM, PowerPC, MIPS, Sparc, z/86 等)以及許多老舊或嵌入式系統的芯片。
圖形化分析: 提供函數調用圖(Call Graph)和控制流圖,幫助你直觀地看清程序的邏輯跳轉。
#3: 作者: Slowking, 時間: 2026-3-27 10:07
為什麼 Ghidra 如此出名?(對比 IDA Pro)
在 Ghidra 出現之前,行業標准是 IDA Pro。相比之下,Ghidra 有幾個顛覆性的優點:
完全免費且開源: IDA Pro 的商業授權每年需數千美元,而 Ghidra 完全免費。
無限次“撤銷/重做”(Undo/Redo): 這在復雜的逆向分析中極其重要。IDA 直到最近的版本才勉強加入這個功能,而 Ghidra 天生就支持。
強大的協同工作: Ghidra 支持多人同時分析同一個二進制文件,數據存在服務器端,適合團隊作戰。
基於 Java 開發: 這使得它具有極強的跨平台性(Linux, Windows, macOS 都能跑),且支持使用 Python (Jython) 和 Java 編寫插件。
#4: 作者: Slowking, 時間: 2026-3-27 10:08
技術原理:Sleigh 與 P-Code
Ghidra 的強大源於其底層的設計:
Sleigh 語言: 這是一個專門描述處理器指令集的語言。只要有人為某種芯片寫了 Sleigh 描述文件,Ghidra 就能反編譯該芯片的代碼。
P-Code: Ghidra 將所有不同架構的匯編指令都先翻譯成一種“中間語言”(P-Code),然後再從 P-Code 翻譯成 C 語言。這種高度抽象的設計讓它能輕松支持上百種處理器。
#5: 作者: Slowking, 時間: 2026-3-27 10:09
實際應用場景
可能會在以下場景用到它:
漏洞研究: 分析某個閉源軟件(比如某些舊版本的數據庫組件)是否存在溢出漏洞或邏輯缺陷。
惡意軟件分析: 安全專家用它來拆解病毒,查看病毒在嘗試連接哪個 IP 或修改哪個注冊表項。
遺留系統維護: 某些幾十年前的舊系統,源碼早就丟了,但程序還在跑。用 Ghidra 逆向出邏輯,以便進行遷移或重寫。
協議分析: 當你需要分析某種不公開的通信協議(例如 Oracle 特有的 TNS 協議某些底層握手細節)時,可以通過逆向相關的 .so 或 .dll 文件來查明真相。
output generated using printer-friendly topic mod, 所有的時間均為 美國太平洋時間