M

MCP逆向工程服务器

@rand-tech/pcm
3 Stars 624 次浏览 rand-tech 更新于 2026-08-23

用于逆向工程的MCP服务器,能够与IDA Pro交互以进行分解、反汇编和内存参与报告等分析任务。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "pcm": {
      "args": [
        "--directory",
        "path_to/pcm",
        "run",
        "server.py"
      ],
      "command": "uv"
    }
  }
}

服务介绍

pcm

PCM (MCP 但顺序相反),用于逆向工程的 MCP

特性

  • 分析
    • IDA
      • repl (IDAPython)
      • 反汇编
      • 反编译
      • 设置类型
      • ...
  • 内存
    • 交互报告
      reports
- `get_function_by_name(name)`: Get a function by its name.
- `get_function_by_address(address)`: Get a function by its address.
- `get_current_address()`: Get the address currently selected by the user.
- `get_current_function()`: Get the function currently selected by the user.
- `list_functions()`: List all functions in the database.
- `decompile_function(address)`: Decompile a function at the given address using Hex-Rays.
- `disassemble_function(address)`: Get assembly code (address: instruction; comment) for a function.
- `get_entrypoints()`: Get all entrypoints in the binary.
- `get_function_blocks(address)`: Get all basic blocks in a function.
- `get_function_cfg(address)`: Get control flow graph for a function.
- `get_xrefs_to(address)`: Get all cross references to the given address.
- `get_xrefs_from(address)`: Get all cross references from the given address.
- `set_decompiler_comment(address, comment)`: Set a comment for a given address in the function pseudocode.
- `set_disassembly_comment(address, comment)`: Set a comment for a given address in the function disassembly.
- `rename_local_variable(function_address, old_name, new_name)`: Rename a local variable in a function.
- `rename_function(function_address, new_name)`: Rename a function.
- `set_function_prototype(function_address, prototype)`: Set a function's prototype.
- `set_local_variable_type(function_address, variable_name, new_type)`: Set a local variable's type.
- `create_structure_type(name, members, is_union)`: Create a new structure type.
- `get_metadata()`: Get metadata about the current IDB.
- `repl_idapython(content)`: Run IDAPython code and return the results with stdout/stderr captured.
- `add_note(title, content, address, tags)`: Add a new analysis note for the current binary.
- `update_note(note_id, title, content, tags)`: Update an existing note.
- `get_notes(file_md5, address, tag)`: Get analysis notes for a binary.
- `delete_note(note_id)`: Delete an analysis note.

安装

先决条件:

  1. 克隆仓库
    git clone https://github.com/rand-tech/pcm
    
  2. pcm 添加到你的 mcp 配置中
    示例
    {
        "mcpServers": {
            "pcm": {
                "command": "uv",
                "args": [
                    "--directory",
                    "path_to/pcm",
                    "run",
                    "server.py"
                ]
            }
        }
    }
    
  3. 使用 MCP

相关项目

致谢
本项目基于 Duncan Ogilvie (@mrexodia) 的 IDA Pro MCP。感谢他

许可证
本项目使用 MIT 许可证 - 详情请参阅 LICENSE 文件。原始代码也使用 MIT 许可证。

相关 MCP 服务