Repository navigation
XRef Code v0.1.0
XRef Code v0.1.0
Zero-index x86-64 ELF cross-references, .eh_frame function discovery, backward program slicing, struct displacement recovery, and goto-free structured pseudo-C — written in pure safe Rust (#![forbid(unsafe_code)]).
- Website & Recorded Workbench: https://xrefcode.com
- Zenodo Archival Record (
v0.1.0): https://doi.org/10.5281/zenodo.23878790 (concept DOI for all versions: https://doi.org/10.5281/zenodo.23878789) - Documentation & CLI Reference (
v0.1.0):README.mdatv0.1.0
Install
Homebrew (macOS Apple Silicon & Linux x86_64)
brew tap alex09x/apps
brew install xrefCargo (rustc 1.88+)
cargo install --git https://github.com/alex09x/xref --tag v0.1.0 --lockedPrebuilt Binaries
| Platform | Archive | SHA-256 |
|---|---|---|
Linux x86_64 (glibc >= 2.34) |
xref-v0.1.0-x86_64-unknown-linux-gnu.tar.gz |
30a6ac3303bfe86e4f23de10b5382bd56fb65df605c3e4cbced495e15e9d77de |
macOS Apple Silicon (arm64) |
xref-v0.1.0-aarch64-apple-darwin.tar.gz |
9652793f0ee814c9dc212c54739b0e1b6bfc1f9ab30ef6c3fe4af65a805858b0 |
Citation
- Alexander Panasenko (2026). XRef Code — Ultra Blazing Fast x86-64 ELF Cross-References & Pseudo-C Decompiler (v0.1.0). Zenodo. https://doi.org/10.5281/zenodo.23878790 (concept DOI: https://doi.org/10.5281/zenodo.23878789)
Highlights in v0.1.0
- Zero-index
.eh_framediscovery & parallel queries (stats,sym,func,refs,istr,imm,disp,callers,calls,args,find,path,tree,asm,error,variant,arm,src,where,files): mapsx86-64ELF images directly in memory, extracts function ranges from.eh_frameunwind records (with heuristic span fallback), and scans functions across CPU cores viarayonwithout upfront project database files. Recorded single-run wall-clock times fromxref 0.0.5on self-hostedxref.stripped(68aa57b,1.96 MB,AMD Ryzen 9 9950X, warm page cache) are documented inREADME.md#recorded-performance. - Goto-free structured typed pseudo-C (
c/decomp,--fields): liftsx86-64machine code via SSA lifting, dead-code elimination, condition folding, 1-operand wideningmul/imul/div/idiv, multi-precisionadc/sbb, stripped Rust panic and(ptr, len)&strrecognition, and structuredif/else/while/do-while/switchregions (0gotos across the 7 recorded workbench functions). - Static struct displacement & stride recovery (
layout,disp --lea,--stride): aggregates non-stack memory displacements, access widths, read/write/leacounts, SIB array strides, and 1-hop callee pointer forwarding per argument register. - Backward program slicing, cross-build diffing & modular export (
slice,match/diff,diff-c,dump): isolates balanced statements and control guards reaching a target call/address/string, matches shifted functions across stripped builds, diffs normalized pseudo-C, and exports modular.cfiles grouped by recovered Rust panic source paths. - Scope & Limitations:
x86-64ELF executables and shared objects only (PE,Mach-O, andAArch64are out of scope; end-to-end tests intests/fixture.rsand recorded runs indocs/recorded-data.jsatv0.1.0cover Rust binaries).