在osx上构建objdump以允许拆卸arm64对象

时间:2014-11-25 16:25:00

标签: macos openssl gnu objdump arm64

我正在尝试使用objdump(来自GNU binutil)反汇编我为iOS定制arm64架构的openSSL,并给出以下选项:

./objdump openssl -f (file headers), -t (symbol table), and -h (section headers)

但是收到以下错误:

BFD: bfd_mach_o_scan: unknown architecture 0x100000c/0x0
objdump: ./openssl: File format not recognized
TARGET: 
BFD: bfd_mach_o_scan: unknown architecture 0x100000c/0x0

我使用以下选项构建的objdump -v 2.21.1:

./configure CC="gcc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -arch i386" CXX="g++ -arch i386" -disable-werror -enable-install-libiberty -enable-targets=arm-eabi

所有arm 32位架构都运行良好,但未能拆卸arm64。

有没有人知道如何构建objdump以允许调用:

./objdump openssl -f (file headers), -t (symbol table), and -h (section headers)

对于构建目标arm64的二进制文件?

提前致谢

1 个答案:

答案 0 :(得分:1)

你正在使用的objdump不知道arm64拱。 0x100000c / 0x0是cputype(CPU_TYPE_ARM64)和cpusubtype CPU_SUBTYPE_ARM64_ALL。

为什么要使用objdump? otool(1)程序运行良好,包含在Xcode开发人员工具/命令行工具包中。命令行选项略有不同,但只需查看手册页就可以清楚地了解如何使用它。