2012-01-03 5 views
11

Czy są jakieś programy linuksowe, które mogą deasemblować OS X -owy uniwersalny x86/x86_64 z Mach-O binarnym jak objdump? GND binutils 'objdump obsługuje pliki ELF i Windows PE, ale nie Mach-O.Dezasembler Linux-a typu Mach-O

+0

Czy jesteś pewien, że 'binutils' nie obsługuje Mach-O? Być może musisz to skonfigurować i przekompilować (oczywiście, że twoja dystrybucja standardowa 'binutils' nie obsługuje tego, ponieważ nie ma takiej potrzeby)? –

+0

Czytałem gdzieś, że GNU binutils nie wspierał tego. Po prostu założyłem, że port mac został zmodyfikowany, aby go obsłużyć. Tak nie jest, jak opisuje @Brett Hale. – Jeff

Odpowiedz

10

AFAIK, rodzime narzędzia binarne Darwina są częścią pakietu cctools. Nie mają tej samej składni wiersza poleceń ani wyjścia, co GNU binutils. Później binutils (tj., 2.22) obsługują jednak format Mach-O. Możesz je wstępnie skonstruować, z prefiksem "g" do nazw narzędzi, jak wspomniano here. Alternatywnie, można skompilować binutils, z czymś takim:

> ./configure --prefix=$CROSSTOOLDIR --target=x86_64-apple-darwin \ 
--enable-64-bit-bfd --disable-nls --disable-werror 

Montaż przyniesie bin/ katalogu, gdzie media są poprzedzone x86_64-apple-darwin. Powinien obsługiwać format i386 Mach-O (i pliki binarne FAT) dobrze.

+0

To zadziałało. Dziękuję Ci bardzo. – Jeff

+0

Dzięki za milion! Świetnie pracował!^_^ – TrinitronX

+0

Po prostu, aby było jasne, to jest do budowania binutils specjalnie dla Mac osx? Nie dla Linuksa takie jak pierwotne pytanie? –

-1

Kilka znanych narzędzi do inżynierii odwrotnej plików binarnych Mach-O to: z otool, ciągi znaków, nm, otx itd. To zdecydowanie działa na systemie MAC OSX, myślę, że działa również na Linuksowej platformie.

+0

Nie, otool nie działa w systemie Linux. Jeśli masz jakiekolwiek dowody przeciwne, proszę je podać. Jeśli masz wersję innych narzędzi, które działają w systemie Linux na Mac OS X, proszę podać, skąd je wziąłeś. – pts

+0

tak ... otool to narzędzie do obsługi cmd w systemie OSX ... Istnieje alternatywne narzędzie dla platformy Linux .. Google i znajdź to! – Anil

+2

Próbowałem googling i mam ... tę odpowiedź. – Buge

5

W odniesieniu do odpowiedzi Jeffa:

bintuils nie obejmuje powiązanie wsparcia (LD/GLD) dla Mach-O nie, nawet w obecnym wydaniu 2.23, który jest bardzo rozczarowujące, ale nie zaskakujące. Tak się niestety dzieje, gdy tworzy się system operacyjny i wymyśla się na nowo rzeczy, "których naprawdę nie trzeba wymyślać na nowo". Każdy ma inne priorytety. Wciąż nie słyszałem końca a.out vs elfa od niektórych osób.

staram się uruchomić pliki binarne ELF na OSX? https://stackoverflow.com/a/2613170/1867574

2

Możesz dezasemblować pliki binarne Mach-O w systemie Linux za pomocą Hopper. W przeciwieństwie do programu objdump ma bardzo ładny graficzny interfejs użytkownika.

2

Myślę, że potrzebujesz otool. Jest on zawarty w mac osx command tools. Na przykład, jeśli chcesz zdemontować a.out, wystarczy wpisać otool -tv a.out w linii poleceń.

Powiązane problemy