|
CMU-S3D-26-114 Software and Societal Systems Department School of Computer Science, Carnegie Mellon University
Neural Decompilation with Minimal Risk Luke Dramko July 2026
Ph.D. Thesis
Decompilation is the process of converting executable programs back into source code, reversing compilation. Decompilation is used in several security-related tasks for which the source code of the program of interest is typically unavailable, including malware analysis, vulnerability research, and patching legacy software. Unfortunately, a significant amount of information is discarded during compilation, which means that information is unavailable for decompilers to use when reconstructing the source code. As a result, decompiled code is missing details like variable names, user-defined types, and comments, and is often structured in substantially different ways. The end result is that decompiled code is substantially more difficult to read than traditional source code, making reverse engineering a painstaking process. The key goal of this thesis is a method to recover these missing details with machine learning while not undermining the stronger correctness properties that deterministic decompilation provides. In the first thrust, to gain insights into the nature of decompiled code with an eye towards how it can be improved for reverse engineers, we conduct an empirical study of decompiled code. In particular, we build a comprehensive, hierarchical taxonomy of the ways in which decompiled code is unfaithful to the original source code from which it was derived (through compilation and subsequent decompilation). Two key conclusions from an analysis of our taxonomy are (1) a lack of type information, especially user-defined-types, are directly or indirectly involved in over half (8/14) of all top-level issues, and (2) arbitrary textual transformations are required to fix all issues generally.
Leveraging these insights, in the second thrust, we built a neural decompilation
tool,
The final thrust addresses a fundamental limitation of neural decompilation tools like
113 pages
Nicolas Christin, Head, Software and Societal Systems Department
|
|
Return to:
SCS Technical Report Collection This page maintained by reports@cs.cmu.edu |
|