|
Strukturování kódu v zadní části zpětného překladače
Porwolik, Tomáš ; Kučera, Jiří (oponent) ; Matula, Peter (vedoucí práce)
Tato diplomová práce se zabývá nástrojem pro zpětný překlad nízkoúrovňového strojového kódu do vyšší formy reprezentace, který je vyvíjen společností AVG Technologies. Cílem této práce je navrhnout a implementovat metodu strukturování vnitřní reprezentace v zadní části zpětného překladače, která se bude snažit eliminovat skoky s využitím podmíněných příkazů a cyklů. Je navržena metoda pro strukturování, která pracuje na základě opakovaného procházení grafu toku řízení a vyhledávání předdefinovaných vzorů. Ve všech případech však není možné strukturovat kód pouze s využitím podmíněných příkazů a cyklů. V takových případech je použito strukturování pomocí příkazu goto. Vytvořené řešení je srovnáno s původním řešením ve zpětném překladači. Dle výsledků je řešení rychlejší, lépe otestované, ale ve větším množství případů generuje nevalidní kód. Z hlediska strukturování jsou výsledky rozdílné a někdy je kód strukturován lépe, avšak někdy hůře.
|
|
Strukturování kódu v zadní části zpětného překladače
Porwolik, Tomáš ; Kučera, Jiří (oponent) ; Matula, Peter (vedoucí práce)
Tato diplomová práce se zabývá nástrojem pro zpětný překlad nízkoúrovňového strojového kódu do vyšší formy reprezentace, který je vyvíjen společností AVG Technologies. Cílem této práce je navrhnout a implementovat metodu strukturování vnitřní reprezentace v zadní části zpětného překladače, která se bude snažit eliminovat skoky s využitím podmíněných příkazů a cyklů. Je navržena metoda pro strukturování, která pracuje na základě opakovaného procházení grafu toku řízení a vyhledávání předdefinovaných vzorů. Ve všech případech však není možné strukturovat kód pouze s využitím podmíněných příkazů a cyklů. V takových případech je použito strukturování pomocí příkazu goto. Vytvořené řešení je srovnáno s původním řešením ve zpětném překladači. Dle výsledků je řešení rychlejší, lépe otestované, ale ve větším množství případů generuje nevalidní kód. Z hlediska strukturování jsou výsledky rozdílné a někdy je kód strukturován lépe, avšak někdy hůře.
|
|
Pokročilá analýza toku řízení v malware
Porwolik, Tomáš ; Matula, Peter (oponent) ; Ďurfina, Lukáš (vedoucí práce)
Tato bakalářská práce se zabývá nástrojem pro zpětný překlad strojového kódu na vyšší programovací jazyk. Tento nástroj je vyvíjen v rámci projektu Lissom. Cílem práce je zavedení pokročilé analýzy toku řízení. Zaměřuje se především na zpětnou rekonstrukci příkazu switch a volání funkce přes ukazatel. Dané problémy jsou v práci vyřešeny zavedením nových metod analýzy toku řízení. Jsou zde podrobně rozebrány a je navrženo řešení, které je implementováno a otestováno. Vytvořené řešení umožňuje úspěšně zpětně rekonstruovat příkaz switch ve většině případů výskytů, a také volání funkce přes ukazatel v jednodušších případech výskytů. Přínosem této práce je vylepšení nástroje pro zpětný překlad, kdy jsou zpětně překládány programy, které zmíněné pokročilé konstrukce využívají.
|