Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/mrexodia/ida-pro-mcp/llms.txt

Use this file to discover all available pages before exploring further.

Memory tools provide direct access to the IDB’s virtual address space. You can read raw bytes or typed integers at any address, decode null-terminated strings, retrieve the compile-time value of global variables by name or address, and write bytes or integers back — including support for endian selection and all standard integer widths.

get_bytes

Read raw bytes from one or more addresses and return them as space-separated hex values.
regions
MemoryRead | MemoryRead[]
required
A single read request or a list of them.
Returns BytesReadResult[]
{
  "addr": "0x401000",
  "size": 8
}

get_int

Read a typed integer value from memory. Supports all standard widths and both byte orders.
queries
IntRead | IntRead[]
required
Returns IntReadResult[]
{
  "addr": "0x404020",
  "ty": "u32"
}

get_string

Read a null-terminated string from one or more addresses.
addrs
string | string[]
required
One or more addresses or symbol names to read strings from.
Returns StringReadResult[]
Read strings at two addresses
["0x402000", "0x402040"]

get_global_value

Read the compile-time value of a global variable by address or symbol name. The format of the returned value adapts to the variable’s type: integers are returned as hex, arrays of char as quoted strings, and larger blobs as hex byte sequences.
queries
string | string[]
required
Global variable addresses (hex or decimal) or symbol names.
Returns GlobalValueResult[]
["g_version", "g_config_flags"]
get_global_value automatically detects whether the input looks like an address or a symbol name. Address-like strings (hex or numeric) are tried as addresses first; everything else is resolved as a name.

patch

Write raw bytes to one or more addresses. The data field is a plain hex string (no spaces required, though spaces are accepted in some contexts — use a contiguous hex string to be safe).
patches
MemoryPatch | MemoryPatch[]
required
Returns PatchResult[]
patch operates directly on the IDB. There is no automatic undo. Use IDA’s Edit → Patch program → Restore original byte to revert individual bytes if needed.
Overwrite four bytes with NOPs
{
  "addr": "0x401045",
  "data": "90909090"
}
For assembly-level patching, see patch_asm in the Modification tools.

put_int

Write a typed integer value to one or more addresses. Values are expressed as strings to support hex input and negatives for signed types.
items
IntWrite | IntWrite[]
required
Returns IntWriteResult[]
{
  "addr": "0x404020",
  "ty": "u32",
  "value": "0xDEADBEEF"
}

Build docs developers (and LLMs) love