Název:
Zpětný překlad vybraných konstrukcí jazyka C++
Překlad názvu:
Decompilation of Selected C++ Constructions
Autoři:
Mihulka, Tomáš ; Zemek, Petr (oponent) ; Matula, Peter (vedoucí práce) Typ dokumentu: Bakalářské práce
Rok:
2014
Jazyk:
cze
Nakladatel: Vysoké učení technické v Brně. Fakulta informačních technologií
Abstrakt: [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 .
Klíčová slova:
C++; Lissom; LLVM IR; RTTI tabulka; virtuální tabulka; Zpětné inženýrství; zpětný prěkladač; C++; decompiler; Lissom; LLVM IR; Reverse engeneering; RTTI table; virtual table
Instituce: Vysoké učení technické v Brně
(web)
Informace o dostupnosti dokumentu:
Plný text je dostupný v Digitální knihovně VUT. Původní záznam: http://hdl.handle.net/11012/56612