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

Disciplines

Computer and Systems Architecture | Computer Engineering

Publication Date

2026

Degree Granted

Bachelor of Arts

Document Type

Senior Independent Study Thesis

Share

COinS
 

© Copyright 2026 Abhishek Manhas