Show simple item record

dc.contributor.advisorKulkarni, Prasad
dc.contributor.authorKline, Jace Aaron
dc.date.accessioned2023-06-25T20:12:55Z
dc.date.available2023-06-25T20:12:55Z
dc.date.issued2022-12-31
dc.date.submitted2022
dc.identifier.otherhttp://dissertations.umi.com/ku:18708
dc.identifier.urihttps://hdl.handle.net/1808/34431
dc.description.abstractDecompilation is the process of reverse engineering a binary program into an equivalent source code representation with the objective to recover high-level program constructs such as functions, variables, data types, and control flow mechanisms. Decompilation is applicable in many contexts, particularly for security analysts attemptingto decipher the construction and behavior of malware samples. However, due to the loss of information during compilation, this process is naturally speculative and thus is prone to inaccuracy. This inherent speculation motivates the idea of an evaluation framework for decompilers. In this work, we present a novel framework to quantitatively evaluate the inference accuracy of decompilers, regarding functions, variables, and data types. Within our framework, we develop a domain-specific language (DSL) for representing such program information from any "ground truth" or decompiler source. Using our DSL, we implement a strategy for comparing ground truth and decompiler representations of the same program. Subsequently, we extract and present insightful metrics illustrating the accuracy of decompiler inference regarding functions, variables, and data types, over a given set of benchmark programs. We leverage our framework to assess the correctness of the Ghidra decompiler when compared to ground truth information scraped from DWARF debugging information. We perform this assessment over a subset of the GNU Core Utilities (Coreutils) programs and discuss our findings.
dc.format.extent308 pages
dc.language.isoen
dc.publisherUniversity of Kansas
dc.rightsCopyright held by the author.
dc.subjectComputer science
dc.subjectcyber
dc.subjectdecompilation
dc.subjectdecompiler
dc.subjectdisassembly
dc.subjectevaluation
dc.subjectsecurity
dc.titleA Framework for Assessing Decompiler Inference Accuracy of Source-Level Program Constructs
dc.typeThesis
dc.contributor.cmtememberKulkarni, Prasad
dc.contributor.cmtememberLuo, Bo
dc.contributor.cmtememberAlexander, Perry
dc.thesis.degreeDisciplineElectrical Engineering & Computer Science
dc.thesis.degreeLevelM.S.
dc.identifier.orcidhttps://orcid.org/0000-0003-4442-9776en_US
dc.rights.accessrightsopenAccess


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record