No Bit Left Behind: Using Brute-Force Lifting to Achieve Fully Static Binary Recompilation
Prototype binary lifter brute-force lifts every byte offset of x86-64 binaries to LLVM IR, enabling fully static cross-ISA recompilation without runtime support.
The paper presents a fully static, whole-program binary lifting system that treats every byte offset as a potential branch target, constructing a superset control flow graph that conservatively contains all feasible control flows. Statically unresolvable computed branches are reduced to lookups in a dispatch table pointing to translated control flow paths, eliminating runtime translation machinery on the target machine. A prototype recompiles x86-64 binaries to LLVM IR with no code/data heuristics and achieves fully static cross-compilation to AArch64 using unmodified LLVM backends.
- Brute-force lifting treats every byte offset as potential branch target
- Superset CFG conservatively contains all feasible control flows
- No runtime translation support needed on target machine
- Prototype lifts x86-64 to LLVM IR; static AArch64 cross-compilation validated
From the original article
1 min read at arxiv.orgBinary recompilation is a technique for operating directly on executable code. It promises to automate two important tasks: retrofitting security mitigations onto legacy binaries, and migrating binaries across instruction set architectures (ISAs).
By Tianjiao Huang · arxiv.org
A short excerpt; the article and its images belong to the publisher. Summary, key facts and assessment above are AI-written from the article and can be wrong.