Skip to content
Sagan

Paper

Deterministic Fully-Static Whole-Binary Translation without Heuristics

Unreadunread

AI summary

The authors built Elevator, a system that translates entire x86-64 binaries to AArch64 (ARM) architecture purely statically — no runtime fallback, no debug info, no assumptions about where code vs. data live. The core trick: instead of guessing whether each byte is data or code, Elevator generates separate translation paths for every possible interpretation and only prunes paths that lead to crashes. This produces huge binaries (lots of redundant translations) but guarantees the output is deterministic and can be tested, validated, or cryptographically signed before deployment — unlike JIT compilers or emulators that generate code at runtime.

Main takeaways:

  • First fully-static whole-binary translator that handles x86-64 to AArch64 without heuristics or runtime components
  • Considers all possible interpretations of each byte (data, opcode, or opcode argument) and generates translations for all feasible ones
  • Output is complete, self-contained, and deterministic — no JIT compiler in the trusted code base
  • Major cost is code size explosion due to multiple translation paths
  • Achieves performance competitive with QEMU's JIT emulation on SPECint 2006 benchmarks