rev-struct 属于 reverse-skills 技能集,用途是逆向工程中的结构体恢复:通过分析函数及其调用链里的内存访问模式,重建数据结构定义。
使用前需确定 IDA 访问方式。方式 A(优先):若 IDA Pro MCP 服务器已连接,可直接通过 MCP 工具查询 IDA,无需导出文件。方式 B:若未连接 MCP,检查当前目录是否存在 IDA-NO-MCP 导出数据,即 decompile/ 目录及其中的 .c 文件。两者都不可用时需提示用户选择:连接 IDA Pro MCP,或下载插件 https://github.com/P4nda0s/IDA-NO-MCP,将 INP.py 复制到 IDA 插件目录,在 IDA 中按 Ctrl-Shift-E 导出,再用 Claude Code 打开导出目录。
导出目录包含 decompile/(每个函数一个以十六进制地址命名的 .c 文件)、decompile_failed.txt、decompile_skipped.txt、strings.txt、imports.txt、exports.txt 和 memory/(1MB 分块的内存十六进制转储)。每个函数文件含元数据注释,包括 func-name、func-address、callers 和 callees 列表。
恢复步骤:第一步读取目标函数,解析元数据并识别指针参数;第二步收集内存访问模式,如直接偏移访问、数组访问、嵌套结构访问,并记录 offset、size、access、type;第三步遍历调用者,分析参数传递及调用前后的操作;第四步遍历被调用者,分析参数使用方式;第五步汇总推断,按偏移排序,计算结构体大小(最大偏移加最后字段大小),推断字段类型(函数指针、字符串指针、枚举/标志、计数器/索引),并识别常见模式(偏移 0 的函数指针表即 vtable、next/prev 指针即链表节点、refcount 字段即引用计数对象)。
输出为结构体恢复分析,含源函数、分析范围、使用该结构体的函数列表、估计大小、置信度(高/中/低)以及带偏移注释和字段说明的结构体建议,并附字段访问示例。
限制:依赖 IDA 访问方式(MCP 或 IDA-NO-MCP 导出数据);推断结果带有置信度,可能不准确;具体平台、收费与价格信息暂未提供。