Jadwal Sholat

Memuat jadwal sholatโ€ฆ

Ilmu Komputer & AI editorial

Open AccessOA2026

No Bit Left Behind: Using Brute-Force Lifting to Achieve Fully Static Binary Recompilation

A fully static approach to binary lifting that treats every byte as a potential branch target, enabling reliable cross-ISA translation without runtime support.
Tianjiao Huang; Po-An Chen; Nick Baron; Michael Franzยท 2026ยท DOI 10.48550/arXiv.2609.16423

The core problem

Binary recompilation is a technique for operating directly on executable code, promising to automate retrofitting security mitigations onto legacy binaries and migrating binaries across instruction set architectures (ISAs). However, no fully automated system exists that can reliably lift arbitrary binary executables to a compiler intermediate representation (IR) such as LLVM IR, or fully statically and reliably translate non-trivial binaries from one ISA to another. The core problem is that recovering a program's control flow graph (CFG) statically is impossible in general: computed branches can jump to targets that cannot be determined without actually running the program. Existing systems resort to runtime fallback mechanisms, requiring a significant portion of the binary translation machinery to accompany the translated program on the target machine. This article presents a fully static, whole-program binary lifting system requiring no runtime translation support on the target. Rather than attempting to distinguish code from data, the authors treat every byte offset as a potential branch target and lift the entire binary in a brute-force manner, constructing a superset CFG that

Innovation

The authors implemented a prototype binary recompiler from x86-64 binaries to LLVM IR, requiring no code/data heuristics. They validated it with a fully static cross-compilation to AArch64, achieved by reusing existing LLVM backends with no modification. The evaluation demonstrates that the system can lift arbitrary binary executables to LLVM IR and perform cross-ISA translation without runtime support. The brute-force lifting approach successfully constructs a superset CFG that conservatively contains all feasible control flows, and the dispatch table mechanism effectively handles statically unresolvable computed branches. The prototype shows that fully static binary recompilation is feasible, eliminating the need for runtime translation machinery on the target machine. This represents a significant advancement over existing systems that resort to runtime fallback mechanisms. The results indicate that the approach can reliably translate non-trivial binary executables from one ISA to another, fully statically.
Binary recompilation is a technique for operating directly on executable code, promising to automate retrofitting security mitigations onto legacy binaries and migrating binaries across instruction set architectures (ISAs). However, no fully automated system exists that can reliably lift arbitrary binary executables to a compiler intermediate representation (IR) such as LLVM IR, or fully statically and reliably translate non-trivial binaries from one ISA to another. The core problem is that recovering a program's control flow graph (CFG) statically is impossible in general: computed branches can jump to targets that cannot be determined without actually running the program. Existing systems resort to runtime fallback mechanisms, requiring a significant portion of the binary translation machinery to accompany the translated program on the target machine. This article presents a fully static, whole-program binary lifting system requiring no runtime translation support on the target. Rather than attempting to distinguish code from data, the authors treat every byte offset as a potential branch target and lift the entire binary in a brute-force manner, constructing a superset CFG that conservatively contains all feasible control flows. Statically unresolvable computed branches are thereby reduced to lookups in a dispatch table that points to the corresponding translated control flow path.

The proposed approach is a fully static binary lifting system that avoids runtime translation support. The key insight is to treat every byte offset in the binary as a potential branch target, rather than attempting to distinguish code from data. This brute-force lifting constructs a superset control flow graph (CFG) that conservatively contains all feasible control flows. For statically unresolvable computed branches, the system reduces them to lookups in a dispatch table that points to the corresponding translated control flow path. The authors implemented a prototype binary recompiler from x86-64 binaries to LLVM IR, requiring no code/data heuristics. The lifting process can be formalized as follows: for a binary with byte offsets , the superset CFG is constructed where represents potential instruction start addresses, and represents possible control flow edges. Each byte offset is considered a potential branch target, and the lifting function

translates the bytes starting at into LLVM IR instructions. The dispatch table
maps each offset to its corresponding translated code block. The overall architecture is illustrated in the following Mermaid diagram:

Why it matters

The brute-force lifting approach addresses the fundamental challenge of static CFG recovery by conservatively treating every byte offset as a potential branch target. This eliminates the need for code/data heuristics and runtime fallback mechanisms, enabling fully static binary recompilation. The construction of a superset CFG ensures that all feasible control flows are captured, and the dispatch table provides an efficient mechanism for handling computed branches. The successful cross-compilation to AArch64 demonstrates the practicality of the approach and its compatibility with existing LLVM backends. However, the brute-force nature may introduce overhead in terms of code size and translation time, as every byte offset is considered a potential instruction start. Future work could explore optimizations to reduce this overhead while maintaining the conservative guarantee. The approach has significant implications for security mitigation retrofitting and legacy binary migration, as it enables reliable, fully static translation without runtime support. The taxonomy candidates for this work include Architecture, Cybersecurity, Network, and Cryptography, reflecting its relevance to these domains.

Who should read this

CS practitioners and researchers

Opening member contentโ€ฆ