Název:
Dekódování binárního kódu do vyšší formy reprezentace
Překlad názvu:
Binary-Code Decoding to a High-Level Representation
Autoři:
Macko, Lukáš ; Soukup, Ondřej (oponent) ; Matula, Peter (vedoucí práce) Typ dokumentu: Diplomové práce
Rok:
2015
Jazyk:
cze
Nakladatel: Vysoké učení technické v Brně. Fakulta informačních technologií
Abstrakt: [cze][eng]
Diplomová práce se zabývá zpětným inženýrstvím v oblasti software. Představuje jeho uplatnění, používané nástroje a postupy. Podrobněji se věnuje problematice dekódování instrukcí. Uvádí dva základní postupy-lineární dekódování a rekurzivní sestup. Poukazuje na jejich silné stránky a nedostatky. Následně představuje zpětný překladač vyvíjenýspolečností AVG Technologies. Tento překladač je rekonfigurovatelný, což umožňuje zpětný překlad z různých architektur do více cílových jazyků. Cílem práce bylo navrhnout a implementovat algoritmus pro dekódování binárních souborů do vyšší reprezentace. Navržený algoritmus vychází z algoritmu rekurzivního sestupu. Využívá informace o toku řízení programu. Pro zpřesnění výsledku dekódování jsou navíc použity záznamy z tabulky symbolů a další informace. Navržený algoritmus byl implementován pro rekonfigurovatelný zpětný překladač společnosti AVG Technologies. Testy implementovaného algoritmu ukázaly zlepšení detekce funkcí v dekódovaných programech. Implementované řešení navíc umožňuje dekódovat i soubory, jejichž analýza s aktuálním řešením nebyla možná.
The thesis deals with reverse techniques in software engineering. It presents practical application of software reverse engineering, used tools and approaches. The topic of instruction decoding is discussed in detail. Two basic methods are presented-linear sweep and recursive descent. Their strengths and weaknesses are highlighted. Subsequently a decompiler developed by AVG Technologies is introduced. The decompiler is retargetable. This feature allows to decompile applications of multiple platforms into various target languages. The aim of the thesis is to design and implement algorithm for decoding binary files into high-level representation. The designed algorithm is based on modified recursive descent algorithm, which uses control flow information. In order to achieve more accurate decoding results, symbol table records and other additional information are used. The proposed algorithm was implemented for the AVG Technologies retargetable decompiler. The tests showed that the implemented algorithm improved the function detection in decoded programs. Furthermore, the implemented solution allows to decode files that could not be analysed using the previous version of the decompiler.
Klíčová slova:
dekódovaní instrukcí; hybridní analýza; LLVM IR; zpětný překladač; decompiler; hybrid analysis; instruction decoding; LLVM IR
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/64084