Publication Date


Document Type


Committee Members

Meilin Liu (Advisor), Junjie Zhang (Committee Member), Krishnaprasad Thirunarayan (Committee Member), Adam R. Bryant (Committee Member)

Degree Name

Master of Science in Computer Engineering (MSCE)


Decompilation is a process of transforming an executable program into a source-like high-level language code, which plays an important role in malware analysis, and vulnerability detection. In this thesis, we design and implement the middle end of a decompiler framework, focusing on Low Level Language properties reduction using the optimization techniques, propagation and elimination. An open-source software tool, dagger, is used to translate binary code to LLVM (Low Level Virtual Machine) Intermediate Representation code. We perform data flow analysis and control flow analysis on the LLVM format code to generate high-level code using a Functional Programming Langauge (FPL), Haskell. The result code generated by our decompiler framework is compared with the sample source code to verify the correctness of the decompiler framework.

Page Count


Department or Program

Department of Computer Science and Engineering

Year Degree Awarded