OGhidra:一个让Ghidra用上AI大模型进行逆向分析的工具

导语:想让逆向工程像聊天一样简单?劳伦斯利弗莫尔国家实验室(LLNL)近日开源了一款重磅工具——OGhidra。它将大语言模型与Ghidra逆向平台桥接,实现通过自然语言与二进制程序”对话”。分析恶意软件、查找漏洞,不再需要记忆海量指令。


一、工具简介

OGhidra 是由劳伦斯利弗莫尔国家实验室(LLNL)的 Enoch Wang 主导开发的项目,GitHub地址:https://github.com/llnl/OGhidra

它将大语言模型通过 Ollama 与 Ghidra 逆向工程平台桥接,实现 AI 驱动的二进制分析。用户可以用自然语言与二进制程序”对话”,自动化复杂逆向工作流程,并在本地运行模型以确保完全隐私。

OGhidra架构图

二、核心功能

自然语言分析

用日常英语提问关于函数、字符串、导入库的问题——不需要记忆复杂的Ghidra脚本指令:

  • “这个函数是做什么的?”
  • “它有缓冲区溢出漏洞吗?”
  • “有哪些函数调用了它?”
  • “显示了网络通信相关的代码吗?”

自动化工作流

一键完成批量操作:

功能说明
分析当前函数深入分析选定函数的行为
重命名当前函数AI根据分析结果建议有意义的名称
批量重命名所有函数支持仅重命名/智能枚举/完整枚举三种模式
分析导入表识别库和外部依赖
分析字符串查找URL、凭据、配置数据
生成报告综合性安全评估报告

本地AI模型(隐私优先)

支持完全本地部署:

  • Ollama:在本地硬件运行大语言模型,敏感二进制文件绝不离开你的机器
  • 云端API:也支持OpenAI、Google Gemini、Anthropic Claude等外部接口
  • 自定义端点:任何OpenAI兼容API都可接入

恶意软件检测(内置12+规则)

自动识别多种高级威胁:

  • 规避技术:PEB Walking、动态API解析、反调试、反虚拟机
  • 注入技术:本地/远程进程注入
  • 持久化:注册表、文件系统钩子
  • 混淆:字符串编码、API哈希
  • 权限提升:Token操作、UAC绕过

检测到威胁时自动触发警告,并附带MITRE ATT&CK映射。

智能枚举

从二进制中构建可查询的知识图谱:

  • 结构化元数据提取(代码行数、复杂度、操作类型)
  • 语义搜索优化
  • 多向量支持精确检索
  • 会话保存与恢复

智能体循环(Agentic Loop)

OGhidra采用自适应规划系统,每个执行周期后AI会审查结果,决定是否收集更多信息或优化分析,然后才给出最终响应。


三、系统要求

组件版本要求
Python3.12+
Ghidra12.0.3(推荐),也支持11.0.3、11.3.2、12.0.2
Java21(构建Ghidra 12.0.3扩展必需)
Ollama可选,用于本地模型

推荐配置:gemma3:27b 模型(约需20GB内存),nomic-embed-text用于RAG嵌入。

替代模型:gpt-oss:120b、devstral-2:123b(需80GB内存)。


四、安装配置

步骤一:克隆项目

git clone https://github.com/LLNL/OGhidra.git
cd OGhidra

步骤二:安装依赖

uv sync              # 使用UV(推荐)
# 或
pip install -r requirements.txt

步骤三:配置环境

cp .env.example .env
# 编辑.env设置AI提供商

本地模型配置(Ollama):

LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434/
OLLAMA_MODEL=gemma3:27b
OLLAMA_EMBEDDING_MODEL=nomic-embed-text

云端API配置(Google Gemini):

LLM_PROVIDER=external
EXTERNAL_PROVIDER=google
EXTERNAL_API_KEY=你的API密钥
EXTERNAL_MODEL=gemini-3.1-flash-lite-preview

步骤四:构建Ghidra插件

# 设置Ghidra安装路径
export GHIDRA_INSTALL_DIR=/path/to/ghidra_12.0.3_PUBLIC

