kar*_*lip 51 c macos symbols function
是否有用于读取Mac OS X二进制文件的工具,该工具将打印有关此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
Run Code Online (Sandbox Code Playgroud)
在这个例子中,print是一个在运行时从共享库(我写的)加载的函数. readelf能够显示有关其在app二进制文件内的位置的信息.
cbe*_*nna 85
使用Macports:
port install binutilsgobjdump -p /path/to/app使用Homebrew:
brew update && brew install binutils/usr/local/path/to/gobjdump -p /path/to/app当然,还有许多其他命令行选项.请注意,binutils端口警告说,安装它可能会导致其他端口无法构建.将它安装到端口安装/查看某些东西/端口卸载仍然可以很方便.
令人惊讶的是,还没有一些原生工具可以做到这一点.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install binutils
greadelf filepath
Run Code Online (Sandbox Code Playgroud)
greadelf.你试过ObjConv吗?http://agner.org/optimize/#objconv
此实用程序可用于在所有32位和64位x86平台的COFF/PE,OMF,ELF和Mach-O(由Mac OS使用)格式之间转换目标文件.可以修改目标文件中的符号名称.可以跨平台构建,修改和转换函数库.可以转储目标文件和可执行文件.还包括一个非常好的反汇编程序,支持SSE4,AVX,FMA和XOP指令集.
Ps.:包含源代码(GPL).
| 归档时间: |
|
| 查看次数: |
43070 次 |
| 最近记录: |