SuperAPI AI 工具集

ghidra-headless

安全与审计

查看项目

更新于 10-15 20:05

技能介绍

用途:使用 Ghidra 的 analyzeHeadless 工具对二进制进行自动化逆向工程,导入二进制、运行分析、反编译为 C 代码并提取有用信息。

主要能力:反编译二进制为 C 伪代码;提取函数签名、字符串、符号;分析调用图以理解控制流;对未知二进制或固件镜像进行初步分类;批量分析多个二进制以作比较;在无源码情况下审计编译代码。

使用方式:需先安装 Ghidra(macOS 可用 brew install --cask ghidra)并具备 Java(OpenJDK 17+)。技能会自动在常见路径查找 Ghidra,非标准位置可设置 GHIDRA_HOME。主包装脚本为 {baseDir}/scripts/ghidra-analyze.sh [options] <binary>,常用选项包括 -o 输出目录、-s 分析后脚本、-p 处理器架构、--no-analysis 跳过自动分析、--timeout 超时、--keep-project 保留项目等。内置导出脚本有 ExportAll.java(汇总、反编译、函数、字符串、可疑模式)、ExportDecompiled.java、ExportFunctions.java、ExportStrings.java、ExportCalls.java、ExportSymbols.java。示例:{baseDir}/scripts/ghidra-analyze.sh -s ExportAll.java -o ./output binary。

适用场景:无源码安全审计、固件分析、未知二进制分类、批量比较。

限制:源码可用时应直接阅读;需要交互式调试时用 GDB、LLDB 或 Ghidra GUI;.NET 程序集用 dnSpy 或 ILSpy;Java 字节码用 jadx 或 cfr;需要动态分析时用调试器或沙箱。反编译结果并非完美,应作为参考并与反汇编交叉验证。大二进制耗时较长,可用 --timeout 或 --no-analysis 快速扫描;内存不足可设置 MAXMEM=4G;架构识别错误时用 -p 显式指定。