IDA-pro-mcp 的核心功能 常用的prompt

IDA-pro-mcp 是一个基于 MCP(Model Context Protocol)的服务器,把 IDA Pro 的底层能力包装成 AI 可直接调用的 JSON-RPC 接口,实现"AI 驱动的逆向工程"。主要功能可分为 8 类:

  1. 连接与状态

• check_connection() -- 检测 IDA 插件/服务器是否在线。

  1. 元数据与导航

• get_metadata()、get_current_address()、get_entry_points() -- 查看当前 IDB 的基址、架构、入口点等。

  1. 函数操作

• get_function_by_name / by_address、list_functions -- 读取函数列表或单个函数信息。

• decompile_function、disassemble_function -- 输出 C 伪代码或汇编指令。

• rename_function、set_function_prototype -- 重命名及修改函数签名。

  1. 变量/类型管理

• rename_local_variable、rename_global_variable、set_*_variable_type -- 一键改名与类型修复。

• declare_c_type -- 通过 C 声明创建结构体、枚举等局部类型。

  1. 字符串与全局数据

• list_strings、list_globals -- 枚举所有字符串或全局变量,可加分页与过滤。

  1. 交叉引用

• get_xrefs_to(address) -- 查看谁引用了某地址/函数/变量,快速定位调用链。

  1. 注释与标注

• set_comment -- 在指定地址插入注释,反汇编与伪代码同步显示。

  1. 调试器(需 --unsafe 启动)

• dbg_* 系列:下断点、取寄存器、查看调用栈、单步运行等,方便动态验证。

常用提示词模板(可直接投喂给 Claude / Cline / Roo Code 等 MCP 客户端)

下面给出 4 组高频场景提示词,复制后按需替换"程序名""函数名"即可使用。

  1. 自动化注释 + 重命名

```

你是一位 IDA 专家,目标是在最短时间内提升可读性。

步骤:

  1. 用 list_functions 获取所有函数;

  2. 对每个未知函数,先用 decompile_function 查看伪代码;

  3. 根据语义把 sub_xxxx 重命名为有意义的名字(如 validate_license);

  4. 为关键变量/参数 rename_local_variable,并 set_comment 描述用途;

  5. 完成后输出 report.md,列出"函数新名->旧名"映射。

```

  1. CrackMe 密码逆向

```

任务:分析当前加载的 crackme.exe,找出正确密码。

约束:

  • 只能用 ida-pro-mcp 工具;禁止暴力破解。

  • 遇到加密/哈希,用交叉引用定位关键函数,再 decompile_function。

  • 发现密码后,用 set_comment 在验证函数处标注答案,并回复用户"密码是:xxx"。

```

  1. 混淆检测与算法识别(增强版)

```

请执行:

  1. 检查是否存在控制流平坦化、字符串加密、反调试 API;

  2. 用 list_strings 与 get_xrefs_to 交叉验证可疑常量;

  3. 对疑似加密函数,尝试识别算法(如 AES、RC4、TEA);

  4. 输出 report.md

  • 混淆类型 + 位置

  • 识别到的算法 + 置信度

  • 流程图(mermaid 语法)

```

  1. 批量类型修复(结构体恢复)

```

背景:固件中存在大量裸指针。

步骤:

  1. 用 list_globals 找出所有未声明类型的全局数组;

  2. 根据上下文推断结构体布局,用 declare_c_type 创建新类型;

  3. 将对应全局变量 set_global_variable_type 为新结构体指针;

  4. 对引用这些结构体的函数,同步 set_function_prototype;

  5. 完成后输出"结构体声明"与"已修正的变量列表"。

```

使用小贴士

• 调试功能需命令行加 --unsafe 才能启用。

• 当 AI 出现"幻觉"数值时,强制使用 convert_number(text, size) 统一进制。

• 复杂计算(如解密常数)可让 AI 生成 Python 片段,再用 MCP 的调试接口跑脚本验证。

相关推荐
子燕若水1 个月前
加入淘宝联盟内容库,以便在B站等平台被推广
caoni
子燕若水2 个月前
BlenderFBXExporter 导出fbx被修改问题
caoni
子燕若水5 个月前
blender 超逼真角色daz 纹理材质 humanpro插件
caoni