Najlepsze pytania
Chronologia
Czat
Perspektywa

Deasembler

Z Wikipedii, wolnej encyklopedii

Deasembler
Remove ads

Deasembler, dezasembler (czasem „disasembler” od ang. disassembler) – program komputerowy, który tłumaczy język maszynowy lub kod bajtowy na język asemblera (tj. do postaci mnemonicznej). Deasembler jest niskopoziomowym odpowiednikiem dekompilatora.

Thumb
Przykład działania monitora kodu maszynowego w roli deasemblera: w trzeciej kolumnie (rozpoczynającej się od 6C 36 00) widać rozkazy w postaci mnemoników (z argumentami) w języku asemblerowa dla procesora MOS 6502.

Warunkiem prawidłowej dezasemblacji jest posiadanie przez dezasembler informacji o rozmieszczeniu kodu w analizowanym zbiorze danych (zazwyczaj pliku) – wynika to z braku możliwości skutecznego odróżnienia danych od kodu maszynowego. Do uzyskania tych informacji niektóre dezasemblery używają metadanych zawartych w plikach wykonywalnych oraz zestawu heurystyk[1].

Kod maszynowy może być dodatkowo zaciemniony – w takim wypadku jego poprawna, automatyczna deasemblacja przy użyciu ogólnych dezasemblerów jest utrudniona lub niemożliwa. Deasembler nie jest również w stanie odzyskać komentarzy ani stałych użytych w oryginalnym kodzie analizowanego programu; dane te są usuwane w procesie kompilacji lub asemblacji kodu do postaci kodu maszynowego.

Większość debuggerów posiada wbudowane dezasemblery; dotyczy to szczególnie debuggerów przystosowanych do pracy z kodem maszynowym lub z programami stworzonymi w językach wysokiego poziomu, ale skompilowanych do postaci kodu maszynowego.

Remove ads

Przykłady

  • IDA (Interactive Disassembler)
  • objdump

Zobacz też

Przypisy

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads