
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