【问题标题】:Using objdump for ARM architecture: Disassembling to ARM将 objdump 用于 ARM 架构:反汇编为 ARM
【发布时间】:2011-04-21 01:00:18
【问题描述】:

我有一个目标文件,正在尝试反汇编它。当我使用时:

objdump -d example.o

我得到一个文件格式为elf64-x86-64 的代码程序集。

我正在尝试将其反汇编成 ARM,我该怎么做呢?

【问题讨论】:

  • 澄清一下,您是说您有一个 x86_64 可执行/目标文件并希望将其反汇编为 ARM 指令吗?
  • 是的,一位教授让我从事一个项目,我想做的是反汇编目标文件,但我猜它是一个 x86 可执行文件。如果我使用 arm-linux-objdump 应该可以反汇编成 ARM 吧?
  • 编译和反汇编都需要使用ARM交叉编译工具链。

标签: linux arm disassembly objdump


【解决方案1】:

安装 ELDK 并使用 arm-linux-objdump。您正在尝试使用只知道 x86 的程序来反汇编 ARM 指令。

【讨论】:

    【解决方案2】:

    使用正确的目标编译 binutils 以获得知道如何反汇编 ARM 的 binutils objdump 二进制文件。

    http://www.gnu.org/software/binutils/

    例如./configure --enable-targets=all

    选择你的目标,制作并使用你的目标感知的新objdump二进制文件。有关定位的更多信息,请参阅binutils/README 文件。

    objdump -D t3c # stock binary
    objdump: t3c: File format not recognized
    

    对比

    ./../../binutils-2.22/binutils/objdump -D t3c # latest compiled from source with all targets
    In archive t3c:
    
    t3c:arm:     file format mach-o-le
    
    
    Disassembly of section .text:
    
    00002d94 <start>:
        2d94:   e59d0000    ldr r0, [sp]
    ...
    

    【讨论】:

      【解决方案3】:

      如果你想反汇编ARM代码,你最好有一个ARM工具链,这是我得到的:

      http://bb.osmocom.org/trac/wiki/toolchain

      有了这个之后,你可以使用 arm-elf-objdump 来代替 objdump。 我使用的命令是

      arm-elf-objdump -D -b binary -marm binaryfile.dat
      

      如果您查看手册页,您会发现“-b”后面是文件类型。抱歉,我不知道如何告诉 -b 您要分析 .o 文件。 “-marm”会告诉cpu是ARM。

      希望对你有帮助。

      【讨论】:

      • 现在你可以用sudo apt install gcc-arm-none-eabi安装它,用gcc-arm-none-eabi-objdump -d -marm &lt;binary&gt;反汇编arm二进制文件。
      • 在我的情况下(Ubuntu 18.04),gcc-arm-none-eabi-objdump 不起作用,但 arm-none-eabi-objdump 起作用。
      【解决方案4】:

      在反汇编二进制文件之前,通过“文件”检查文件类型,例如:

      文件 dnslookup.o

      dnslookup.o:ELF 32 位 LSB 可重定位,ARM,EABI5 版本 1 (SYSV), 没有剥离

      所以现在我们知道它是一个 ARM 对象或 ELF 文件。

      要反汇编 arm 目标文件,请使用 arm-linux-gnueabi-objdump。在 Ubuntu 中,“arm-linux-gnueabi-objdump”是 ARM 二进制文件的默认反汇编程序 - 不需要编译。

      要安装它,只需:

      sudo apt-get install binutils-arm-linux-gnueabi

      此软件包中还有其他二进制文件可以为您进一步分析 ARM 二进制文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-23
        • 2011-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多