Detail práce
Vylepšení rekonstrukce datových typů při zpětném překladu
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.
reverzné inžnierstvo, RetDec, demanglovanie, demangler, rekonštrukcia dátových typov
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".
- 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?
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
@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/" }