ida-pro-mcp-dsh
by Xilin3
README.md
# ida-pro-mcp-dsh
[ida-pro-mcp](https://github.com/mrexodia/ida-pro-mcp) 的 **DeepSeek Harness 适配层**。
一键把 mrexodia/ida-pro-mcp 的 **headless idalib MCP server** 挂进 DSH,模型直接拿到
66 个 `mcp__idalib__*` 逆向工具(`decompile` / `disasm` / `xrefs_to` / `idb_open` /
`survey_binary` / `find_bytes` / …),纯无头 idalib 驱动,无需 IDA GUI。
> **这不是 ida-pro-mcp 的分叉,也不包含其代码。** 本仓库只提供 DSH 侧接线
> (一个 `cordis.patch.yml`)。实际 MCP server 来自上游仓库,经 `pip install` 安装。
## 安装
```bash
dsh plugin --profile web add "github:Xilin3/ida-pro-mcp-dsh#main"
```
重启 `dsh web` 后生效。模型将看到 `mcp__idalib__*` 系列工具。
## 依赖(先装上游)
```bash
pip install "https://github.com/mrexodia/ida-pro-mcp/archive/refs/heads/main.zip"
```
并激活 idalib(让 Python 能找到 IDA 的 `idalib.dll`):
```bash
# Windows:推荐直接设 IDADIR 指向 IDA 安装目录(最高优先级,见下方「自定义」)
# 或运行 IDA 自带的激活脚本,把安装目录写进 ida-config.json:
uv run "C:\Program Files\IDA Professional 9.3\idalib\python\py-activate-idalib.py"
```
- Python ≥ 3.11
- IDA Pro 8.3+(9 推荐),**IDA Free 不支持**
- `idalib-mcp` 需在 PATH 上(pip 安装后位于 Python 的 `Scripts` 目录)
## 使用
每个工具都要带 `database` 参数(`idb_open` 返回的 session id):
```text
mcp__idalib__idb_open("/path/to/binary.exe", preferred_session_id="xxx")
mcp__idalib__survey_binary(database="xxx") # 开图第一步:段/入口/字符串/函数总览
mcp__idalib__decompile("main", database="xxx")
mcp__idalib__xrefs_to("ImportantExport", database="xxx")
```
也可以启动时直接带二进制:把 `args` 改成 `['--stdio', '/path/to/binary']`。
## 自定义
本 bundle 的配置行 id 为 `mcp-idalib`,默认 `command: idalib-mcp`。要指定本地
`idalib-mcp` 路径或 IDA 安装目录,在 profile 的 `cordis.patch.yml` 用户层覆盖
(Cordis patch 语义:同 id 最后写入者胜):
```yaml
- insert:
- id: mcp-idalib
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: idalib
transport: stdio
command: 'C:\Users\<you>\AppData\Local\Programs\Python\Python312\Scripts\idalib-mcp.exe'
args:
- '--stdio'
env:
PYTHONUTF8: '1'
IDADIR: 'D:\IDA Professional 9.3' # 指向 IDA 安装目录,最高优先级
toolCallTimeoutMs: 600000
```
`IDADIR` 会被上游 `idapro` 包最高优先级读取,直接定位 `idalib.dll`,绕开
DSH MCP client 对环境的清洗(scrubbed env)。
## 卸载
在 DSH 的 Settings → Plugins 管理面板移除本 bundle,或从 profile `package.json` 的
`dsh.profile.bundles` 删除对应行后重启。
## 归属 / License
- **上游**:[mrexodia/ida-pro-mcp](https://github.com/mrexodia/ida-pro-mcp),MIT
© 2025 Duncan Ogilvie 及贡献者。
- **本适配层**:MIT,仅含 DSH 接线(`cordis.patch.yml`)与文档,不含上游代码。
- 详见 [LICENSE](LICENSE)。
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues