Detail práce
Zpětný překlad aplikací pro architekturu AArch64 v nástroji RetDec
Cieľom tejto práce je navrhnúť a implementovať spätný prekladač pre architektúru AArch64. Práca najprv uvedie koncept reverzného inžinierstva, následne všeobecne analyzuje platformu procesorov ARM a architektúru spätného prekladača RetDec od firmy Avast. V~ďalších kapitolách je popísaný návrh a implementácia modulu pre RetDec. Výstupom modulu je preklad strojového kódu do LLVM inštrukcií, ktoré sú následné spracované priechodmi LLVM. Toto vedie k výslednému prekladu do vyššieho jazyka.
ARM64, AArch64, ARMv8, reverzné inžinierstvo, spätný preklad, LLVM, Capstone, RetDec
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".
- Na straně 11 píšete, že zarovnání je ovlivněno velikostí slova (předpokládám 64 bitů), ale instrukce se ukládají na 32 bitech. Znamená to, že je polovina každého slova s instrukcí nevyužita?
- Jakým způsobem je rozdělen vstupní binární soubor na menší části, které jsou překládány pomocí Capstone?
- Jsou po získání potřebných informací např. ohledně cíle skoku dále transformovány pseudo funkce jako __pseudo_call nebo již ve výstupním kódu zůstávají?
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{FITBT22059, author = "Matej Ka\v{s}\v{t}\'{a}k", type = "Bakal\'{a}\v{r}sk\'{a} pr\'{a}ce", title = "Zp\v{e}tn\'{y} p\v{r}eklad aplikac\'{i} pro architekturu AArch64 v n\'{a}stroji RetDec", 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/22059/" }