readelf-podobne narzędzie dla Mac OS X? [zamknięte]
Czy istnieje narzędzie do odczytu plików binarnych Mac OS X, które wyświetla informacje o tablicach relokacji i przesunięciach symboli podobnych do tego wyjścia readelf
?
readelf -r app
Relocation section '.rel.dyn' at offset 0x5ec contains 2 entries:
Offset Info Type Sym.Value Sym. Name
08049d58 00001706 R_386_GLOB_DAT 00000000 __gmon_start__
08049d60 00000305 R_386_COPY 08049d60 _ZSt4cout
Relocation section '.rel.plt' at offset 0x5fc contains 13 entries:
Offset Info Type Sym.Value Sym. Name
08049d24 00000107 R_386_JUMP_SLOT 0804868c print
08049d28 00000207 R_386_JUMP_SLOT 0804869c _ZNSt8ios_base4InitC1E
08049d2c 00000507 R_386_JUMP_SLOT 080486ac _ZStlsISt11char_traits
08049d30 00000607 R_386_JUMP_SLOT 080486bc _ZNSolsEPFRSoS_E
08049d34 00000707 R_386_JUMP_SLOT 08048664 _init
08049d38 00000807 R_386_JUMP_SLOT 080486dc sleep
08049d3c 00000907 R_386_JUMP_SLOT 080486ec _ZNKSsixEj
08049d40 00000b07 R_386_JUMP_SLOT 080486fc _ZNKSs4sizeEv
08049d44 00000c07 R_386_JUMP_SLOT 0804870c __libc_start_main
08049d48 00000d07 R_386_JUMP_SLOT 08048ae4 _fini
08049d4c 00001307 R_386_JUMP_SLOT 0804872c _ZSt4endlIcSt11char_tr
08049d50 00001507 R_386_JUMP_SLOT 0804873c __gxx_personality_v0
08049d54 00001607 R_386_JUMP_SLOT 0804874c _ZNSt8ios_base4InitD1E
W tym przykładzie {[2] } jest funkcją ładowaną z biblioteki współdzielonej (którą napisałem) w czasie wykonywania. readelf
jest w stanie wyświetlić informacje o swojej lokalizacji wewnątrz app
binarnego.
5 answers
Using Macports:
- zainstaluj macports .
- Using macports
port install binutils
gobjdump -p /path/to/app
Using Homebrew :
- Install Homebrew
- Do
brew update && brew install binutils
gobjdump -p /path/to/app
Istnieje oczywiście wiele innych opcji wiersza poleceń. Zauważ, że port binutils ostrzega, że jego instalacja może spowodować, że inne porty nie zostaną zbudowane. Mając go wokół portu zainstalować / spojrzeć na coś / Port deinstalacji może nadal się przydaj.
To dość niesamowite, że nie ma jeszcze jakiegoś natywnego narzędzia do tego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-04 09:20:58
Otool-l test.o
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-20 03:13:44
Możesz spróbować dwarfdump
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-12 18:15:57
Próbowałeś ObjConv? http://agner.org/optimize/#objconv
To narzędzie może być używane do konwersji plików obiektowych między formatami COFF/PE, OMF, ELF i Mach-O (używanymi przez Mac OS) dla wszystkich 32-bitowych i 64-bitowych platform x86. Może modyfikować nazwy symboli w plikach obiektowych. Może tworzyć, modyfikować i konwertować biblioteki funkcji na różnych platformach. Może zrzucać pliki obiektowe i pliki wykonywalne. Zawiera również bardzo dobry disassembler obsługujący instrukcje SSE4, AVX, FMA i XOP zestawy.
Ps.: Dołączony jest kod źródłowy (GPL).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-27 00:01:53
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install binutils
greadelf filepath
- Zainstaluj homebrew.
- Użyj homebrew aby zainstalować binutils
- odczyt w binutils nazywa się
greadelf
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-19 09:44:23