리눅스 ELF 의 GOT, PLT, GOT.PLT?
아래는 readelf -S 로 어떤 ELF 의 섹션헤더를 출력한 것입니다.
아래에 보시면 .plt, .got 섹션이 있고, 이건 문서나 책 등에 뭔지 잘 나와있어서 그렇게 이해했습니다
그런데 .got.plt(24번) 는 뭔가요?
이건 구글링해도 그냥 got, plt 얘기만 나오고 책에도 없어서 뭔지 알수가없네요
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .interp PROGBITS 08048154 000154 000013 00 A 0 0 1
[ 2] .note.ABI-tag NOTE 08048168 000168 000020 00 A 0 0 4
[ 3] .note.gnu.build-i NOTE 08048188 000188 000024 00 A 0 0 4
[ 4] .hash HASH 080481ac 0001ac 00034c 04 A 6 0 4
[ 5] .gnu.hash GNU_HASH 080484f8 0004f8 00005c 04 A 6 0 4
[ 6] .dynsym DYNSYM 08048554 000554 000700 10 A 7 1 4
[ 7] .dynstr STRTAB 08048c54 000c54 0004fd 00 A 0 0 1
[ 8] .gnu.version VERSYM 08049152 001152 0000e0 02 A 6 0 2
[ 9] .gnu.version_r VERNEED 08049234 001234 0000d0 00 A 7 3 4
[10] .rel.dyn REL 08049304 001304 000028 08 A 6 0 4
[11] .rel.plt REL 0804932c 00132c 000320 08 A 6 13 4
[12] .init PROGBITS 0804964c 00164c 000030 00 AX 0 0 4
[13] .plt PROGBITS 0804967c 00167c 000650 04 AX 0 0 4
[14] .text PROGBITS 08049cd0 001cd0 0120dc 00 AX 0 0 16
[15] .fini PROGBITS 0805bdac 013dac 00001c 00 AX 0 0 4
[16] .rodata PROGBITS 0805bde0 013de0 004130 00 A 0 0 32
[17] .eh_frame_hdr PROGBITS 0805ff10 017f10 00002c 00 A 0 0 4
[18] .eh_frame PROGBITS 0805ff3c 017f3c 00009c 00 A 0 0 4
[19] .ctors PROGBITS 08060ef0 018ef0 000008 00 WA 0 0 4
[20] .dtors PROGBITS 08060ef8 018ef8 000008 00 WA 0 0 4
[21] .jcr PROGBITS 08060f00 018f00 000004 00 WA 0 0 4
[22] .dynamic DYNAMIC 08060f04 018f04 0000e8 08 WA 7 0 4
[23] .got PROGBITS 08060fec 018fec 000008 04 WA 0 0 4
[24] .got.plt PROGBITS 08060ff4 018ff4 00019c 04 WA 0 0 4
[25] .data PROGBITS 080611a0 0191a0 00012c 00 WA 0 0 32
[26] .bss NOBITS 080612e0 0192cc 000c40 00 WA 0 0 32
[27] .gnu_debuglink PROGBITS 00000000 0192cc 000008 00 0 0 1
[28] .shstrtab STRTAB 00000000 0192d4 0000f2 00 0 0 1
".got.plt" http://www.acsu.b
".got.plt"
http://www.acsu.buffalo.edu/~charngda/elf.html
RET ;My life :P
댓글 달기