logo SBA

ETD

Digital archive of theses discussed at the University of Pisa

 

Thesis etd-09072022-113934


Thesis type
Tesi di laurea magistrale
Author
BERTOLACCINI, FRANCESCO
URN
etd-09072022-113934
Thesis title
Improving the quality of Rellic-decompiled source code
Department
INFORMATICA
Course of study
INFORMATICA
Supervisors
relatore Prof. Ferrari, Gian Luigi
tutor Goodman, Peter
Keywords
  • analysis
  • decompilation
  • decompiler
  • llvm
  • rellic
  • software
Graduation session start date
07/10/2022
Availability
Full
Summary
In this thesis we present improvements and additions made to Rellic during an internship at Trail of Bits. Rellic is an LLVM-to-C decompiler which aims at producing goto-free code using an approach based on analyzing the reaching conditions of the nodes in the Control-Flow Graph of the program to decompile.
The goal of the internship was to make sure that Rellic produces code that is as close to human-produced source code as possible, while special attention was paid to the generation of provenance information – metadata on how the decompiled code relates to the original LLVM instructions – and to the correctness of the generated code.
The result is that Rellic is now able to decompile most LLVM bitcode into C source code that can be re-compiled into working programs with little outside intervention, and can be understood more easily by most programmers than the raw LLVM bitcode.
File