PCM(MCP 的逆向版本),是一款专门用于逆向工程的 MCP 工具。它能帮助开发者对二进制文件进行深入分析,提供了丰富的功能,极大地提升逆向工程的效率。
若你想使用 PCM 进行逆向工程分析,可按以下步骤操作:
uv
。pcm
添加到你的 MCP 配置中。- `get_function_by_name(name)`: 通过名称获取函数。
- `get_function_by_address(address)`: 通过地址获取函数。
- `get_current_address()`: 获取当前用户选择的地址。
- `get_current_function()`: 获取当前用户选择的函数。
- `list_functions()`: 列出数据库中的所有函数。
- `decompile_function(address)`: 使用 Hex - Rays 对指定地址的函数进行反编译。
- `disassemble_function(address)`: 获取汇编代码(地址: 说明)对于指定地址的函数。
- `get_entrypoints()`: 获取二进制文件的所有入口点。
- `get_function_blocks(address)`: 获取指定地址函数中的所有基本块。
- `get_function_cfg(address)`: 获取指定地址函数的控制流图。
- `get_xrefs_to(address)`: 获取指向给定地址的所有交叉引用。
- `get_xrefs_from(address)`: 获取从给定地址出发的所有交叉引用。
- `set_decompiler_comment(address, comment)`: 在指定地址的反编译伪代码中设置评论。
- `set_disassembly_comment(address, comment)`: 在指定地址的汇编代码中设置评论。
- `rename_local_variable(function_address, old_name, new_name)`: 重命名指定地址函数中的局部变量。
- `rename_function(function_address, new_name)`: 重命名指定地址的函数。
- `set_function_prototype(function_address, prototype)`: 设置指定地址函数的原型。
- `set_local_variable_type(function_address, variable_name, new_type)`: 设置指定地址函数中局部变量的类型。
- `create_structure_type(name, members, is_union)`: 创建一个新的结构体类型。
- `get_metadata()`: 获取当前 IDB 的元数据。
- `repl_idapython(content)`: 运行 IDAPython 代码并捕获 stdout/stderr 的结果返回。
- `add_note(title, content, address, tags)`: 添加当前二进制文件的新的分析笔记。
- `update_note(note_id, title, content, tags)`: 更新现有的笔记。
- `get_notes(file_md5, address, tag)`: 获取指定条件下的分析笔记。
- `delete_note(note_id)`: 删除指定 ID 的笔记。
uv
。git clone https://github.com/rand-tech/pcm
pcm
添加到你的 MCP 配置中,示例如下:{
"mcpServers": {
"pcm": {
"command": "uv",
"args": [
"--directory",
"path_to/pcm",
"run",
"server.py"
]
}
}
}
此项目基于 IDA Pro MCP 由 Duncan Ogilvie (@mrexodia) 开发。在此表示感谢。
此项目在 MIT 许可证下,你可查看 LICENSE 文件了解详细信息。原始代码也使用 MIT 许可证。