Název:
Vylepšení rekonstrukce datových typů při zpětném překladu
Překlad názvu:
Data Type Reconstruction Improvements in RetDec Decompiler
Autoři:
Venger, Adam ; Ryšavý, Ondřej (oponent) ; Kolář, Dušan (vedoucí práce) Typ dokumentu: Bakalářské práce
Rok:
2019
Jazyk:
cze
Nakladatel: Vysoké učení technické v Brně. Fakulta informačních technologií
Abstrakt: [cze][eng]
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.
Klíčová slova:
demangler; demanglovanie; rekonštrukcia dátových typov; RetDec; reverzné inžnierstvo; data type reconstruction; demangler; demangling; mangling; name decoration; RetDec; reverse engineering
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/180278