Skip to content
KitploitKITPLOIT
工具博客
Log in
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
idasql — Vibe 逆向工程与 IDA SQL:通过实时虚拟表为 IDA 提供 SQL 接口 | Kitploit
工具/GitHubGitHub/allthingsida/idasql
静态分析逆向工程调试器恶意软件分析二进制分析AI 辅助逆向固件分析
GitHuballthingsida/idasql

idasql

Vibe 逆向工程与 IDA SQL:通过实时虚拟表为 IDA 提供 SQL 接口

查看仓库
36320172个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

IDASQL

让任何 AI 智能体都能理解编译后的二进制文件。

IDASQL 是 IDA Pro 数据库的 SQL 接口,由 Elias Bachaalany 创建。它提供 30+ 个虚拟表,涵盖函数、交叉引用、字符串、类型、导入、反汇编和反编译。使用你的编码智能体中的 /idasql 技能即可完全无头工作——智能体在后台为你运行 IDA——或者打开 IDA 的界面,与你的编码智能体协作共同进行逆向工程。无需 IDAPython。无需脚本。只需 SQL。

为什么选择 SQL? SQL 是每个 AI 智能体都已经掌握的通用查询语言。IDASQL 与智能体无关:Claude、ChatGPT、Copilot、Cursor、自定义智能体,或者完全没有智能体。任何能够发出 SQL 查询的工具都可以分析二进制文件。

  • 无需索引。 IDA 已将所有内容编入索引。查询直接针对实时数据库即时运行。
  • 无需脚本。 30+ 个 SQL 表取代了数百行 IDAPython。
  • 无头、GUI 或两者兼用。 可完全无头运行、在 IDA 的界面内运行,或同时连接多个数据库。
  • 可读可写。 IDASQL 不仅仅是查询工具。它允许读取和写入 IDA 数据库最重要的方面:反编译注释、类型恢复、类型应用(结构和联合偏移)、检测类型转换,以及自动猜测并更新正确的函数原型。

IDASQL 支持同时分析、交叉引用以及在一个或多个数据库之间传输注释。你能做什么,仅受限于你的想象力和所用模型的能力。

工作原理

IDA Pro 已经拥有自己的数据库格式,用于描述函数、字符串、交叉引用、类型等。IDASQL 将这些内部结构映射到 实时 SQL 虚拟表。无需单独的导出或索引步骤——查询直接针对 IDA 的数据库执行,更改会实时反映。

模式启动方式适用场景
独立 CLIidasql -s binary.i64 -i直接 SQL、脚本、流水线
IDA 插件从 IDA 的 CLI 下拉菜单中选择 idasqlGUI 内使用 SQL,实时数据库
技能工作流在你的编码 CLI 中使用 /idasql:connectAI 驱动的分析——智能体自主发出 SQL 查询
You / Agent --> Natural language or SQL
                    |
              /idasql skills (LLM translates intent to SQL)
                    |
                 IDASQL  -->  IDA database(s)
                    |
                 Results  -->  LLM summarizes & reasons
<inline><p><b>本项目仅供教育和研究目的。请负责任地使用。</b></p></inline>```
$ idasql -s WerFaultTool.exe.i64 -q "SELECT * FROM funcs LIMIT 5"
Opening: WerFaultTool.exe.i64...
Database opened successfully.

+------+-------------------------------------------------+------+----------+-------+
| addr | name                                            | size | end_addr | flags |
+------+-------------------------------------------------+------+----------+-------+
| 16   | WerFaultTool.AboutForm::.ctor                   | 13   | 29       | 4096  |
| 32   | WerFaultTool.AboutForm::Dispose                 | 30   | 62       | 4096  |
| 64   | WerFaultTool.AboutForm::InitializeComponent     | 295  | 359      | 4096  |
| 400  | WerFaultTool.WerFaultGUI::.ctor                 | 936  | 1336     | 4096  |
| 1344 | WerFaultTool.WerFaultGUI::CreateDynamicControls | 231  | 1575     | 4096  |
+------+-------------------------------------------------+------+----------+-------+
5 row(s)

一条命令。即时结果。无需编写脚本。

快速开始

在安装 IDASQL CLI 和插件之后,启动你最喜欢的编码智能体,并通过提示开始逆向工程。IDASQL 完全以无头模式运行——你的智能体负责编排 IDA Pro:启动、分析、反编译、注释、保存——或者托管在 IDA GUI 内部,让你与智能体实时协作。

开始使用

打开你最喜欢的编码智能体(例如 Claude Code)并输入:``` /idasql:connect Please open sample_malware.exe in the background and let's analyze it together.

该智能体在后台以无头模式启动 IDASQL。从此时起,即可与数据库自然对话。例如:```
/idasql:annotations Fully annotate the function I'm looking at, also use the decompiler skill.

模型自主推理出理解该函数的最佳方法,对其进行完整逆向工程并添加注释。

完成后,让智能体保存并关闭:``` /idasql:connect Please save all databases and shut down IDASQL.

### 使用多个数据库

您可以同时使用两个或更多数据库。提示您的智能体:```
/idasql:connect In this folder, there are many *.exe files. Please use parallel agents to open IDASQL in the background and report how many functions each has.

然后跟进:``` Tell me, how many strings all these databases have in common?

该代理可同时处理所有数据库。您可以在它们之间进行交叉引用、比较和转移注释。

### 使用 IDA UI

以上所有操作在 IDA GUI 中同样有效。要将您的代理与打开的 IDA 会话配合使用:

