module Cradare2

Defined in:

cradare2.cr
cradare2/address.cr
cradare2/analysis/memory_classifier.cr
cradare2/bridge/elf_bridge.cr
cradare2/client.cr
cradare2/crystal.cr
cradare2/dsl/analysis.cr
cradare2/dsl/comments.cr
cradare2/dsl/debugger.cr
cradare2/dsl/disasm.cr
cradare2/dsl/flags.cr
cradare2/dsl/memory.cr
cradare2/dsl/types.cr
cradare2/engine/godot.cr
cradare2/engine/godot/gdextension_inspector.cr
cradare2/engine/godot/helper.cr
cradare2/error.cr
cradare2/gdb/client.cr
cradare2/godot.cr
cradare2/lines/line_helper.cr
cradare2/lines/line_provider.cr
cradare2/lines/line_resolver.cr
cradare2/lines/source_location.cr
cradare2/lines/source_map.cr
cradare2/lines/source_reader.cr
cradare2/models/basic_block.cr
cradare2/models/binary_info.cr
cradare2/models/breakpoint.cr
cradare2/models/crash_diagnosis.cr
cradare2/models/flag.cr
cradare2/models/function.cr
cradare2/models/instruction.cr
cradare2/models/memory_map.cr
cradare2/models/module_info.cr
cradare2/models/process_info.cr
cradare2/models/register.cr
cradare2/models/section.cr
cradare2/models/security_info.cr
cradare2/models/stack_frame.cr
cradare2/models/string_item.cr
cradare2/models/symbol.cr
cradare2/models/telescope.cr
cradare2/models/thread.cr
cradare2/models/xref.cr
cradare2/options.cr
cradare2/platform/ps2/gif_dissector.cr
cradare2/platform/ps2/helper.cr
cradare2/platform/ps2/registers.cr
cradare2/plugin/command.cr
cradare2/plugin/commands/asm_command.cr
cradare2/plugin/commands/classes_command.cr
cradare2/plugin/commands/crash_command.cr
cradare2/plugin/commands/demangle_all_command.cr
cradare2/plugin/commands/demangle_command.cr
cradare2/plugin/commands/detect_command.cr
cradare2/plugin/commands/info_command.cr
cradare2/plugin/commands/inspect_command.cr
cradare2/plugin/commands/interleaved_command.cr
cradare2/plugin/commands/lines_command.cr
cradare2/plugin/commands/methods_command.cr
cradare2/plugin/commands/source_command.cr
cradare2/plugin/dispatcher.cr
cradare2/plugin/router.cr
cradare2/plugin/server.cr
cradare2/ps2.cr
cradare2/transport/http.cr
cradare2/transport/in_session.cr
cradare2/transport/mock.cr
cradare2/transport/process.cr
cradare2/transport/tcp.cr
cradare2/transport/transport.cr
cradare2/tui/explorer.cr
cradare2/util/cli_formatter.cr
cradare2/util/demangler.cr
cradare2/util/doctor.cr
cradare2/util/locator.cr
cradare2/util/script_builder.cr
cradare2/version.cr

Constant Summary

VERSION = "0.2.30"

Class Method Summary

Class Method Detail

def self.attach(pid : Int32 | Int64, flags : Array(String) = [] of String, r2_path : String | Nil = nil, timeout : Time::Span | Nil = nil) : Client #

Attaches radare2 in debug mode to a running process by PID.


[View source]
def self.attach(pid : Int32 | Int64, flags : Array(String) = [] of String, r2_path : String | Nil = nil, timeout : Time::Span | Nil = nil, &block : Client -> U) : U forall U #

Attaches radare2 in debug mode to a running process by PID and yields client to block.


[View source]
def self.doctor : Util::Doctor #

Runs toolchain and environment diagnostics.


[View source]
def self.elf_bridge(client : Client, binary_path : String = "binary.elf", &block : Bridge::ElfBridge -> Nil) : Tuple(Array(Bridge::DisassembledSymbol), Bridge::ElfTelemetry) #

Tier 2: Declarative Builder DSL


[View source]
def self.gdb(host : String = "127.0.0.1", port : Int32 = 1234, arch : String | Nil = nil, bits : Int32 | Nil = nil, cpu : String | Nil = nil, timeout : Time::Span | Nil = nil, &block : Client -> U) : U forall U #

Connects radare2 to a remote GDB stub (e.g. PCSX2, QEMU, gdbserver).


[View source]
def self.mock(default_handler = nil) : Client #

Creates a client backed by a MockTransport for testing and offline development.


[View source]
def self.mock(default_handler = nil, &block : Client -> U) : U forall U #

Creates a mock client and yields it to the block.


[View source]
def self.open(options : Options) : Client #

Opens a radare2 session using an Options struct.


[View source]
def self.open(options : Options, &block : Client -> U) : U forall U #

Opens a radare2 session with Options and yields it to a block, ensuring cleanup.


[View source]
def self.open(target : String | Nil = nil, flags : Array(String) = [] of String, debug : Bool = false, write : Bool = false, r2_path : String | Nil = nil, timeout : Time::Span | Nil = nil) : Client #

Opens a radare2 session configured with individual parameters.

Target options:

  • nil / "" / "#!pipe" : Connects to current radare2 in-session pipe (when run via #!pipe)
  • "http://..." or "https://..." : Connects to remote radare2 HTTP server
  • "tcp://..." : Connects to remote radare2 TCP socket server
  • File path or URI (e.g. "game.dll", "malloc://1024") : Spawns a local radare2 -q0 process

[View source]
def self.open(target : String | Nil = nil, flags : Array(String) = [] of String, debug : Bool = false, write : Bool = false, r2_path : String | Nil = nil, timeout : Time::Span | Nil = nil, &block : Client -> U) : U forall U #

Opens a radare2 session and yields it to the block, ensuring the session is automatically closed when the block exits.


[View source]
def self.open_bytes(bytes : Bytes, arch : String | Nil = nil, bits : Int32 | Nil = nil, cpu : String | Nil = nil, flags : Array(String) = [] of String, &block : Client -> U) : U forall U #

Analyzes an in-memory byte slice using radare2, automatically handling temporary file lifecycle.


[View source]