Skip to main content
Glama
drvcvt
by drvcvt

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
RIZIN_PATHNoPath to the Rizin executable.rizin
ALLOWED_DIRSNoComma-separated directories from which binaries can be opened. Unrestricted if unset.
R2_ANALYSIS_LEVELNoAnalysis command run after opening a binary.aaa
R2_COMMAND_TIMEOUTNoTimeout in ms for individual r2 commands.30000
RIZIN_COMMAND_TIMEOUTNoTimeout in ms for individual Rizin commands.30000

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
analyze_binaryB

Open and analyze a binary file, returning architecture, platform, entry point, and binary metadata as JSON.

list_functionsA

List all functions identified by radare2 analysis with their names, addresses, sizes, and call conventions.

disassembleB

Disassemble instructions at the given address or function, returning assembly with opcodes and metadata.

decompile_functionA

Decompile a function to pseudo-C representation using the available decompiler backend.

list_stringsC

Extract printable strings from the binary with their addresses, sections, and lengths.

get_xrefsA

Get all cross-references to or from a specific address, identifying callers, callees, and data references.

list_importsA

List all imported functions and symbols with their addresses and library origins.

list_exportsB

List all exported functions and symbols with their addresses and types.

list_sectionsA

List all sections and segments in the binary with addresses, sizes, and permissions.

read_bytesB

Read raw bytes from a specific address in the binary, returned as hex string or formatted hexdump.

rename_functionA

Rename a function at the given address to a new user-defined name.

add_commentB

Add or update a comment at a specific address in the binary.

get_function_infoA

Get detailed metadata for a single function including cyclomatic complexity, stack frame, args, locals, and basic block count.

list_variablesB

List all local variables, stack variables, and arguments of a function.

write_bytesC

Patch bytes at a specific address in the binary using hex bytes or assembly instructions.

find_crypto_constantsA

Detect cryptographic constants (AES S-boxes, CRC tables, RSA constants, SHA magic numbers) in the binary.

list_resourcesA

List PE resources (icons, manifests, version info, embedded data) from the binary.

list_relocationsB

List all relocations in the binary with their addresses, types, and target symbols.

list_classesA

List classes and their methods from C++, Objective-C, Java, or Swift binaries.

triage_binaryA

Perform comprehensive one-shot binary triage: file info, sections, imports, exports, strings, functions, entry points, and security features in a single call.

analyze_function_deepA

Deep single-function analysis: disassembly, decompilation, variables, xrefs, callers, callees, strings, and complexity metrics in one call.

find_constraintsA

Extract comparisons, conditional branches, string references, and success/fail paths from a function — ideal for crackme and CTF challenge analysis.

trace_executionB

Trace execution using ESIL emulation, logging comparisons, branches, memory access, and register changes at each step.

find_vulnerabilitiesC

Scan a binary for common vulnerability patterns: dangerous API usage, buffer overflows, format strings, integer overflows, and missing bounds checks.

solve_crackmeA

Automatically attempt to solve a crackme by extracting constraints, identifying success/fail paths, and brute-forcing input character by character using ESIL emulation.

extract_iocsB

Extract Indicators of Compromise from a binary: IP addresses, URLs, domains, file paths, registry keys, email addresses, crypto wallets, and embedded payloads.

exploit_hunterB

Exploit development assistant: analyze security mitigations, find dangerous functions, collect ROP gadgets, map input sources, and suggest exploitation strategies.

diff_binariesA

Compare two binary versions: find added, removed, and changed functions, imports, strings, and show instruction-level diffs for modified functions.

file_format_analyzerA

Analyze binary file format structures: identify format via magic bytes, parse containers (RIFF/WebP, PNG, ZIP, JPEG, PDF), and show chunk hierarchy with offsets, sizes, and metadata.

esil_initA

Initialize the ESIL virtual machine with stack memory and return a persistent session_id for subsequent ESIL tool calls. The session preserves ESIL state (registers, memory, PC) across calls.

esil_destroyA

Destroy a persistent ESIL session and release its resources. Use this when you are done with an emulation session.

esil_list_sessionsA

