Vylepšení rekonstrukce datových typů při zpětném překladu

Loading...
Thumbnail Image

Date

Authors

Venger, Adam

Mark

B

Journal Title

Journal ISSN

Volume Title

Publisher

Vysoké učení technické v Brně. Fakulta informačních technologií

ORCID

Abstract

Nový škodlivý software sa objavuje neustále. Pre jeho efektívnu analýzu a boj proti nemu sú potrebné nástroje ako dekompilátor. Dekompilácia je zložitý problém a jej zlepšenie vyžaduje využitie všetkých dostupných informácií obsiahnutých v binárnom súbore. Určité programovacie jazyky vyžadujú pre správnu kompiláciu zdrojových kódov zakódovanie mien použitých symbolov. Do mena funkcií sú pridané napríklad typy parametrov a konvencia volania. Tento proces sa nazýva mangling. Táto práca sa zaoberá procesom opačným tzv. demanglingom a jeho využitím pre zlepšenie nástroja pre spätný preklad strojového kódu do vyššieho jazyka, RetDec. Vytvorená knižnica umožňuje demangling symbolov vytvorených populárnymi kompilátormi jazyka C++ a jazyka Delphi. Existujúca knižnica demangleru nástroja RetDec bola nahradená novou, ktorej výsledky sú spoľahlivejšie. Na základe informácií získaných z kódovaných symbolov bola rozšírená rekonštrukcia dátových typov, čo spôsobilo spresnenie výstupu dekompilácie.
New malware is being continuosly developed. For its effective analysis and fight against it, tools such as decompilers are needed. Decompilation, however, is difficult problem to solve. For the improvement of its results, all of the information contained in binary files needs to be used. Some programming languages require encoding of some symbols in order to be compiled correctly. For example, when compiling functions, the parameter data types and the calling convention are encoded to the function name. This process is called mangling. Thesis deals with reverse process called demangling and its utilization for improvement of the RetDec decompiler. Created library allows demangling of symbols created by popular C++ and Delphi compilers. It combines custom solution with an existing one in the form of LLVM project demangler. Existing demangler library in RetDec was replaced with the new one, results of which are much more reliable. The reconstruction of data types was expanded to use the information obtained from encoded symbols, which resulted in more accurate decompilation.

Description

Citation

VENGER, A. Vylepšení rekonstrukce datových typů při zpětném překladu [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2019.

Document type

Document version

Date of access to the full text

Language of document

cs

Study field

Informační technologie

Comittee

doc. Dr. Ing. Dušan Kolář (předseda) doc. Ing. Jaroslav Zendulka, CSc. (místopředseda) Ing. David Bařina, Ph.D. (člen) Ing. Martin Hrubý, Ph.D. (člen) doc. Ing. Jan Kořenek, Ph.D. (člen)

Date of acceptance

2019-06-11

Defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm " B ". Otázky u obhajoby: Uvádíte, že se používají tři různé formáty AST pro anotace funkcí v závislosti na překladači. Je toto nutné? Není možné vytvoření univerzálního formátu pro různé C/C++ kompilátory? Při vyhodnocení porovnáváte nástroj s předchozí implementací (tabulka 7.1). Jaká je vlastní úspěšnost vytvořeného nástroje?  Nechápu případ uvedený na obrázku 7.2. Můžete prosím vysvětlit?

Result of defence

práce byla úspěšně obhájena

DOI

Collections

Endorsement

Review

Supplemented By

Referenced By

Citace PRO