C 列出可执行文件中的全局变量
如何在可执行文件中转储所有全局变量和地址偏移 这是在OSX上,应用程序是用gcc编译的xcode开发的 谢谢如果编译为Mach-O 使用或使用C 列出可执行文件中的全局变量,c,xcode,macos,gcc,otool,C,Xcode,Macos,Gcc,Otool,如何在可执行文件中转储所有全局变量和地址偏移 这是在OSX上,应用程序是用gcc编译的xcode开发的 谢谢如果编译为Mach-O 使用或使用cctools 如果编译为ELF 您应该能够使用objdump和/或readelf完成此操作 我手头没有*nix系统,但是objdump-s-j.data应该已经足够接近了。一个简单的方法是使用nm工具来获取全局变量列表及其相对于macOS上可执行文件的偏移量(原始问题)。在没有任何附加键的情况下,它会给出变量及其偏移量 例如: $ nm <some
cctools
如果编译为ELF
您应该能够使用objdump
和/或readelf
完成此操作
我手头没有*nix系统,但是
objdump-s-j.data
应该已经足够接近了。一个简单的方法是使用nm
工具来获取全局变量列表及其相对于macOS上可执行文件的偏移量(原始问题)。在没有任何附加键的情况下,它会给出变量及其偏移量
例如:
$ nm <some binary>
...
U __ZTVN10__cxxabiv117__class_type_infoE
U __ZTVN10__cxxabiv120__si_class_type_infoE
000000010006e248 s __ZTVN7testing17TestEventListenerE
000000010006e1c0 s __ZTVN7testing22EmptyTestEventListenerE
000000010006dfa8 s __ZTVN7testing31TestPartResultReporterInterfaceE
000000010006d860 S __ZTVN7testing32ScopedFakeTestPartResultReporterE
000000010006d8d8 S __ZTVN7testing4TestE
...
将为您提供字符串文字及其偏移量的列表
有关更多详细信息,请参见
man strings
。这是一个OS X应用程序。它没有编译成ELF。除非安装libelf和elftools,否则没有objdump。如何使用otools获取全局变量?
$ strings <some binary> -o -t x