List all active persistent ESIL sessions with their session IDs, binary paths, and creation times.

esil_stepB

Execute one or more instruction steps in the ESIL emulator and return the updated register state. If session_id is provided, uses a persistent session; otherwise creates a fresh session.

esil_runA

Run ESIL emulation until a target address is reached, a breakpoint is hit, or maximum steps are exceeded. If session_id is provided, uses a persistent session; otherwise creates a fresh session.

esil_get_registersA

Read all register values or a specific register from the ESIL virtual machine state. If session_id is provided, uses a persistent session; otherwise creates a fresh session.

esil_set_registerA

Set a register value in the ESIL virtual machine. If session_id is provided, uses a persistent session; otherwise creates a fresh session.

esil_get_memoryA

Read memory contents from the ESIL emulated memory space at a given address. If session_id is provided, uses a persistent session; otherwise creates a fresh session.

esil_set_memoryA

Write data to the ESIL emulated memory space at a given address. If session_id is provided, uses a persistent session; otherwise creates a fresh session.

esil_expressionB

Evaluate a raw ESIL expression string and return the result. If session_id is provided, uses a persistent session; otherwise creates a fresh session.

rzil_initA

Initialize the Rizin RzIL virtual machine and return a persistent session_id for subsequent RzIL tool calls. RzIL uses typed bitvectors (BAP Core Theory) for superior emulation fidelity compared to ESIL.

rzil_destroyA

Destroy a persistent RzIL session and release its resources. Use this when you are done with a Rizin emulation session.

rzil_list_sessionsA

List all active persistent RzIL emulation sessions with their session IDs, binary paths, and creation times.

rzil_stepA

Execute one or more instruction steps in the Rizin RzIL emulator and return VM change events and updated register state. Requires a persistent session from rzil_init.

rzil_runB

Run RzIL emulation until a target address is reached or maximum steps are exceeded. Uses aezsu for address targets. Requires a persistent session from rzil_init.

rzil_get_registersA

Read all register values or a specific register from the Rizin RzIL VM. Returns typed values including individual CPU flags (zf, cf, sf, etc.) as booleans — superior to ESIL which packs flags into a single register.

rzil_set_registerA

Set a register value in the Rizin RzIL virtual machine. Requires a persistent session from rzil_init.

rzil_get_memoryA

Read memory contents from the Rizin RzIL emulated memory space at a given address. Requires a persistent session from rzil_init.

rzil_set_memoryA

Write data to the Rizin RzIL emulated memory space at a given address. Requires a persistent session from rzil_init.

rzil_trace_stepA

Step the RzIL emulator and return detailed VM change events showing exactly which variables and memory locations were read or written. Uses aezse which outputs typed events like pc_write(old, new) and var_write(name, old, new). Superior to ESIL tracing because events are typed.

rzil_il_astA

Get the RzIL intermediate language AST for instructions at a given address. Each instruction is lifted to a typed RzIL expression tree with bitvector operations. This is unique to Rizin — r2 ESIL only has flat string expressions.

rz_typesA

List type definitions from the binary using Rizin separate typed JSON endpoints (tsj/tej/ttj/tuj). Returns structs, enums, typedefs, and unions with full member details. Superior to r2 which returns all types in a single flat list.

rz_symbolsB

List all symbols from the binary using Rizin. Returns enriched data including is_imported flag, library origin, flagname, and realname — more detail than r2 isj.

rz_libsA

List all linked libraries (DLLs/shared objects) from the binary using Rizin ilj. Returns a clean JSON array of library names.

rz_entrypointsA

List all entry points of the binary (program entry, TLS callbacks, etc.) using Rizin iej. Returns virtual address, physical address, and entry type.

rz_calling_conventionsA

List all calling conventions available for the binary architecture using Rizin afcl. Useful for understanding function signatures and ABI details.

shellcode_analyzeA

Analyze raw shellcode bytes by loading them as a memory blob, disassembling, and identifying syscalls and patterns.

disassemble_bytesA

Disassemble raw bytes into assembly instructions without loading a full binary.

search_bytesA

Search for a hex byte pattern across the binary and return all matching addresses.

