Original title:
Zpětný překlad vybraných konstrukcí jazyka C++
Translated title:
Decompilation of Selected C++ Constructions
Authors:
Mihulka, Tomáš ; Zemek, Petr (referee) ; Matula, Peter (advisor) Document type: Bachelor's theses
Year:
2014
Language:
cze Publisher:
Vysoké učení technické v Brně. Fakulta informačních technologií Abstract:
[cze][eng]
Tato práce se zabývá rekonstrukcí hierarchie tříd a jejich virtuálních metod z programů vytvořených jazykem C++. Cílem práce je rozšířit zpětný překladač, který je vyvíjen v rámci projektu Lissom o analýzu těchto konstrukcí pro různé překladače. Rekonstrukce jsou realizovány detekcí Run- Time Type Information (zkratka RTTI ) a virtuálních tabulek. V úvodní části práce je popsán vědní obor reverzní inženýrství a projekt Lissom s jeho zpětným překladačem. Poté následuje popis jazyka C++, jeho struktur s možnostmi jejich dekompilace. Dále následuje část věnující se návrhu, implementaci a testování rozpoznání RTTI a virtuálních tabulek.
This bachelor's thesis deals with the reconstruction of a hierarchy of classes and their virtual methods from programmes created by C++ language . The aim of this work is to extend a decompiler , which has been developed as a part of the Lissom project, by an analysis of those reconstructions for various decompilers . The reconstructions are created through detection of RTTI and virtual tables . The first part of this thesis involves a description of reverse engineering as well as of the Lissom project in terms of the decompiler . The following section of the paper explains the basics of C++ language , its structures and different possibilities of their decompilation . The final part of the paper deals with a design, implementation and testing of a recognition of RTTI and virtual tables .
Keywords:
C++; decompiler; Lissom; LLVM IR; Reverse engeneering; RTTI table; virtual table; C++; Lissom; LLVM IR; RTTI tabulka; virtuální tabulka; Zpětné inženýrství; zpětný prěkladač
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: http://hdl.handle.net/11012/56612