Detail práce

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

Bakalářská práce Student: Venger Adam Akademický rok: 2018/2019 Vedoucí: Kolář Dušan, doc. Dr. Ing.
Název anglicky
Data Type Reconstruction Improvements in RetDec Decompiler
Jazyk práce
český
Abstrakt

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.

Klíčová slova

reverzné inžnierstvo, RetDec, demanglovanie, demangler, rekonštrukcia dátových typov

Ústav
Studijní program
Informační technologie
Soubory
Stav
obhájeno, hodnocení B
Obhajoba
11. června 2019
Oponent
Průběh obhajoby

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?  


 

Komise
Kolář Dušan, doc. Dr. Ing. (UIFS FIT VUT), předseda
Bařina David, Ing., Ph.D. (UPGM FIT VUT), člen
Hrubý Martin, Ing., Ph.D. (UITS FIT VUT), člen
Kořenek Jan, doc. Ing., Ph.D. (UPSY FIT VUT), člen
Zendulka Jaroslav, doc. Ing., CSc. (UIFS FIT VUT), člen
Citace
VENGER, Adam. Vylepšení rekonstrukce datových typů při zpětném překladu. Brno, 2019. Bakalářská práce. Vysoké učení technické v Brně, Fakulta informačních technologií. 2019-06-11. Vedoucí práce Kolář Dušan. Dostupné z: https://www.fit.vut.cz/study/thesis/22060/
BibTeX
@bachelorsthesis{FITBT22060,
    author = "Adam Venger",
    type = "Bakal\'{a}\v{r}sk\'{a} pr\'{a}ce",
    title = "Vylep\v{s}en\'{i} rekonstrukce datov\'{y}ch typ\r{u} p\v{r}i zp\v{e}tn\'{e}m p\v{r}ekladu",
    school = "Vysok\'{e} u\v{c}en\'{i} technick\'{e} v Brn\v{e}, Fakulta informa\v{c}n\'{i}ch technologi\'{i}",
    year = 2019,
    location = "Brno, CZ",
    language = "czech",
    url = "https://www.fit.vut.cz/study/thesis/22060/"
}
Nahoru