Rust·Latest release v0.1.0 · 2026-11-02

XRef Code

Zero-index cross-references, layout recovery, slicing and pseudo-C for x86-64 ELF binaries.

Latest releasev0.1.02026-11-02
Last committoday2026-11-02
crates.io0.1.00 downloads
Articles1on this blog
Recent releases
All 6 releases →
Recent commits
  • 4d53038 feat(release): prepare xref-code crates.io package, binstall, JSON-LD, and provenance 2026-11-02
  • 4ac500a docs: add published Zenodo v0.1.0 and concept DOIs 2026-11-02
  • c2bf310 Polish logo banner padding, CSP headers, and release path-leak check 2026-11-02
  • 667ee8e fix(ci): dispatch update-homebrew.yml explicitly after GITHUB_TOKEN release publish 2026-11-02

Status from GitHub and crates.io as of 2026-11-02.

The problem

Answering a question about a stripped binary usually starts with importing it into an analysis database. xref keeps no index: each command maps the ELF image, takes function ranges from the .eh_frame unwind tables (falling back to inferred spans), and decodes functions in parallel to answer one query.

Example uses

01. Cross-references

Find the code and data that refer to a string or an address with xref refs.

02. Struct layout recovery

Infer field offsets, sizes and strides used through a register with xref layout, optionally across direct callees.

03. Slicing and pseudo-C

Print a backward slice of the statements and guards reaching a call with xref slice, or structured pseudo-C for a function with xref c.

04. Comparing builds

Match a function across two stripped builds and diff its normalized pseudo-C with xref diff-c.

Where it fits

xref is a single command-line tool with no project database, written in safe Rust (unsafe code is forbidden in the crate). Types and field hints are reconstructed from machine-code uses, not from DWARF, so they complement an interactive disassembler rather than replace it.

Get started

brew tap alex09x/apps
brew install xref
xref -b ./your-binary stats

Prebuilt v0.1.0 archives exist for x86_64 Linux (glibc 2.34 or later) and Apple Silicon macOS; cargo install --git https://github.com/alex09x/xref --tag v0.1.0 --locked builds from source. The README records example runs and single-run timings measured with xref 0.0.5 on one stripped Rust binary.

Authoritative installation steps, architecture diagrams, and full configuration references are maintained in the repository:
Read the XRef Code README on GitHub →

Official website →

Recorded performance (xref 0.0.5 runs) →

Limitations

  • Input is limited to x86-64 ELF executables and shared objects; PE, Mach-O and AArch64 are out of scope.
  • The recorded examples and the end-to-end tests use Rust binaries; other source languages are not covered by published runs.
  • Without .eh_frame (for example after strip -R .eh_frame) function boundaries fall back to heuristics.
  • Signatures, types and field hints are conservative static reconstructions, not source types; instructions it does not model are left as inline assembly comments.
Cite this software · archived version v0.1.0

Cite this software

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

This record reflects the archived software version deposited on Zenodo for citation and reproducibility, which may differ from subsequent development releases.