Ubuntu 18.04
我有一个ELF64
从 C 源文件编译并与共享对象链接的简单二进制文件。我尝试检查它objdump
并得到以下困惑:
$ objdump -d -j .plt bin
bin: file format elf64-x86-64
Disassembly of section .plt:
00000000000006a0 <.plt>:
6a0: ff 35 62 09 20 00 pushq 0x200962(%rip) # 201008 <_GLOBAL_OFFSET_TABLE_+0x8>
6a6: ff 25 64 09 20 00 jmpq *0x200964(%rip) # 201010 <_GLOBAL_OFFSET_TABLE_+0x10>
6ac: 0f 1f 40 00 nopl 0x0(%rax)
00000000000006b0 <foo@plt>:
6b0: ff 25 62 09 20 00 jmpq *0x200962(%rip) # 201018 <foo>
6b6: 68 00 00 00 00 pushq $0x0
6bb: e9 e0 ff ff ff jmpq 6a0 <.plt>
00000000000006c0 <dlopen@plt>:
6c0: ff 25 5a 09 20 00 jmpq *0x20095a(%rip) # 201020 <dlopen@GLIBC_2.2.5>
6c6: 68 01 00 00 00 pushq $0x1
6cb: e9 d0 ff ff ff jmpq 6a0 <.plt>
00000000000006d0 <__printf_chk@plt>:
6d0: ff 25 52 09 20 00 jmpq *0x200952(%rip) # 201028 <__printf_chk@GLIBC_2.3.4>
6d6: 68 02 00 00 00 pushq $0x2
6db: e9 c0 ff ff ff jmpq 6a0 <.plt>
但是,当只从一个部分打印符号时,plt
我没有得到输出:
$ objdump -t -j .plt bin
bin: file format elf64-x86-64
SYMBOL TABLE:
00000000000006a0 l d .plt 0000000000000000 .plt
为什么拆卸时没有plt
打印该部分的符号?objdump -t