Deterministic Fully-Static Whole-Binary Translation Without Heuristics
matt_d
63 points
6 comments
May 13, 2026
Related Discussions
Found 5 related stories in 74.7ms across 8,303 title embeddings via pgvector HNSW
- Low-Compilation-Cost Register Allocation in LLVM-Based Binary Translation matt_d · 68 pts · April 29, 2026 · 52% similar
- The mechanics of autonomous software translation alpaylan · 11 pts · March 11, 2026 · 52% similar
- Transformers Are Inherently Succinct (2025) bearseascape · 45 pts · May 04, 2026 · 46% similar
- Speculative Speculative Decoding (SSD) E-Reverance · 28 pts · March 04, 2026 · 46% similar
- NanoGPT Slowrun: Language Modeling with Limited Data, Infinite Compute sdpmas · 147 pts · March 04, 2026 · 44% similar
Discussion Highlights (2 comments)
dmitrygr
Cute, but Rice's theorem remains, and while they translated every byte as code, still no handling is possible for char buf[] = {0xB8, 0x2A, 0x00, 0x00, 0x00, 0xC3}; return ((int (*)(void))buf)(); static translation is only possible when you assume no adversarial code AND mostly assume compiler-produced binaries. hand-rolled asm gets hard, and adversarial code is provably unsolvable in all cases. still, pretty cool for cooperative binaries
jonhohle
This is neat. I haven’t looked into it, but I would think relative offsets could still be an issue, but it seems there must be some translation layer/mmu since the codegen will be different sizes anyway. This would impact jump tables and internal branches, primarily. I mostly work on stuff from the 90s, but disassemblers make a lot of assumptions about where code starts and ends, but occasionally a binary blob is not discoverable unless you have some prior knowledge (pointer at a fixed location to an entry point). I would think after a few passes you could refine the binary into areas that are definitely code.