module Rubellite::Docs::B_ADVANCED_FEATURES::R2_FORENSICS

Overview

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.

Related Guides & Source References

Defined in:

rubellite/docs/b_advanced_features/r2_forensics.cr

Class Method Summary

Class Method Detail

def self.topic_01_r2_auditing : Nil #

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.

[View source]