用途:面向需要反编译与深度静态分析的逆向场景,支持 GUI 与 headless 批量处理,并通过脚本实现自动标注、解密循环仿真;支持 PE/ELF/Mach-O。内存低于 4GB 或仅需快速初勘时不适用。
环境准备:安装 Ghidra(GitHub NationalSecurityAgency/ghidra releases 解压即用),需 JDK 21(Ghidra 11.3+);验证 java -version 为 21+。启动:./ghidraRun(GUI)、./support/analyzeHeadless(无头)。脚本远程控制可 pip install ghidra-bridge,前置为在 GUI Script Manager 运行 ghidra_bridge_server.py。
主要用法:无头导入分析:$GHIDRA/support/analyzeHeadless /tmp/proj sample_proj -import ./sample.bin -deleteProject -log /tmp/ghidra.log;重跑脚本用 -process -postScript MyScript.java -scriptPath /tmp/scripts;仅看符号/字符串可加 -noanalysis。GUI 中用 Go To(G)跳转、R 查交叉引用、Ctrl+E 打开 Decompiler、F 看函数图,L 重命名函数或变量,右键 Set Data Type 设定类型并定义结构体以改善反编译质量。可 File > Export Program 导出 C/C++ 反编译结果。
限制与注意:反编译输出非原始源码,关键逻辑须对照反汇编验证;自动分析可能漏掉混淆代码,大文件可能卡死,需减小分析范围或先定位入口与字符串;函数边界异常(尾调用、无 frame pointer)应手工修正。内置脚本解释器为 Jython 2.7(Python 2 语法),不支持 Python 3 语法与 pip 包,需现代 Python 时改用 ghidra-bridge。脚本 API 跨版本不兼容,写脚本前查当前版本 javadoc。patch 字节前必须先复制 Program,禁止直接修改原始样本以免破坏证据链。