====== Inteligentní DISassembler ====== ===== Cíle ===== ==== Hlavní==== * schopný disassembler zejména pro AMD64 a možností snadné rozšiřitelnosti pro jiné platformy * možnost snadného scriptování pluginů v pythonu pro rychlé docílení požadované operace * GUI pro jednoduchou orientaci v kódu a snadný přístup k datům * automatické zpracování kódu -- detekce a analýza aritmetiky, zpracování běžných konstruktů generovaných vyššími jazyky (podmínky, smyčky, volání funkcí ABI) * interaktivní disassemblování -- možnost označit začátek kódu, data atp. * detekce obfuskování ==== Nice-to-have ==== * možnosti debuggingu * načítání corefilu a propagace hodnot z doby smrti kódem zpět pro zefektivnění zjistování root-cause * asumpce na kód (přiřazení hodnoty, výsledku podmínky) ===== Stav ===== Stav jednotlivých částí projektu -- "funkční" znamená, že část funguje, "hotový" že je hotová a "todo" že není vůbec, nebo nemá ani základní funkčnost. * Generátor syntaxe (funkční) * Dekodér instrukcí (funkční) * Pluginovací systém (funkční) * Abstrakce instrukcí a aritmetiky (funkční, chybí definice) * n-ární operace * modifies/sets, provázání s assumpcema * asumpce mezi basicblocky * GUI (todo) * Generátor assembleru (todo) * IAS (todo) * Intel (funkční) -- generuje v zásadě validní assembler, ale není to úplně jisté * AT&T (funkční) -- generuje něco, co se mu zanačně podobá, ale není to validní (příklad: ''0x8()'')