30 Years of Decompilation and the Unsolved Structuring Problem: Part 1 (2024)
2 days ago
- #decompilation
- #reverse-engineering
- #control-flow-structuring
- The article discusses the history and challenges of decompilation, focusing on control flow structuring.
- Dr. Cristina Cifuentes' 1994 dissertation is credited as foundational work in decompilation.
- Control flow structuring converts disassembled programs (CFGs) into high-level language structures like if-then-else and loops.
- Early decompilers like dcc produced rudimentary but functional code, often overusing while loops.
- Three fundamental pillars of decompilation identified: CFG recovery & lifting, variable recovery, and control flow structuring.
- IDA Pro and Reko are notable decompilers that emerged post-Cifuentes, following similar structuring principles.
- Academic interest in decompilation resurfaced in 2011 with papers like 'TIE' and 'Phoenix'.
- Despite its importance, decompilation research has been slow, with only a few papers published in top security conferences.
- Open-source decompilers like Ghidra have recently made decompilation more accessible to researchers.
- The article hints at future discussions on modern control flow structuring techniques and their limitations in Part 2.