# 运行构建脚本
chmod +x build_ghidra_plugin.sh
./build_ghidra_plugin.sh

构建完成后,扩展包zip文件位于 OGhidraMCP/dist/ 目录。

步骤五:安装插件

  1. 打开Ghidra → FileInstall Extensions
  2. 点击 Add Extension(绿色加号图标)
  3. 浏览到 OGhidraMCP/dist/ 目录
  4. 选择扩展包zip文件,重启Ghidra

步骤六:启用插件

  1. 打开Ghidra项目
  2. FileConfigureEnable Developer
  3. 启用 OGhidraMCP 插件
  4. 服务器将在 http://localhost:8080/methods 启动

⚠️ 注意:必须打开 CodeBrowser 窗口才能正常使用。

步骤七:拉取AI模型(本地)

ollama pull gemma3:27b          # 推荐配置(20GB内存)
ollama pull nomic-embed-text    # RAG嵌入模型

步骤八:启动

# GUI模式(推荐)
uv run main.py --ui

# 交互式CLI
uv run main.py --interactive

五、使用示例

分析可疑二进制

  1. 在Ghidra中加载二进制文件,打开CodeBrowser
  2. 启用OGhidraMCP插件(File → Configure)
  3. 启动OGhidra:uv run main.py --ui
  4. 任务模式选择”malware”
  5. 点击”Rename All Functions” → “Smart Enumeration”
  6. 提问:”哪些是高风险函数?”或”显示网络通信相关代码”

生成安全报告

在GUI中点击”Generate Report”按钮,报告包含:

  • 执行摘要
  • 函数清单(重命名后的函数及其行为)
  • 安全分析(高风险函数、检测到的模式)
  • 导入表分析
  • 字符串分析
  • 修复建议

调查特定函数

  1. 在Ghidra中导航到目标函数
  2. 点击”Analyze Current Function”
  3. 追问:
  • “这个函数是做什么的?”
  • “它有缓冲区溢出漏洞吗?”
  • “有哪些其他函数调用了它?”

六、双后端支持

OGhidra支持两种后端类型:

后端说明
MCP与GhidraMCP服务器集成,运行时需要Ghidra客户端
PyGhidra无头分析,无需Ghidra客户端,更适合自动化场景
# 选择后端
uv run main.py --ui --ghidra-backend=pyghidra --pyghidra-binary=/path/to/binary

七、高级特性

RAG(检索增强生成)

启用向量嵌入实现语义搜索:

RESULT_CACHE_ENABLED=true
TIERED_CONTEXT_ENABLED=true

上下文优化

分层压缩保持信息相关性:

CURRENT_LOOP_MAX_CHARS=2000   # 最新:完整细节
PREV_LOOP_MAX_CHARS=400       # 之前:摘要
OLDER_LOOP_MAX_CHARS=100      # 更早:仅引用

日志记录

跟踪所有AI交互用于调试:

LLM_LOGGING_ENABLED=true
LLM_LOG_FILE=logs/llm_interactions.log
LLM_LOG_FORMAT=json

八、故障排除

Ghidra连接问题:

# 检查服务器是否运行
curl http://localhost:8080/methods

Ollama连接问题:

ollama list
curl http://localhost:11434/api/tags
ollama serve  # 重启Ollama服务

响应为空/上下文溢出:

CONTEXT_BUDGET=50000
COMPACTION_ENABLED=true
COMPACTION_THRESHOLD=0.75

九、项目信息

  • 开源协议:BSD 3-Clause(包含商业许可选项)
  • 开发团队:劳伦斯利弗莫尔国家实验室(LLNL)
  • 作者:Enoch Wang(enochsurge@gmail.com)
  • 相关项目:Ghidra(NSA)、Ollama、GhidraMCP

来源:Twitter @7h3h4ckv157 推荐,原始项目:https://github.com/llnl/OGhidra

下载地址

  • GitHub主仓库:https://github.com/llnl/OGhidra
  • YouTube教程:https://www.youtube.com/watch?v=hBD92FUgR0Y

版权声明:本文由华盟网原创发布,保留所有权利。配图由华盟网授权使用。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容