fire3/aida-audit
GitHub: fire3/aida-audit
连接 IDA Pro/Ghidra 与大语言模型的二进制安全审计平台,通过 MCP 协议让 AI 自主完成代码审计和漏洞挖掘。
Stars: 1 | Forks: 0
# AIDA-AUDIT
AIDA-AUDIT 是一个功能强大的工具,旨在弥合 IDA Pro 二进制分析与现代 AI 辅助工作流之间的差距。它提供了一种无缝的方式,可以从 IDA Pro 导出分析数据,并通过丰富的 Web UI 或通过 Model Context Protocol (MCP) 以编程方式进行探索。
## 截图
### Web UI

### 自动化审计

## 功能特性
* **导出 (Export)**:从 IDA Pro 或 Ghidra 自动提取二进制元数据(函数、字符串、导入、导出、伪代码等)到便携式 SQLite 数据库。自动初始化工作区并配置 MCP 客户端。
* **Web UI**:一个现代化、交互式的 Web 界面,用于浏览和分析导出的数据。
* **MCP Server**:一个完全兼容 Model Context Protocol 的服务器,允许 AI 助手查询和推理二进制结构。
* **自动化代码审计**:一个由 LLM 驱动的智能代理系统,可自动规划、执行和验证二进制文件的安全审计,并提供实时反馈和详细报告。
* **REST API**:基于 FastAPI 的后端,支持自定义集成。
## 安装说明
### 前置条件
* **Python 3.9+**
* **IDA Pro**:使用 IDA 后端执行 `aida-audit export` 命令时需要。
* **Ghidra**:使用 Ghidra 后端导出数据时需要。
* **JDK**:运行 Ghidra 所需(如果您的 Ghidra 安装包已包含 JDK,则可跳过)。
* **Node.js**:仅在计划从源码构建前端时需要(可选)。
### 安装 IDA Pro lib(必需)
为了使 `aida-audit export` 命令在 IDA 后端下正常工作,您需要安装 IDA Pro Python 库。
1. 确保已安装 IDA Pro 并配置好环境。
2. 导航至 IDA Pro 安装目录下的 `idalib/python` 子目录(例如 `C:\Program Files\IDA Professional 9.2\`)。
3. 在该目录下,您应该能找到一个 `idapro` 文件夹,以及 `setup.py` 和 `py-activate-lidalib.py` 文件。
4. 在此目录下运行以下命令:
pip install .
5. 安装完成后,运行 `python py-activate-lidalib.py` 以激活 IDA Pro Python 库。
### 安装 Node.js(可选)
如果您计划从源码构建并安装 `aida-audit`,则需要安装 Node.js。
1. 下载并安装最新版本的 Node.js。
2. 验证安装:
node -v
npm -v
### 安装 Ghidra 和 JDK(Ghidra 后端必需)
1. 安装 JDK(如果您的 Ghidra 安装包未包含)。
2. 下载并解压 Ghidra。
3. 将 `GHIDRA_HOME` 设置为 Ghidra 根目录(该目录必须包含 `support/analyzeHeadless(.bat)`)。
4. 验证路径:
# Windows
%GHIDRA_HOME%\support\analyzeHeadless.bat
# Linux/macOS
$GHIDRA_HOME/support/analyzeHeadless
### 源码构建与安装
我们提供了脚本来自动构建前端、打包后端并将该工具安装到您的 Python 环境中。
1. 导航至 `backend` 目录:
cd backend
2. 对于 Windows,运行构建和安装脚本:
.\build_and_install.ps1
对于 Linux/MacOS,运行构建和安装脚本:
./build_and_install.sh
此脚本将自动执行以下操作:
* 构建 React 前端。
* 将前端资源复制到后端包中。
* 将内置技能 (skills) 复制到后端包中。
* 构建 Python wheel 包。
* 使用 `pip` 安装 `aida-audit`。
### PIP 安装
如果您只需要后端,或者想从预构建的 wheel 包安装:
```
pip install aida-audit
```
## 使用说明
安装完成后,您可以在终端中使用 `aida-audit` 命令。
### 1. 导出分析数据 (`export`)
`export` 命令会启动一个无头 (headless) 的 IDA Pro 或 Ghidra 实例来分析二进制文件并保存结果。它会自动初始化工作区并配置 MCP 客户端。
```
aida-audit export -o
```
**参数:**
* ``:目标二进制文件的路径(例如 `.exe`、`.so`、固件组件)。
* `-o, --out-dir`:保存 SQLite 数据库 (`.db`) 及其他产物的目录。
**高级选项:**
* `-s, --scan-dir `:**批量模式**。递归扫描指定目录以查找依赖项(适用于分析固件文件系统)。
* `-j `:并行工作进程数(默认:4)。
* `--backend `:选择导出后端(默认:`ida`)。
* `--verbose`:启用详细日志记录。
* `--log-file `:将日志写入文件。
* 当使用 `--backend ghidra` 时,请在运行前在环境中设置 `GHIDRA_HOME`。
**工作区初始化:**
导出命令会在输出目录中自动创建以下内容:
* `opencode.json`:包含 MCP 服务器配置的 OpenCode 项目配置。
* `.mcp.json`:MCP 客户端配置。
* `.trae/mcp.json`:Trae 客户端 MCP 配置。
* `.claude/settings.local.json`:Claude 桌面版设置。
* `.opencode/skills/`:OpenCode 兼容的技能(如果可用)。
**示例:**
```
# 分析单个 binary
aida-audit export ./bin/httpd -o ./output
# 分析 firmware root 中的 binary,解析依赖项
aida-audit export ./squashfs-root/usr/sbin/httpd -o ./output --scan-dir ./squashfs-root
# 使用 Ghidra backend 导出(使用 GHIDRA_HOME)
aida-audit export ./bin/httpd -o ./output --backend ghidra
# 通过 wildcard 导出多个目标
aida-audit export ./lib/uams/uams_* -o ./output
```
### 2. 启动服务器 (`serve`)
`serve` 命令用于启动 Web UI 和 MCP 服务器。
```
aida-audit serve [project_path]
```
**参数:**
* `[project_path]`:包含导出的 `.db` 文件的目录路径。默认为当前目录 (`.`)。
**选项:**
* `--host`:绑定的主机地址(默认:`127.0.0.1`)。
* `--port`:端口号(默认:`8765`)。
**访问 UI:**
服务器运行后,打开浏览器并访问:
**http://localhost:8765**
**MCP Server 地址:**
**http://localhost:8765/mcp**
## 自动化代码审计
AIDA-AUDIT 包含一个复杂的智能代理系统,旨在自动化安全审计流程。该系统利用大语言模型 (LLM) 和 Model Context Protocol (MCP) 对二进制文件进行深度分析。
### 核心能力
* **智能规划**:`PlanAgent` 分析目标二进制文件的结构,并根据代码的具体特征制定全面的高级审计计划。
* **自主执行**:`AuditAgent` 通过将计划分解为具体任务来执行审计。它利用丰富的工具集来探索代码、分析控制流并识别潜在漏洞。
* **验证与确认**:专用的 `VerificationAgent` 审查发现的结果,以最大限度地减少误报并确保报告的准确性。
* **实时仪表盘**:通过 Web UI 中的 "Live" 标签页实时监控代理的思考过程、工具使用情况和发现结果。
* **循环检测**:先进的循环检测机制可防止代理陷入重复的分析循环中。
* **双语报告**:支持生成中文和英文的报告及发现结果。
### 工作原理
1. **初始化**:当您启动审计会话时,系统会初始化代理并从导出的数据库中加载必要的上下文。
2. **规划阶段**:规划代理 (planner agent) 调查二进制文件的函数、字符串和导入,以制定策略。
3. **审计循环**:审计代理 (audit agent) 从计划中提取任务,使用工具(如 `audit_report_finding`、`audit_create_note`)记录其工作,并更新任务状态。
4. **完成**:一旦所有任务完成或用户停止会话,系统将生成最终报告。
## 开发
### 目录结构
* `backend/`:Python 源代码(FastAPI、IDA 脚本、MCP 实现)。
* `frontend/`:用于 Web UI 的 React/TypeScript 源代码。
* `devdocs/`:设计文档和 API 规范。
### 在开发模式下运行
1. **后端**:`cd backend && uvicorn aida-audit.server_cmd:app --reload`
2. **前端**:`cd frontend && npm run dev`
标签:AV绕过, C2, CTF工具, DLL 劫持, FastAPI, Ghidra, IDA Pro, LLM, MCP, MITM代理, Model Context Protocol, Python, SQLite, TCP SYN 扫描, Unmanaged PE, Wayback Machine, Web UI, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 人工智能, 代码理解, 伪代码, 反汇编, 大语言模型, 对称加密, 插件, 无后门, 漏洞搜索, 用户模式Hook绕过, 网络安全, 网络测绘, 自动化审计, 逆向工具, 逆向工程, 隐私保护, 静态分析