让 AI 智能体直接查询并操控本地 IDA Pro 的 idb
32.6/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add O3SET/dsh-idapro该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 79 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/28) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-idapro(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22.19 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/17 16:44:33
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 查询本地idb
- 操控本地idb
README
由 DeepSeek 最新模型翻译生成dsh-idapro
DeepSeek Harness 插件:连接本地 IDA Pro,让 AI 智能体直接查询与控制当前打开的 idb。
IDA 本身没有远程控制 API,因此本插件由两部分组成:
┌─────────────────────────┐ HTTP JSON (POST /rpc) ┌──────────────────────────┐
│ IDA Pro (本地) │ ◄───────────────────────────────► │ DeepSeek Harness (DSH) │ │ ida/dsh_ida_server.py │ 127.0.0.1:13337 (默认) │ dsh-idapro 插件 │ │ IDAPython HTTP 服务 │ │ 15 个 ida_* 工具 │ └─────────────────────────┘ └──────────────────────────┘
- IDA 侧 ida/dsh_ida_server.py:在 IDA 内启动一个默认仅本机可访问的 HTTP 服务,所有 IDA API 调用经 ida_kernwin.execute_sync 封送到主线程执行(读 MFF_READ,写 MFF_WRITE)。
展开完整文档(README 剩余 1 节)
dsh-idapro
DeepSeek Harness 插件:连接本地 IDA Pro,让 AI 智能体直接查询与控制当前打开的 idb。
IDA 本身没有远程控制 API,因此本插件由两部分组成:
┌─────────────────────────┐ HTTP JSON (POST /rpc) ┌──────────────────────────┐
│ IDA Pro (本地) │ ◄───────────────────────────────► │ DeepSeek Harness (DSH) │ │ ida/dsh_ida_server.py │ 127.0.0.1:13337 (默认) │ dsh-idapro 插件 │ │ IDAPython HTTP 服务 │ │ 15 个 ida_* 工具 │ └─────────────────────────┘ └──────────────────────────┘
- IDA 侧 ida/dsh_ida_server.py:在 IDA 内启动一个默认仅本机可访问的 HTTP 服务,所有 IDA API 调用经 ida_kernwin.execute_sync 封送到主线程执行(读 MFF_READ,写 MFF_WRITE)。
- DSH 侧 本插件:通过 curl 经 ctx.shell 调用 /rpc,向智能体注册 32 个工具(15 个静态分析 + 17 个动态调试)。
快速开始
1. IDA 侧:启动服务(任选其一)
A. 作为插件(推荐) — 复制脚本到 IDA plugins 目录,重启 IDA 后自动启动:
copy ida\dsh_ida_server.py "C:\Program Files\IDA Pro 8.3\plugins\"
B. 作为脚本 — IDA 菜单 File > Script file... 打开 ida\dsh_ida_server.py,立即启动。
IDA 控制台出现 [dsh-ida-server] ✔ 监听 http://127.0.0.1:13337 即成功。
2. DSH 侧:构建并安装
cd dsh-idapro
node scripts/install.mjs
install.mjs 会自动构建 dist,在 %DSH_HOME%\profiles\web\node_modules\dsh-idapro 创建 junction 链接并在补丁层 cordis.patch.yml 登记 name: dsh-idapro。重启 DSH 进程(或等待长驻界面 HMR 自动重载)后生效。
3. 验证
在新会话中调用 ida_status,返回当前 idb 的文件信息、架构、函数数量等即连接成功。
工具列表
| 工具 | 功能 | 写操作 |
| ida_status | 连接状态 + idb 元信息(文件/MD5/架构/基址/函数数/Hex-Rays 可用性) | 否 |
| ida_functions | 函数列表(名称过滤 / 地址范围 / 分页) | 否 |
| ida_decompile | Hex-Rays 反编译(地址或函数名 → 伪代码) | 否 |
| ida_disasm | 线性反汇编(逐条 / 整个函数,支持 next_ea 续读) | 否 |
| ida_xrefs | 交叉引用(to=谁引用我 / from=我引用谁 / both) | 否 |
| ida_strings | 已定义字符串(C/UTF-16,最小长度与子串过滤) | 否 |
| ida_imports | 导入表(模块/函数名/序号/地址) | 否 |
| ida_exports | 导出表(序号/名称/地址/转发目标) | 否 |
| ida_segments | 段布局(名称/起止/大小/权限/类型) | 否 |
| ida_bytes | 读取原始字节(hex + 可打印 ASCII) | 否 |
| ida_search | 搜索字节模式(支持 ?? 通配)或文本 | 否 |
| ida_rename | 重命名符号(函数名/全局名) | 是 |
| ida_comment | 设置注释(可重复/不可重复) | 是 |
| ida_patch | 写入补丁字节 | 是 |
| ida_config | 查看/设置连接地址与访问令牌 | 否(写凭证) |
动态调试(需 IDA 已加载调试器后端,打开 PE/ELF 的 idb 即可自动加载):
| 工具 | 功能 | 写操作 |
| ida_dbg_status | 调试器状态(会话/挂起状态/当前 ip/断点模块线程数) | 否 |
| ida_dbg_launch | 启动调试目标进程(可带参数),挂起于入口点 | 是 |
| ida_dbg_attach | 附加到运行中进程(按 pid 或进程名) | 是 |
| ida_dbg_continue | 继续执行(立即返回,运行态) | 是 |
| ida_dbg_pause | 挂起进程,返回当前 ip | 是 |
| ida_dbg_step_into | 单步进入(等待挂起) | 是 |
| ida_dbg_step_over | 单步跳过(等待挂起) | 是 |
| ida_dbg_run_to | 运行到指定地址后挂起 | 是 |
| ida_dbg_bps | 列出所有断点 | 否 |
| ida_dbg_add_bp | 添加断点(soft/exec/read/write/rdwr) | 是 |
| ida_dbg_del_bp | 删除断点 | 是 |
| ida_dbg_regs | 读取寄存器(全部或指定) | 否 |
| ida_dbg_set_reg | 写入寄存器(如改 EIP/EAX) | 是 |
| ida_dbg_mem | 读写被调试进程运行时内存(write_hex 时写入) | 是/否 |
| ida_dbg_modules | 已加载模块列表(基址/大小) | 否 |
| ida_dbg_threads | 线程列表 | 否 |
| ida_dbg_detach | 分离调试器(kill=true 终止被调试进程) | 是 |
地址约定:所有地址均为十六进制字符串(如 "0x401000")或符号名(如 "main"),避免 64 位地址在 JSON 中的精度丢失。写操作(rename/comment/patch)可用 IDA 自身撤销(Edit > Undo)。
动态调试工作流
1. 在 IDA 中打开目标文件对应的 idb(调试器后端自动加载),运行 dsh_ida_server.py
2. ida_dbg_launch 启动目标(或 ida_dbg_attach 附加到运行中的进程)——进程挂起于入口点
3. ida_dbg_add_bp 在关键位置下断点(软件断点或硬件读写断点)
4. ida_dbg_continue 运行,命中后自动挂起;ida_dbg_status 查看当前 ip 与状态
5. 挂起状态下:ida_dbg_regs 读寄存器、ida_dbg_mem 读运行时内存、 ida_decompile/ida_disasm 对照静态视图、ida_dbg_step_into/step_over 单步、 ida_dbg_run_to 快速越过区间、ida_dbg_set_reg/ida_dbg_mem(write_hex) 篡改状态
6. 结束:ida_dbg_detach(或 kill=true 终止)
注意:ida_bytes 读的是 idb 静态字节,运行期内存用 ida_dbg_mem;两者在自修改代码场景下会不同。调试控制工具会等待进程挂起(默认 10 秒,可传 timeout),超时后进程可能仍在运行,用 ida_dbg_pause 或重试。
配置
优先级:工具参数 > 环境变量 > 凭证库(同名环境变量优先生效)。
| 用途 | DSH 侧引用名 / 环境变量 | IDA 侧环境变量 |
| 服务地址 | DSH_IDA_URL(默认 http://127.0.0.1:13337) | DSH_IDA_HOST / DSH_IDA_PORT |
| 访问令牌 | DSH_IDA_TOKEN | DSH_IDA_TOKEN |
- 会话内设置:调用 ida_config(写入凭证库,跨会话持久)。
- 环境变量方式:设置 DSH_IDA_URL / DSH_IDA_TOKEN 后重启 DSH。
- 端口冲突时:IDA 侧设置 DSH_IDA_PORT=13338,DSH 侧 ida_config 设置 url 为 http://127.0.0.1:13338。
安全
- 默认只监听 127.0.0.1,外部无法访问。
- 需要跨机访问时可将 IDA 侧 DSH_IDA_HOST 设为 0.0.0.0,但务必同时设置 DSH_IDA_TOKEN,请求需携带相同令牌(hmac 恒时比较)。
- 写操作工具(ida_rename / ida_comment / ida_patch)直接修改 idb,请谨慎使用。
协议
POST /rpc
{"method": "decompile", "params": {"addr": "0x401000"}, "token": ""}
200 OK
{"ok": true, "result": {"ea": "0x401000", "name": "main", "hexrays": "8.3.0.240320", "pseudo": "..."}}
或 {"ok": false, "error": "..."}
方法:静态 status functions decompile disasm xrefs strings imports exports segments read_bytes search rename comment patch;调试 dbg_status dbg_launch dbg_attach dbg_detach dbg_continue dbg_pause dbg_step_into dbg_step_over dbg_run_to dbg_bps dbg_add_bp dbg_del_bp dbg_regs dbg_set_reg dbg_mem dbg_modules dbg_threads。
常见问题
连接失败(curl 退出码 7):检查 (1) IDA 已打开目标 idb;(2) 服务脚本已运行(IDA 控制台
有监听提示);(3) 地址端口与 ida_config 一致。可先 curl http://127.0.0.1:13337/ 手工验证。
ida_decompile 报未安装 Hex-Rays:需要 IDA 装有 Hex-Rays 反编译器(F5 可用)。
ida_strings 慢:全量扫描大文件耗时,请限定 start/end、提高 min_len 或减小 count。
执行器/无界面模式:execute_sync 依赖 IDA 主线程,idat 文本模式可用,无界面批处理不支持。
目录结构
dsh-idapro/
├── ida/dsh_ida_server.py # IDA 侧 HTTP 服务 (IDAPython, 插件或脚本方式加载) ├── src/ # DSH 插件源码 (零依赖 ESM, mini-bundler 拼接) │ ├── index.js # 插件入口 (inject: shell, tools) │ ├── lib/ # utils / runtime 适配 / http(经 curl) / config / rpc client │ └── tools/ # 15 个 ida_ 工具 ├── scripts/ # build.mjs (打包) / install.mjs / uninstall.mjs ├── test/ # node:test 单元 + loader 冒烟测试 └── dist/ # 构建产物 (dsh-idapro-host.js + dsh-idapro-plugin.mjs) 开发
npm run build # 构建 dist (动态插件函数体 + Loader ESM 产物)
npm test # 构建 + node --test
与 MapScan 插件相同:src/* 中的模块由 scripts/build.mjs 按依赖顺序拼接为单文件函数体,仅支持单行 named import/export,模块间顶层符号名不得重复。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
O3SET/dsh-idapro
让 AI 智能体直接查询并操控本地 IDA Pro 的 idb
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,148已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7
这是你的仓库?认领条目