1. 在 IDA 的 `idasql>` 提示符中,输入:   ```
   .http start
  1. IDA 输出: ``` IDASQL HTTP server: http://127.0.0.1:8174
  2. 在您的编码代理中: ``` /idasql:connect Let's work with this database: http://127.0.0.1:8174

现在 IDASQL 与你的 IDA 界面已经连接并协同工作。

安装

编码代理插件

IDASQL 技能让你的编码代理能够通过自然语言完全控制 IDA 数据库。

  • Claude Code -- 包含 15 项主题技能的完整插件,可从 allthingsida/idasql-skills 市场安装。
  • GitHub Copilot CLI -- 也通过同一插件支持 IDASQL 技能。
  • Codex (OpenAI) -- 通过相同的插件打包支持技能。有关 Codex 的安装步骤,请参阅 idasql-skills 仓库。

前提条件

  1. IDA Pro 已安装,其目录位于你的 PATH 中(Windows 上为 ida.exe,macOS/Linux 上为 ida)
  2. idasql 已从 Releases 下载,并放置在 IDA 二进制文件旁边
  3. 验证设置:idasql --version 应能在命令行中正常工作

安装(Claude Code)

在 Claude Code 中运行:```text /plugin marketplace add allthingsida/idasql-skills

然后从该市场安装 `idasql` 插件。有关 Codex 及其他安装路径,请参阅 [idasql-skills README](https://github.com/allthingsida/idasql-skills#installation)。

#### 技能

| 技能 | 描述 |
|-------|-------------|
| `connect` | 连接到 IDA 数据库:CLI、HTTP 服务器、会话引导、技能路由、全局契约。 |
| `disassembly` | 查询 IDA 反汇编:函数、段、指令、块、操作数、图形。 |
| `data` | 查询 IDA 字符串、字节和二进制数据:搜索、重建、字节模式。 |
| `xrefs` | 分析 IDA 交叉引用:调用者、被调用者、导入项、数据引用、grep 搜索。 |
| `decompiler` | 反编译 IDA 函数:伪代码、ctree AST、局部变量、标签。 |
| `annotations` | 编辑 IDA 数据库:注释、重命名、类型、书签、枚举/结构体渲染。 |
| `types` | IDA 类型系统:创建/修改/应用结构体、联合体、枚举、typedef、parse_decls。 |
| `debugger` | IDA 调试器:断点、字节修补、条件、补丁清单。 |
| `storage` | 通过 netnode_kv 在 IDA 数据库中进行持久化键值存储。 |
| `idapython` | 通过 idasql 执行 IDAPython:代码片段、沙箱、输出捕获。 |
| `functions` | 完整的 idasql SQL 函数参考目录。 |
| `analysis` | 分析 IDA 二进制文件:分类、安全审计、加密/网络检测、多表查询。 |
| `resource` | 重建 IDA 二进制文件资源:递归注释、结构恢复、类型重建。 |
| `ui-context` | 捕获实时 IDA UI 上下文:屏幕、选中区域、控件焦点、地址锚点。 |

#### 示例提示词```
/idasql:analysis analyze this binary; tell me the most called functions.
/idasql:data find functions that reference "password" strings and rank by xrefs.
/idasql:xrefs show callers of CreateFileW and summarize error handling.
/idasql:data identify suspicious hardcoded URLs and the functions that reference them.

/idasql 技能可在你的编码 CLI 中驱动分析 -- 无需 IDAPython 脚本。

CLI 帮助``` $ idasql Error: Database path required (-s)

idasql v0.0.18 - SQL interface to IDA databases

Usage: idasql -s [-q ] [-f ] [-i] [--export ]

Options: -s IDA database (.idb/.i64) OR raw binary (.exe/.dll/firmware/etc.) — raw binaries trigger fresh idalib analysis and string-list rebuild — legacy 32-bit .idb files upgrade to .i64 and require an explicit reopen --token Auth token for HTTP/MCP server mode (if server requires it) -q Execute SQL query or semicolon-separated script -f Execute SQL from file -i Interactive REPL mode -w, --write Save database on exit (persist changes) --export Export tables to SQL file (local mode only) --export-tables=X Tables to export: * (all, default) or table1,table2,... --http [port] Start HTTP REST server (default: 8080, local mode only) --bind Bind address for HTTP/MCP server (default: 127.0.0.1) --mcp [port] Start MCP server (default: random port, use in -i mode) Or use .mcp start in interactive mode -h, --help Show this help --version Show version

Examples: idasql -s test.i64 -q "SELECT name, size FROM funcs LIMIT 10" idasql -s test.i64 -q "SELECT * FROM binary; SELECT COUNT(*) FROM funcs;" idasql -s test.i64 -f queries.sql idasql -s test.i64 -i idasql -s test.i64 --export dump.sql idasql -s test.i64 --http 8080 idasql -s sample.exe --http # raw PE: idalib auto-analyzes, then serves SQL (default port 8080) idasql -s firmware.bin -q "SELECT * FROM binary" idasql -s test.i64 --mcp 9000

Thank you for using IDA. Have a nice day!

Legacy 32-bit `.idb` inputs are upgraded by idalib to a sibling `.i64`. When that
happens, idasql exits before serving SQL, returns exit code `3`, and prints one
JSON object to stdout with `status:"upgraded"` and `reopen_with`. Repeat the same
operation with `-s <reopen_with>`.

</details>

### 从源码构建

#### 先决条件

- CMake 3.20+
- C++20 编译器
- IDA SDK 9.0+(设置 `IDASDK` 环境变量)```bash
cmake -S . -B build -DIDASQL_WITH_MCP=ON -DIDASQL_BUILD_EXAMPLES=OFF
cmake --build build --config Release

有用的 CMake 开关:

下载工具