Skip to content

xref v0.0.1

Choose a tag to compare

@alex09x alex09x released this 01 Nov 09:29
· 46 commits to main since this release
53891fb

First tagged release of xref (v0.0.1) — fast cross-references, struct layout reconstruction, and structured pseudo-C decompilation of x86-64 ELF binaries.

Highlights

  • Structured Pseudo-C Decompiler (xref c / decomp):
    • O(B log B) control-flow structuring (if/else, multi-block while & do/while loops with break;/continue;, jump-table switch/case).
    • Interprocedural System V AMD64 live parameter recovery, caller stack arguments (arg7..), (rax, rdx) tuple returns, and indirect register-saved import calls.
    • Automatic stripped Rust runtime helper recognition (rust_unwrap_failed, rust_panic_bounds_check, rust_panic_fmt, rust_once_call, rust_alloc, rust_dealloc, etc.) and exact byte-length slicing of non-NUL &str & core::fmt::Arguments strings.
    • Expression simplification (lea linear combinations, saturating_add, fs:/gs: TLS).
  • Struct Layout Reconstruction (xref layout):
    • Recovers field offsets, byte widths, read/write/lea counts, array element strides, and 1-hop sub-struct callees (--reg, --callees).
  • Address-of Field Tracking (xref disp --lea):
    • Reports lea reg, [base+disp] field borrows alongside loads/stores and annotates the receiving callee (; -> <callee>).
  • Interactive In-Memory Web Workbench (xref web & docs/):
    • Zero-dependency local HTTP workbench (xref -b BIN web --addr 127.0.0.1:7700) serving interactive Pseudo-C, Struct Layout, Annotated ASM, Callers/Callees, and whole-binary search.