Jak mogę zainstalować objdump na Mac OS X?

46

Chcę uzyskać kod źródłowy małego narzędzia wiersza polecenia, używając objdump na Mac OS X.

Użyłem arm-linux-objdump na Linuksie i uważam to za świetne narzędzie.

Czy jest jakiś sposób na zainstalowanie objdump na OS X? Przeszukałem Google i znalazłem informacje o arm-apple-dawin9-objdump, ale nie znalazłem niczego do pobrania.

Chilly Zhong
źródło

Odpowiedzi:

57

objdumpjest częścią binutils .

Ignacio Vazquez-Abrams
źródło
8
Homebrew też to ma! :)
Adrian Petrescu,
9
Miałem nadzieję, że homebrew ma to! Dzięki! brew install binutils
nacho4d
11
MacPorts binutils instaluje się objdumpjako gobjdump.
1
-bash: objdump: command not found
IgorGanapolsky
1
brew install binutilsinstaluje go również jako gobjdump
Joseph Sheedy
32

Jeśli masz zainstalowane XCode Tools na komputerze Mac, możesz użyć dołączonego do niego narzędzia otool . Wierzę, że robi właściwie to, co objdumpjest w stanie.

ayaz
źródło
14
+1 za otool - użyj otool -tV <executable>do demontażu
Paul R
1
dwarftooloferuje również podobne funkcje.
Mike Weller
3
czy otool ma opcję taką jak objdump -S, która wyświetla dane wyjściowe zestawu opatrzone adnotacjami z kodem źródłowym? Naprawdę nie mogłem dowiedzieć się z wyjścia --help.
rgngl
1
-bash: dwarftool: command not found
IgorGanapolsky
8

Jeśli plik jest 64bits, należy użyć otool zamiast gobjdump z binutils . W systemie Mac OSX gobjdump jest przeznaczony dla 32-bitowych.

ahuigo
źródło
2
Od 2017 r. Gobjdump 2.27 (myślę, że dostałem go od homebrew?)
Działa
6

Możesz zainstalować go z Homebrew:

$ brew install binutils
==> Downloading https://homebrew.bintray.com/bottles/binutils-2.25.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring binutils-2.25.yosemite.bottle.tar.gz
🍺  /usr/local/Cellar/binutils/2.25: 107 files, 140M
$ which gobjdump
/usr/local/bin/gobjdump
Daniel
źródło
2

Powinieneś użyć, otoolponieważ objdumpjest to narzędzie binutils dla formatu binarnego ELF w systemie Linux i większości innych systemów UNIX. otooljest deasemblerem formatu binarnego Mach-O dla MacOS. Wpisz $ man otoolinstrukcje użytkowania.

Riaz Rizvi
źródło