Disasembler
Disasembler – program tłumaczący kod maszynowy na kod źródłowy w asemblerze. Disasembler różni się od dekompilatora tym, iż dekompilator daje wynik w postaci kodu źródłowego któregoś z języków wysokiego poziomu (np. Java, Python).
Asembler zwykle pozwala na korzystanie z komentarzy i stałych wewnątrz programu; są one usuwane podczas procesu zamiany kodu asemblera na kod maszynowy. W większości przypadków nie jest możliwa skuteczna metoda zamiany kodu maszynowego na asembler, analizator nie jest w stanie rozróżnić danych od kodu i interpretuje dane umieszczone w kodzie programu jak instrukcje. Kod wynikowy deasemblowanego programu jest przez to jeszcze trudniejszy do zinterpretowania przez człowieka.
[edytuj] Przykłady disasemblerów
- Większość debugerów zawiera disasmebler, np. GNU Binutils zawiera program objdump
- BORG Disassembler [1]
- RosASM [2] – 32-bitowy asembler.
- Interactive Disassembler [3] – komercyjny, interaktywny disasembler.
- Bastard (program) [4] – linuksowy disasembler. Nie ma jeszcze użytecznego GUI, ale da się go obsługiwać z linii komend.
- Kopi [5]
- PVDasm [6]
- Java Class File Disassembler [7]
- HT Editor [8] – binarny edytor dla systemów Linux i Windows.
- ndisasm [9] – ndisasm, część pakietu NASM
- Udis86 Udis86
- diStorm64 [10]
- disasembler dla bytecode'u Pythona [11]
- BIEW is Binary vIEW project
- Nemo 440 [12] Advanced ActionScript 3/ABC2/Flex 2/Flex 3/AIR disassembler