Disassembler

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Disassembler je počítačový program nebo hardware, který se používá k analýze strojového kódu a jeho převodu zpět na lidsky čitelný programovací jazyk nebo nízkoúrovňové instrukce. Tento proces se nazývá disassemblování. Disassembler je běžně používán při reverzním inženýringu, při ladění a optimalizaci programů, při analýze škodlivého kódu nebo při návratu ke zdrojovému kódu již zkompilovaných programů. Disassemblery se liší podle úrovně detailů, které poskytují při analýze kódu. Existuje mnoho disassemblerů pro různé programovací jazyky a architektury počítačů. Patří sem například IDA Pro, OllyDbg, Hopper a Ghidra. Výběr disassembleru závisí na konkrétních potřebách uživatele, dostupnosti a podporované platformě.

Disassembler je program převádějící strojový kód do symbolického zápisu v assembleru. Je používán k analýze přeložených programů, u nichž není k dispozici jejich zápis v žádném vyšším programovacím jazyce.

Kód vygenerovaný disassemblerem je daleko obtížněji srozumitelný, než původní člověkem napsaný zdrojový kód, a to i pokud šlo o kód napsaný původně přímo v assembleru. Neobsahuje totiž ani původní názvy proměnných nebo podprogramů, ani žádné doprovodné komentáře.

Na rozdíl od debuggeru vypisuje „mrtvý kód“, což znamená, že v něm vidíme výpis kódu ještě před jeho spuštěním. A pokud se kód po jeho spuštěním sám upravuje v RAM paměti nebo ho upravuje jiný proces, tak se tyto změny ve výpisu nezobrazí. +more Toho se využívá při ochraně programu před disassemblováním.

Příkladem disassembleru je nástroj ndisasm, dodávaný spolu s assemblerem Netwide Assembler nebo IDA.

Potřeba využití disassembleru v běžné programátorské práci výrazně klesá v souvislosti s rostoucí dostupností programů s otevřeným zdrojovým kódem.

Použití

Zkoumání optimalizační síly překladačů a jejich postupů. Překladače (kompilátory) jsou při vhodném nastavení schopny vygenerovat programový kód, který ani vzdáleně nepřipomíná původní záměr tvůrce, a přesto funguje korektně a několikrát rychleji. +more * Prolomení jednodušších ochran programů typu shareware, trialware apod. Tato praktika, zpravidla spočívající ve vystopování klíčové podmínky (která rozhoduje, zda program např. přijme zadané registrační číslo) a jejím následném obrácení, se nazývá cracking. * Přenos programu, dostupného pouze ve formě strojového kódu, na jinou počítačovou platformu. Historicky takové případy nastávaly například v éře domácích osmibitových počítačů. I v současné době se disassemblery využívají tímto způsobem - například při vývoji emulátorů, umožňujících spouštět v uživatelem zvoleném prostředí programy určené pro zcela jiný operační systém nebo dokonce pro nekompatibilní hardware. * Analýza a studium chování virů při tvorbě antivirů.

Související články

Reverzní inženýrství

Externí odkazy

[url=http://www. datarescue. +morecom/idabase/]The Interactive Disassembler (IDA)[/url] * [url=http://www. thefreecountry. com/programming/disassemblers. shtml]The free country[/url] * [url=http://www. programmersheaven. com/zone5/cat460/index. htm]Programmer's heaven[/url].

Kategorie:Programovací software

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top