search_stringC

Search for a string pattern in the binary and return all matching locations.

search_rop_gadgetsA

Search for ROP gadgets in the binary matching optional instruction constraints.

get_callgraphC

Get the call graph for a function showing all callers and callees as a structured graph.

get_control_flow_graphB

Get the control flow graph of a function as a JSON structure with basic blocks and edges.

r2_commandA

Execute a radare2 command directly and return the raw output. Only commands starting with these prefixes are allowed: a (analysis: aa, aaa, afl, af, ag, ax), p (print: pd, px, pf, pi), i (info: ij, iS, iE, ii, iz), s (seek), f (flags), / (search: /x, /R), e (eval/config), af (analysis functions), ag (analysis graphs), ax (analysis xrefs), CC (comments), dr (debug registers), om (open file map). Blocked characters: ; | > < ` ! ~ { } ( ) $ #!.

get_entropyB

Calculate entropy for the binary or specific sections to detect packed or encrypted regions.

debug_launchA

Launch a binary under the radare2 debugger and return a persistent session ID for subsequent debug commands.

debug_attachA

Attach the radare2 debugger to a running process by PID and return a persistent session ID.

debug_detachA

Detach from the debugged process, leaving it running, and close the debug session.

debug_set_breakpointC

Set a software breakpoint at the specified address in the debugged process.

debug_remove_breakpointA

Remove a breakpoint at the specified address or remove all breakpoints.

debug_list_breakpointsA

List all active breakpoints in the debug session with their addresses and status.

debug_continueA

Continue execution of the debugged process until a breakpoint is hit, an address is reached, or the process exits.

debug_stepA

Single-step the debugged process (step into or step over) and return the updated register state.

debug_get_registersA

Read all register values or a specific register from the debugged process.

debug_set_registerB

Set a register value in the debugged process.

debug_get_mapsA

List memory maps of the debugged process with addresses, sizes, and permissions.

debug_get_backtraceB

Get the call stack backtrace of the debugged process.

debug_get_threadsA

List all threads in the debugged process with their status.

debug_get_infoA

Get debug session information including PID, status, executable path, and command line.

debug_read_memoryA

Read memory from the debugged process at a specific address, returned as hex string or formatted hexdump.

debug_write_memoryC

Write memory in the debugged process at a specific address using hex bytes or a string.

debug_killA

Kill the debugged process and close the debug session.

debug_list_sessionsA

List all active debug sessions with their session IDs, targets, and PIDs.

analyze_typesA

List type definitions from binary analysis including structs, enums, and typedefs.

binary_headersB

Show PE/ELF/Mach-O headers with detailed field information.

hash_binaryA

Compute cryptographic hashes of the binary or a specific address range.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.1/5.0

Scored across 85 tools

Disambiguation2/5

Many tools overlap in scope: analyze_types and rz_types both list type definitions, rz_symbols overlaps list_imports/list_exports, and the ESIL/RzIL families expose nearly identical operations. Descriptions help differentiate contexts, but the parallel emulation backends and broad composite tools like triage_binary and exploit_hunter create real selection ambiguity.

Naming Consistency3/5

Most tools use snake_case and the debug_*, esil_*, and rzil_* families are internally consistent. However, the overall set mixes verb_noun patterns like analyze_binary and list_functions with noun_verb names like shellcode_analyze and file_format_analyzer, plus noun-only names like binary_headers, exploit_hunter, and r2_command.

Tool Count1/5

85 tools is far beyond the 16-25 'heavy' range and well over the 50+ threshold for an extreme mismatch. The count is inflated by parallel ESIL/RzIL tool families, redundant symbol/type listings, and multiple one-shot composite analyzers that could be consolidated.

Completeness4/5

The server covers an exceptionally broad reverse-engineering workflow: loading/analysis, disassembly, decompilation, patching, searching, debugging, emulation, diffing, and vulnerability scanning. Minor gaps exist around lifecycle management, such as no explicit close/release of the analyzed binary, no save/export of patched output, and no comment removal, but agents can usually work around these.

Maintenance

ActivityInactive
ResponsivenessNo issues