module

Rubellite::Docs::B_ADVANCED_FEATURES::R2_FORENSICS

Binary Forensics & ABI Auditing via Radare2

To prevent subtle runtime segmentation faults caused by mismatched Ruby versions or missing exported symbols, Rubellite integrates directly with radare2 (r2).

Through Rubellite::Diagnostics::R2, developers can inspect shared libraries, disassemble exported functions, and verify ABI compatibility automatically.

Executive Summary & Key Topics

Topic Method / Anchor Description
Automated ABI & Symbol Auditing .topic_01_r2_auditing Using radare2 to verify Ruby binary exports and detect symbol collisions.
  • src/rubellite/diagnostics/r2.cr
  • examples/07_r2_binary_forensics.cr
  • src/rubellite_cli.cr

Class methods

topic_01_r2_auditing

Automated ABI & Symbol Auditing: Using radare2 to verify Ruby binary exports and detect symbol collisions.

Rubellite's doctor suite performs automated binary forensics:

Check Command Details
**Environment Audit** `rubellite doctor` Audits Ruby binary, r2 engine, and exported symbols
**ABI Compatibility** `r2.audit_environment` Confirms all required C-API entry points exist
**Disassembly** `r2.disassemble_symbol(sym)` Disassembles MIPS, x86_64, or ARM64 routines

Working Examples

require "rubellite"

report = Rubellite::Diagnostics::R2.audit_environment
puts "Ruby Binary Path: #{report.ruby_dll_path}"
puts "Total Symbols Found: #{report.total_symbols_found}"
puts "ABI Compatible: #{report.abi_compatible?}"

Common Pitfalls & Safety Caveats

  • Warning: Ensure radare2 (r2) is installed in PATH for detailed symbol disassembly output.

Frequently Asked Questions (FAQ)

  • Q: Can Rubellite run if radare2 is not installed? A: Yes, radare2 is utilized for forensics and diagnostics; core evaluation functions normally.
Source