Thesis Details

Zpětný překlad vysokoúrovňových konstrukcí jazyka C++

Master's Thesis Student: Jakub Dušan Academic Year: 2014/2015 Supervisor: Matula Peter, Ing.
English title
Decompilation of High-Level Constructions in C++ Binaries
Language
Czech
Abstract

The thesis addresses the decompilation of high-level object-oriented C++ language from a machine code. The term reverse engineering is defined and existing decompilers are described with emphasis on their ability to reconstruct C++. AVG decompiler project is introduced, to which this thesis contributes. C++ language is analysed, both on a logical level and in the machine code and existing methods of decompilation are described. On this basis a novel method is introduced, capable of decompiling classes, their hierarchy, constructors, destructors and definitions and usages of virtual methods. The method is implemented, tested and evaluated. In the conclusion, several suggestions for future development of this project are presented.

Keywords

Reverse engineering, decompilation, machine code, assembler, C++, object-oriented language, class, inheritance, virtual method table, constructor, destructor, late binding, LLVM, AVG

Department
Degree Programme
Information Technology, Field of Study Information Systems
Status
defended, grade A
Date
22 June 2015
Reviewer
Committee
Kolář Dušan, doc. Dr. Ing. (DIFS FIT BUT), předseda
Brada Přemysl, doc. Ing., MSc. Ph.D. (WBU in Pilsen), člen
Květoňová Šárka, Ing., Ph.D. (DIFS FIT BUT), člen
Rogalewicz Adam, doc. Mgr., Ph.D. (DITS FIT BUT), člen
Švéda Miroslav, prof. Ing., CSc. (DIFS FIT BUT), člen
Zendulka Jaroslav, doc. Ing., CSc. (DIFS FIT BUT), člen
Citation
JAKUB, Dušan. Zpětný překlad vysokoúrovňových konstrukcí jazyka C++. Brno, 2015. Master's Thesis. Brno University of Technology, Faculty of Information Technology. 2015-06-22. Supervised by Matula Peter. Available from: https://www.fit.vut.cz/study/thesis/17893/
BibTeX
@mastersthesis{FITMT17893,
    author = "Du\v{s}an Jakub",
    type = "Master's thesis",
    title = "Zp\v{e}tn\'{y} p\v{r}eklad vysoko\'{u}rov\v{n}ov\'{y}ch konstrukc\'{i} jazyka C++",
    school = "Brno University of Technology, Faculty of Information Technology",
    year = 2015,
    location = "Brno, CZ",
    language = "czech",
    url = "https://www.fit.vut.cz/study/thesis/17893/"
}
Back to top