Abstract
Decompilation converts executable binaries into source-like code, but the recovered output often loses clarity because compilation removes or transforms information such as variable names, type intent, and high-level structure. This study explores whether large language models, organized through a DSPy-based refinement pipeline, can improve decompiled C code by simplifying low-level artifacts, renaming variables conservatively, and adding limited explanatory comments while preserving the apparent behavior of the program. The pipeline combines static decompiler output with constrained LLM rewriting and lightweight validation checks, treating the LLM as a guided refinement layer rather than a replacement for the decompiler. Experiments on a small set of C test programs show that the approach can reduce artifacts such as temporary variables, flag-based branches, numeric character constants, and mechanically structured control flow in selected cases. However, the evaluation remains limited and qualitative, so these results should not be interpreted as proof that DSPy is generally superior to standard decompilation. Instead, the findings suggest that LLM-assisted refinement may be useful when applied carefully, while also revealing risks such as hallucinated logic, misleading renaming, and incomplete semantic verification.
Advisor
Musgrave, John
Department
Computer Science; Mathematics
Recommended Citation
Manhas, Abhishek, "Bridging the Semantic Gap in Decompilation" (2026). Senior Independent Study Theses. Paper 13145.
https://openworks.wooster.edu/independentstudy/13145
Disciplines
Computer and Systems Architecture | Computer Engineering
Publication Date
2026
Degree Granted
Bachelor of Arts
Document Type
Senior Independent Study Thesis
© Copyright 2026 Abhishek Manhas
