A Taxonomy of C Decompiler Fidelity Issues
Luke Dramko, Jeremy Lacomis, Edward J. Schwartz, Bogdan Vasilescu, Claire Le Goues
33rd USENIX Security Symposium · Day 1 · USENIX Security '24
This talk, presented by Luke Dramko from Carnegie Mellon University, delves into the inherent limitations and discrepancies found in the output of modern decompilers. Decompilers are indispensable tools in binary analysis, converting executable code back into a higher-level representation, typically C. This process is crucial for tasks like malware analysis, vulnerability research, and even patching legacy software when original source code is unavailable. However, the decompiled output often lacks the clarity and readability of the original source, making analysis challenging.
AI review
This research delivers a critical, systematic taxonomy of 52 decompiler fidelity issues, providing a foundational understanding of the inherent limitations in converting binaries back to C. It’s essential for anyone who relies on decompilers, offering actionable insights into common discrepancies and a clear roadmap for future tool development, especially concerning type recovery and interprocedural analysis.