PCM

Un servidor para tareas de ingeniería inversa que utiliza el kit de herramientas pcm. Requiere un clon local del repositorio pcm.

Documentación

pcm

PCM (MCP pero invertido), MCP para ingeniería inversa.

Características

  • Análisis
    • IDA
      • repl (IDAPython)
      • desensamblado
      • descompilación
      • establecer tipos
      • ...
  • Memoria
    • Informes de compromiso reports
Lista completa de características
- `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.

Instalaciones

Requisitos previos:

  1. Clona el repositorio
    git clone https://github.com/rand-tech/pcm
    
  2. Agrega pcm a tu configuración de mcp ejemplo
    {
        "mcpServers": {
            "pcm": {
                "command": "uv",
                "args": [
                    "--directory",
                    "path_to/pcm",
                    "run",
                    "server.py"
                ]
            }
        }
    }
    
  3. Usa el MCP

Proyectos relacionados:

Atribución: Este proyecto se basa en IDA Pro MCP de Duncan Ogilvie (@mrexodia). Gracias

Licencia: Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles. El código original también está licenciado bajo la Licencia MIT.