我有一个 ELF 二进制文件,它只包含程序头表中的两个 LOAD 段,一个用于代码,一个用于数据。readelf -a
告诉我没有节标题。
如果我尝试使用 ARM cross binutils 在我的 amd64 机器上反汇编 ARM 二进制文件,它不会给我正确的输出。然而,据我了解,二进制文件的架构不应该与这个问题相关,因为这个问题与 ELF 相关。
$ file ./binary
./binary: ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux), statically linked, stripped
$ arm-linux-gnueabi-objdump -d ./binary
./binary: file format elf32-littlearm
$ arm-linux-gnueabi-objdump -x ./binary
./binary: file format elf32-littlearm
./binary
architecture: arm, flags 0x00000102:
EXEC_P, D_PAGED
start address 0x0004c8d8
Program Header:
LOAD off 0x00000000 vaddr 0x00010000 paddr 0x00010000 align 2**16
filesz 0x0003d27e memsz 0x0003d27e flags r-x
LOAD off 0x00005c78 vaddr 0x00085c78 paddr 0x00085c78 align 2**16
filesz 0x00000000 memsz 0x00000000 flags rw-
STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**4
filesz 0x00000000 memsz 0x00000000 flags rw-
private flags = 5000400: [Version5 EABI] [hard-float ABI]
Sections:
Idx Name Size VMA LMA File off Algn
SYMBOL TABLE:
no symbols
有没有办法让 objdump 反汇编 ELF 段?