2012-07-16 16 views
6

Szukam biblioteki, która wykonuje demontaż kodu binarnego.Biblioteka demontażu używana przez objdump

Odkryłem, że libdisasm wykonuje dokładnie to samo, co ja chcę. Jednak znalazłem kilka linków wskazujących, że libdisasm nie działa dla 64-bitowych plików wykonywalnych. Czy to jest poprawne ?

Jednak wynik programu objdump dla 64-bitowych plików wykonywalnych jest niezawodny (zgodnie z moją najlepszą wiedzą). Więc czy objdump też używa podobnej biblioteki do demontażu? Początkowo myślałem, że objdump używa libdisasm.

Odpowiedz

10

objdump używa libopcodes z binutils. Jest to jednak dość podstawowe, ponieważ zapewnia jedynie reprezentację tekstową i brak uporządkowanych informacji o instrukcjach. Inne opcje:

+0

ok dzięki. Ale czy wiesz, czy libdisasm obsługuje 64-bitowe czy nie? –

+0

dzięki za linki - ciekawe odczyty. –

1

To tylko wyjaśnienie pytanie zadane przez ich twórców w komentarzu (Mam niewystarczające uwagi do komentarza).

Projekt libdisasm nie był aktywnie utrzymywany przez wiele lat. Nie obsługuje zestawu instrukcji x86-64 (64-bit) ani żadnego z rozszerzeń x86 (32-bitowych) po SSE3.

Projekt opdis zastępuje libdisasm. Autor libdisasm napisał opdis, aby uniknąć częstych aktualizacji wymaganych do obsługi ciągle zmieniających się zestawów instrukcji Intela i AMD. Faktyczny demontaż opcode w opdis jest obsługiwany przez biblioteki libopcodes z GNU binutils (disassembler używany przez objdump), z opdis udostępniającymi metadane instrukcji i wyższymi poziomami funkcji demontażu.

Powiązane problemy