【问题标题】:Building objdump on osx to allow disassembling arm64 objects在 osx 上构建 objdump 以允许反汇编 arm64 对象
【发布时间】:2014-11-25 16:25:00
【问题描述】:

我正在尝试使用 objdump(来自 GNU binutil)来反汇编我为 iOS 构建的针对 arm64 架构的 openSSL,并为其提供以下选项:

./objdump openssl -f(文件头)、-t(符号表)和-h(节头)

但出现以下错误:

BFD:bfd_mach_o_scan:未知架构 0x100000c/0x0 objdump: ./openssl: 文件格式无法识别 目标: BFD:bfd_mach_o_scan:未知架构 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-错误 -enable-install-libiberty -enable-targets=arm-eabi

在所有 arm 32 位架构上都可以正常工作,但无法反汇编 arm64。

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

./objdump openssl -f(文件头)、-t(符号表)和-h(节头)

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

提前致谢

【问题讨论】:

    标签: macos openssl gnu objdump arm64


    【解决方案1】:

    您使用的 objdump 不了解 arm64 架构。 0x100000c/0x0是cputype(CPU_TYPE_ARM64)和cpusubtype CPU_SUBTYPE_ARM64_ALL。

    为什么要使用 objdump? otool(1) 程序运行良好,包含在 Xcode 开发者工具/命令行工具包中。命令行选项有些不同,但看一下手册页就会清楚如何使用它。

    【讨论】:

    • 感谢您的回答,但不幸的是我需要使用 objdump。你知道如何构建它来识别 arm64 架构吗?或者你知道我在哪里可以得到 objdump 的预构建版本吗?
    • 抱歉,我对 binutils 的状态或其版本一无所知。我不知道 objdump 是否包含反汇编程序——如果您支持像 arm64 / AArch64 这样的新 ISA,那将是最复杂的部分。如果 objdump 不能反汇编,那么添加 arm64 支持非常简单,我建议寻找更新版本的它。但如果是我,我只会想办法使用 otool 来做你需要的事情——它们的作用非常相似。
    • 感谢您的回答。您是否知道如何将 objdump 选项:-f(文件头)、-t(符号表)和 -h(节头)转换为等效的 otool 选项?
    猜你喜欢
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多