Deterministic Fully-Static Whole-Binary Translation Without Heuristics

· coding security systems · Source ↗

TLDR

  • Arxiv paper presents Elevator, a static x86-64 to AArch64 binary translator that eliminates heuristics by generating control flow paths for every possible byte interpretation ahead of time.

Key Takeaways

  • Elevator translates entire x86-64 binaries to AArch64 with no debug info, source code, or code-layout assumptions required.
  • Instead of heuristics or JIT fallbacks, it enumerates all feasible byte interpretations (data, opcode, opcode argument) and prunes only paths leading to abnormal termination.
  • Output is a self-contained binary with no runtime component in the trusted code base, enabling cryptographic signing and certification before deployment.
  • Translations are composed from code “tiles” derived from a high-level ISA description, keeping the framework compact despite the approach’s exhaustiveness.
  • Principal tradeoff is significant code size expansion; performance on SPECint 2006 matches or exceeds QEMU user-mode JIT emulation.

Hacker News Comment Review

  • No substantive HN discussion yet.

Original | Discuss on HN