30 Years of Decompilation and the Unsolved Structuring Problem: Part 1
As 2024 begins, I’ve taken a moment to think about the last year(s) of decompilation research, since I spent most of my 2023 working on decompilation. I’ve largely spent that time working on a fundamental area of decompilation research called control flow structuring. Although I find this area critical to decompilation, I realize most security people have only heard of it in passing. With that in mind, I wanted to take a moment to recap the (short) history of binary decompilation and structuring, loosely based on my Ohio State talk on the same topic. I also mix in some of my advisor’s, Dr. Fish Wang, NDSS talk. To clarify, this post will be about binary decompilation, or decompilation on programs produced by compiled languages like C, C++, Rust, and Go. I will focus on the history of decompilation as preliminary information needed to understand the control flow structuring. Luckily (or unluckily?), decompilation as a research area has a relatively small history, even considering non-ac
30 Years of Decompilation and the Unsolved Structuring Problem: Part 1 30 Years of Decompilation and the Unsolved Structuring Problem: Part 1 TL;DR A two-part series on the history of decompiler research and the fight against the unsolved control flow structuring problem. In part 1, we revisit the history of foundational decompilers and techniques, concluding on a look at modern works. In part 2, we deep-dive into the fundamentals of modern control flow structuring techniques, and their limitations, and look to the future. Retrospection As 2024 begins, I’ve taken a moment to think about the la
saved by
related reading
- Destroy All Values: Designing Deinitialization in Programming Languages - Faultloregankra.github.io
- IDA series, part 1: the Hex-Rays decompilerweb.archive.org
- AI Control: Improving Safety Despite Intentional Subversion — LessWronglesswrong.com
- The Lost Art of Structure Packingcatb.org
- Vulnerability Research Is Cooked - Quarrelsomesockpuppet.org
- Writing a C compiler in 500 lines of Pythonvgel.me
- Defining A Software Supply Chain Security Platform & Exploring New Techniques, Part 2softwareanalyst.substack.com
- Astra for Coding: Why Are We Doing This Again?lucumr.pocoo.org
- AI Control: Improving Safety Despite Intentional Subversion — AI Alignment Forumalignmentforum.org
- Looking back at speculative decodingresearch.google
- Software Supply Chain Security (Part 1)softwareanalyst.substack.com
- Google's Fully Homomorphic Encryption Compiler — A Primer || Math ∩ Programmingjeremykun.com