RevEngAI/plugin-ida
GitHub: RevEngAI/plugin-ida
RevEng.AI 推出的 IDA Pro 插件,通过云端 AI 模型和二进制代码相似性数据库实现自动符号恢复、函数匹配和 AI 反编译,帮助逆向工程师高效分析去符号的二进制文件。
Stars: 138 | Forks: 12
# RevEng.AI IDA 插件
[Discord](https://discord.com/invite/ZwQTvzfSbA)
### AI 辅助二进制分析
由 RevEng.ai 作为开源发布 - https://reveng.ai
## 描述
RevEng.AI IDA 插件允许您在 IDA 内部与我们的 API 进行交互。
这允许您上传当前打开的二进制文件进行分析,
并将其用于二进制代码相似性比对,以帮助您逆向工程被剥离符号表的二进制文件。
## 目录
- [核心功能](#key-features)
- [安装](#installation)
- [兼容性](#Compatibility)
- [设置](#Setup)
- [验证安装](#verifying-the-installation)
- [使用说明](#usage)
- [配置](#configuration)
- [分析](#analysis)
- [自动还原符号](#auto-unstrip)
- [函数匹配](#function-matching)
- [AI 反编译](#ai-decompilation)
- [贡献](#contributing)
- [报告 Bug](#reporting-bugs)
- [已知问题](#known-issues)
## 核心功能
* 上传当前二进制文件进行分析
* 自动重命名所有置信度高于阈值的函数
* 显示单个所选函数的相似函数及其名称
* 对所选函数进行 AI 反编译
## 安装
最新稳定版 RevEng.AI IDA 插件的构建版本可以从 [Releases](https://github.com/revengai/plugin-ida/releases/latest) 页面下载。
### 支持的 IDA 版本
我们支持以下 IDA 版本和平台:`8.5`、`9.0`、`9.1`、`9.2`,以及从 `3.10` 到 `3.14` 的 Python 版本。
### 设置
1. 从 [Releases](https://github.com/revengai/plugin-ida/releases/latest) 页面**下载**适用于您的平台和 Python 版本的插件代码。
2. 将归档内容**解压**到您的 IDA 用户插件目录中。
**macOS / Linux**
IDA 插件通常位于以下路径:
~/.idapro/plugins/
**Windows**
%AppData%\Hex-Rays\IDA Pro\plugins\
然后在您的终端或命令提示符中运行以下命令,并根据您的平台和架构进行适当调整:
unzip reveng_ida_plugin___py.zip -d ~/Downloads/
mv ~/Downloads/reai_toolkit_entry.py ~/.idapro/plugins/
mv ~/Downloads/reai_toolkit ~/.idapro/plugins/
解压后,目录结构应如下所示:
~/.idapro/plugins/
├── reai_toolkit_entry.py
└── reai_toolkit/
├── app/
├── hooks/
├── vendor/
└── ...
3. 如果 IDA 正在运行,请**重启** IDA。
### 验证安装
打开 IDA 后,请确认顶部栏中出现了 RevEng.AI 菜单。
如果控制台中没有显示错误并且菜单加载成功,则说明您的安装已完成。
## 使用说明
在本节中,我们将提供插件的使用示例工作流。
### 配置
我们需要做的第一件事是使用我们的 API 密钥和要使用的主机来配置插件。
当您首次加载插件时,或者通过选择 `RevEng.AI -> Configure`,系统将引导您完成配置过程。

将您从 [RevEng.AI Portal](https://portal.reveng.ai/settings) 获取的 API 密钥输入到 API Key 字段中,
该密钥将被验证并保存以供将来使用。
### 分析
配置完成后,您可以通过选择 `RevEng.AI -> Analysis -> Create New` 来上传当前二进制文件进行分析。
通常保留默认选项即可,但您也可以根据需要调整分析设置。

您可以在 `RevEng.AI -> Analysis -> Check Status` 选项中检查分析的状态。启动分析也会自动开始轮询状态更新。
示例日志可能如下所示:
```
2025-11-10 00:25:24.755 | INFO | reai_toolkit.app.services.upload.upload_service:analyse_file:87 - RevEng.AI: Uploaded binary file
2025-11-10 00:25:24.768 | INFO | reai_toolkit.app.services.upload.upload_service:analyse:185 - RevEng.AI: Collected 126 functions from IDA
2025-11-10 00:25:24.768 | INFO | reai_toolkit.app.services.upload.upload_service:analyse:188 - RevEng.AI: Base address: 0x0
2025-11-10 00:25:26.319 | INFO | reai_toolkit.app.services.upload.upload_service:analyse:209 - RevEng.AI: Analysis started successfully. Analysis ID: 715916, Binary ID: 731870
2025-11-10 00:25:38.639 | INFO | reai_toolkit.app.services.analysis_status.analysis_status:_poll_analysis_status:74 - RevEng.AI: Analysis Status - Processing
2025-11-10 00:25:48.826 | INFO | reai_toolkit.app.services.analysis_status.analysis_status:_poll_analysis_status:74 - RevEng.AI: Analysis Status - Complete
```
### 自动还原符号
`Auto Unstrip` 工具允许您基于我们的调试符号数据库自动恢复函数名称。这是一个自动化过程,
将从当前附加的二进制文件中恢复所有函数名称。
您可以通过从菜单中选择 `RevEng.AI -> Auto Unstrip` 来访问它。
### 函数匹配
函数匹配工具允许您根据与数据库中函数的相似度来重命名二进制文件中的函数。
这是一个手动过程,可以逐个函数进行,也可以对整个二进制文件进行批处理。它使您能够更好地控制
要重命名的函数及其时机,并允许在应用建议的名称之前对其进行审查。
要匹配二进制文件中的所有函数,请选择 `RevEng.AI -> Function Matching`。

或者要匹配单个函数,请在反汇编视图中 `右键单击` 该函数并选择 `RevEng.AI -> Match Function`。

根据需要调整过滤器,准备就绪后点击 `Function Matching`。
对于多个函数,最多将返回 1 个结果。对于单个函数,最多将返回 10 个函数。
然后您可以通过点击 `Rename` 来决定是否将函数重命名为其中一个建议的名称。

### AI 反编译
`AI Decompilation` 工具允许您获取所选函数的 AI 生成反编译结果。您可以通过在 IDA 的列表视图或
反编译视图中右键单击某个函数并选择 `AI Decompilation` 来访问它。

该窗口将显示所选函数的 AI 生成反编译结果,以及关于该函数功能的自然语言解释。
该窗口可以固定,并会在您选择不同函数时自动更新。
### 报告 Bug
如果您在插件中发现了 Bug,请通过 [GitHub](https://github.com/RevEngAi/plugin-ida/issues/new/choose) 提交 issue,或者在我们的 [Discord](https://discord.com/invite/ZwQTvzfSbA) 上发帖。
## 已知问题
* 该插件在 macOS 上的 IDA 9.2 中运行不稳定。我们正在积极解决此问题。
* 在 macOS Tahoe 上,首次运行该插件时,您需要允许来自未受信任开发者的执行。为此,请转到 `System Preferences -> Security & Privacy`,针对 RevEng.AI 插件点击 `Open Anyway`。
标签:AI反编译, AI辅助, API集成, Binary Code Similarity, DAST, DNS 反向解析, Hex-Rays, IDA Pro, IP 地址批量处理, Python, stripped binaries, VPS部署, 二进制代码相似性, 二进制分析, 云安全运维, 云资产清单, 函数重命名, 可观测性, 威胁情报, 开发者工具, 恶意软件分析, 插件, 无后门, 网络信息收集, 自动反剥离, 软件分析, 逆向工具, 逆向工程