Anotující disassembler pro AMD64
An annotating disassembler for AMD64
bachelor thesis (DEFENDED)

View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/46322Collections
- Kvalifikační práce [9075]
Author
Advisor
Referee
Děcký, Martin
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
General Computer Science
Department
Department of Applied Mathematics
Date of defense
18. 6. 2012
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
Czech
Grade
Very good
Keywords (Czech)
disassembler, AMD64, analýza kódu
Keywords (English)
disassembler, AMD64, code analysis
Cílem práce je vytvořit disassembler pro architekturu AMD64, který bude sloužit pro zjednodušení analýzy programů na úrovni strojového kódu. Práce popisuje formát instrukcí, binárních souborů a systémové konvence, které jsou následně využity ve vypracovaném disassembleru. Ten umí například analyzovat a vizualizovat skoky, pracovat s výchozím obsahem paměti, interpretovat volací konvence ABI, přejmenovávat a zjednodušovat výrazy, u kterých známe hodnoty a další. Nedílnou součástí je také skriptovací API pro Python, které umožňuje psát rozšiřující pluginy a přidávat funkce za hranice toho, na co myslel autor.
The goal of this work is to create a disassembler for the AMD64 architecture which would simplify program analysis in machine code. The work describes low-level instruction format, object file format and system conventions, on which we base our program. Its features are for example branch analysis and visualization, the ability to work with default memory contents, interpretation of ABI calling conventions, expression renaming and simplification based on known values. Scripting API for Python is integrated, which enables the user to write custom plug-ins, and extend its abilities beyond what the author has anticipated.