Deterministic Fully-Static Whole-Binary Translation without Heuristics
Hongyu Chen, James McGowan, Michael Franz

TL;DR
Elevator is a deterministic, static binary translator that converts x86-64 executables to AArch64 without heuristics, enabling reliable testing and validation with complete control over the translated code.
Contribution
It introduces a novel approach that considers all byte interpretations simultaneously, producing complete, self-contained translations without runtime fallback or heuristics.
Findings
Successfully translated entire SPECint 2006 binaries.
Achieves performance comparable or better than QEMU's JIT.
Produces deterministic, self-contained binaries with no runtime component.
Abstract
We present Elevator, the first binary translator that statically translates entire x86-64 executables to AArch64 without debug information, source code, or assumptions about code layout. Unlike existing systems, which rely on heuristics or runtime fallbacks to handle code-versus-data decoding errors, Elevator considers all possible interpretations of every byte and produces a separate translation for each feasible one ahead of time. Any byte may be interpreted as data, an opcode, or an opcode argument; we generate separate control flow paths for all interpretations, pruning only those leading to abnormal termination. Translations are built by composing code "tiles" automatically derived from a high-level description of the source ISA, yielding a nimble translation framework. The approach is deterministic and produces complete, self-contained binaries with no runtime component in the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
