Dekódování binárního kódu do vyšší formy reprezentace

Loading...
Thumbnail Image

Date

Authors

Macko, Lukáš

Mark

B

Journal Title

Journal ISSN

Volume Title

Publisher

Vysoké učení technické v Brně. Fakulta informačních technologií

ORCID

Abstract

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.

Description

Citation

MACKO, L. Dekódování binárního kódu do vyšší formy reprezentace [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2015.

Document type

Document version

Date of access to the full text

Language of document

cs

Study field

Inteligentní systémy

Comittee

doc. Ing. František Zbořil, CSc. (předseda) prof. RNDr. Alexandr Meduna, CSc. (místopředseda) Ing. Vladimír Bartík, Ph.D. (člen) doc. Ing. Michal Bidlo, Ph.D. (člen) Ing. Martin Hrubý, Ph.D. (člen) Ing. William Steingartner, Ph.D. (člen)

Date of acceptance

2015-06-23

Defence

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: Nový způsob dekódování je oproti stávajícímu zjevně náročnější. Mohl byste blíže porovnat oba přístupy z hlediska časové složitosti? Z uvedených výsledků testů se zdá, že veškeré dekódování probíhá úspěšně. Jsou případy, na kterých navržené řešení selhává? Případně rozeberte.

Result of defence

práce byla úspěšně obhájena

DOI

Collections

Endorsement

Review

Supplemented By

Referenced By

Citace PRO