炸裂!这款开源工具让二进制逆向工程进入AI时代,安全研究人员终于等到了
安全规范
本工具仅供安全研究与教育目的使用。请勿将其用于未授权的二进制分析活动。
项目概述
AI-Assisted Reverse Engineering with Ghidra 是一款面向安全研究人员的 AI 驱动逆向工程辅助工具。该项目将 Ghidra 反编译器与大型语言模型相结合,通过自然语言交互界面简化二进制分析流程。
核心架构
- Web 服务层:Flask 驱动的 Web 用户界面
- AI 推理层:OpenAI API 兼容的聊天补全接口
- Ghidra 集成层:MCP 协议连接的头文件 Ghidra REST API
- 持久化层:JSON 文件存储的对话历史

组件结构
WebUI 模块
位于 webui/app.py。提供文件上传、任务状态查询、聊天交互等 RESTful 端点。核心路由包括:
POST /upload:上传二进制文件并触发分析POST /chat:流式 AI 聊天响应GET /jobs:获取分析任务列表GET /status/<job_id>:查询特定任务状态
Ghidra 助手模块
位于 webui/ghidra_assistant.py。实现 AI Agent 工作流。关键机制:
- 工具集:8 个 MCP 工具函数(analyze、status、list_functions、decompile_function、get_xrefs、list_imports、list_strings、query_artifacts)
- 对话管理:自动加载/保存对话历史至
chats目录 - 流式输出:SSE 事件流实时推送 AI 响应
- 最大轮次控制:单次对话最多 5 轮工具调用
API 端点
| 端点 | 方法 | 功能 |
|---|---|---|
/tools/analyze |
POST | 上传二进制并启动分析 |
/tools/status |
POST | 查询任务状态 |
/tools/list_functions |
POST | 获取函数列表 |
/tools/decompile_function |
POST | 反编译指定函数 |
/tools/get_xrefs |
POST | 获取交叉引用 |
/tools/list_imports |
POST | 列出导入符号 |
/tools/list_strings |
POST | 提取字符串 |
/tools/query_artifacts |
POST | 自然语言查询 |
技术栈
- Flask 3.1.2
- openai 2.8.1
- Requests 2.32.5
部署方式
Ghidra 服务
docker run --rm -p 9090:9090 -v $(pwd)/data:/data/ghidra_projects biniamfd/ghidra-headless-rest:latest
WebUI 服务
export API_BASE="https://api.openai.com/v1"
export API_KEY="your-api-key"
export MODEL_NAME="gpt-4"
python webui/app.py
访问 http://localhost:5000 即可使用。
工作流程
- 用户上传二进制文件至 WebUI
- 服务端将文件 base64 编码后发送至 Ghidra REST API
- 返回 job_id 用于后续查询
- 用户发起自然语言查询(如”这个二进制文件的主要功能是什么?”)
- AI Agent 自动调用 Ghidra 工具(函数列表、反编译、交叉引用分析等)
- 流式返回分析结果
依赖要求
- Docker(运行 Ghidra 头文件服务)
- OpenAI API 密钥或兼容 API
本文介绍的项目开源地址如下:
https://github.com/biniamf/ai-reverse-engineering
广告时间

☟上下滑动查看更多

夜雨聆风