Tools

March 2, 2026 ยท View on GitHub

Auto-generated from src/tool_registry.rs. Do not edit by hand. Regenerate with: cargo run --bin gen_tools_doc -- docs/TOOLS.md.

Discovery Workflow

  • tools/list returns the full tool set (currently 83 tools)
  • tool_catalog(query=...) searches all tools by intent
  • tool_help(name=...) returns full documentation and schema
  • Call close_idb when done to release locks; in multi-client servers coordinate before closing (HTTP/SSE requires close_token from open_idb)

Note: open_idb accepts .i64/.idb or raw binaries (Mach-O/ELF/PE). Raw binaries are auto-analyzed and saved as a .i64 alongside the input. If a sibling .dSYM exists and no .i64 is present, its DWARF debug info is loaded automatically.

Core (core)

Database open/close and discovery tools

ToolDescription
close_idbClose the current database (release locks)
dsc_add_dylibLoad an additional dylib into an open DSC database
get_analysis_statusReport auto-analysis status
get_database_infoGet database metadata and summary
get_task_statusCheck status of a background task (e.g. DSC loading)
load_debug_infoLoad external debug info (e.g., dSYM/DWARF)
open_dscOpen a dyld_shared_cache and load a single module
open_idbOpen an IDA database or raw binary
open_sbpfOpen a Solana sBPF program (.so) for analysis
tool_catalogDiscover available tools by query or category
tool_helpGet full documentation for a tool

Functions (functions)

List, search, and resolve functions

ToolDescription
batch_lookup_functionsBatch lookup multiple functions by name
get_function_at_addressFind the function containing an address
get_function_by_nameFind function address by name
get_function_prototypeGet the type/prototype declaration of a function
list_functionsList functions with pagination and filtering
run_auto_analysisRun auto-analysis and wait for completion

Disassembly (disassembly)

Disassemble code at addresses

ToolDescription
disassembleDisassemble instructions at an address
disassemble_functionDisassemble a function by name
disassemble_function_atDisassemble the function containing an address

Decompile (decompile)

Decompile functions to pseudocode (requires Hex-Rays)

ToolDescription
batch_decompileDecompile multiple functions at once
decompile_functionDecompile function to C pseudocode
decompile_structuredDecompile function to structured AST (ctree JSON)
diff_pseudocodeDiff two functions' decompiled pseudocode line by line
get_pseudocode_atGet pseudocode for specific address/range

Xrefs (xrefs)

Cross-reference analysis (xrefs to/from)

ToolDescription
build_xref_matrixBuild xref matrix between addresses
get_xrefs_fromFind all references FROM an address
get_xrefs_toFind all references TO an address
get_xrefs_to_stringFind xrefs to strings matching a query
get_xrefs_to_struct_fieldXrefs to a struct field

Control Flow (control_flow)

Basic blocks, call graphs, control flow

ToolDescription
build_callgraphBuild call graph from a function
find_control_flow_pathsFind control-flow paths between two addresses
get_basic_blocksGet basic blocks of a function
get_calleesFind all functions called by a function
get_callersFind all callers of a function

Memory (memory)

Read bytes, strings, and data

ToolDescription
convert_numberConvert integers between bases
read_byteRead 8-bit value
read_bytesRead raw bytes from an address
read_dwordRead 32-bit value
read_global_variableRead global value by name or address
read_qwordRead 64-bit value
read_stringRead string at an address
read_wordRead 16-bit value
scan_memory_tableScan a memory table by reading entries at stride intervals

Search for bytes, strings, patterns

ToolDescription
list_stringsList all strings in the database
search_bytesSearch for byte pattern
search_instruction_operandsFind instructions by operand substring
search_instructionsFind instruction sequences by mnemonic
search_pseudocodeSearch decompiled pseudocode for a text pattern
search_textSearch for text or immediate values

Metadata (metadata)

Database info, segments, imports, exports

ToolDescription
export_functionsExport functions (JSON)
get_address_infoResolve address to segment/function/symbol
list_entry_pointsList entry points
list_exportsList exported functions
list_globalsList global variables
list_importsList imported functions
list_segmentsList all segments

Types (types)

Types, structs, and stack variable info

ToolDescription
apply_typeApply a type to an address or stack variable
create_enumCreate an enum type from a C declaration
create_stack_variableDeclare a stack variable
declare_c_typeDeclare a type in the local type library
delete_stack_variableDelete a stack variable
get_stack_frameGet stack frame info
get_struct_infoGet struct info by name or ordinal
infer_typeInfer/guess type at an address
list_enumsList all enum types in the database
list_local_typesList local types
list_structsList structs with pagination
read_struct_at_addressRead a struct instance at an address
search_structsSearch structs by name

Editing (editing)

Patching, renaming, and comment editing

ToolDescription
batch_renameRename multiple symbols at once
patch_assemblyPatch instructions with assembly text
patch_bytesPatch bytes at an address
rename_local_variableRename a local variable in decompiled pseudocode
rename_stack_variableRename a stack frame variable in a function
rename_symbolRename symbols
set_commentSet comments at an address
set_decompiler_commentSet a comment in decompiled pseudocode
set_function_commentSet a function-level comment (visible at function entry)
set_function_prototypeApply a C prototype declaration to a function
set_local_variable_typeSet the type of a local variable in decompiled pseudocode
set_stack_variable_typeSet the type of a stack frame variable

Scripting (scripting)

Execute Python scripts via IDAPython

ToolDescription
run_scriptExecute Python code via IDAPython

Notes

  • Many tools accept a single value or array (e.g., "0x1000" or ["0x1000", "0x2000"])
  • String inputs may be comma-separated: "0x1000, 0x2000"
  • Addresses accept hex (0x1000) or decimal (4096)
  • Raw binaries are auto-analyzed on first open; .i64 is saved alongside the input