乐于分享
好东西不私藏

炸裂!这款开源工具让二进制逆向工程进入AI时代,安全研究人员终于等到了

炸裂!这款开源工具让二进制逆向工程进入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 即可使用。

工作流程

  1. 用户上传二进制文件至 WebUI
  2. 服务端将文件 base64 编码后发送至 Ghidra REST API
  3. 返回 job_id 用于后续查询
  4. 用户发起自然语言查询(如”这个二进制文件的主要功能是什么?”)
  5. AI Agent 自动调用 Ghidra 工具(函数列表、反编译、交叉引用分析等)
  6. 流式返回分析结果

依赖要求

  • Docker(运行 Ghidra 头文件服务)
  • OpenAI API 密钥或兼容 API

本文介绍的项目开源地址如下:

https://github.com/biniamf/ai-reverse-engineering

广告时间

低价考证包括但不限于CISP系列、PMP等等国内网安证书、网络安全交流群请关注公众号后点菜单栏的找棉花糖。

☟上下滑动查看更多