哦,忘记补坑了,计算机底层学得渣,其实共享库跟got不一样,got和plt都在heap之下,例如: 节头: [号] 名称 类型 地址 偏移量 大小 全体大小 旗标 链接 信息 对齐 [ 0] NULL 0000000000000000 00000000 0000000000000000 0000000000000000 0 0 0 [ 1] .interp PROGBITS 0000000000400200 00000200 000000000000001c 0000000000000000 A 0 0 1 [ 2] .note.ABI-tag NOTE 000000000040021c 0000021c 0000000000000020 0000000000000000 A 0 0 4 [ 3] .note.gnu.build-i NOTE 000000000040023c 0000023c 0000000000000024 0000000000000000 A 0 0 4 [ 4] .gnu.hash GNU_HASH 0000000000400260 00000260 0000000000000028 0000000000000000 A 5 0 8 [ 5] .dynsym DYNSYM 0000000000400288 00000288 0000000000000138 0000000000000018 A 6 1 8 [ 6] .dynstr STRTAB 00000000004003c0 000003c0 00000000000000a4 0000000000000000 A 0 0 1 [ 7] .gnu.version VERSYM 0000000000400464 00000464 000000000000001a 0000000000000002 A 5 0 2 [ 8] .gnu.version_r VERNEED 0000000000400480 00000480 0000000000000040 0000000000000000 A 6 1 8 [ 9] .rela.dyn RELA 00000000004004c0 000004c0 0000000000000048 0000000000000018 A 5 0 8 [10] .rela.plt RELA 0000000000400508 00000508 00000000000000f0 0000000000000018 A 5 12 8 [11] .init PROGBITS 00000000004005f8 000005f8 000000000000001a 0000000000000000 AX 0 0 4 [12] .plt PROGBITS 0000000000400620 00000620 00000000000000b0 0000000000000010 AX 0 0 16 [13] .text PROGBITS 00000000004006d0 000006d0 0000000000000252 0000000000000000 AX 0 0 16 [14] .fini PROGBITS 0000000000400924 00000924 0000000000000009 0000000000000000 AX 0 0 4 [15] .rodata PROGBITS 0000000000400930 00000930 0000000000000068 0000000000000000 A 0 0 8 [16] .eh_frame_hdr PROGBITS 0000000000400998 00000998 000000000000002c 0000000000000000 A 0 0 4 [17] .eh_frame PROGBITS 00000000004009c8 000009c8 00000000000000d4 0000000000000000 A 0 0 8 [18] .init_array INIT_ARRAY 0000000000600aa0 00000aa0 0000000000000008 0000000000000000 WA 0 0 8 [19] .fini_array FINI_ARRAY 0000000000600aa8 00000aa8 0000000000000008 0000000000000000 WA 0 0 8 [20] .jcr PROGBITS 0000000000600ab0 00000ab0 0000000000000008 0000000000000000 WA 0 0 8 [21] .dynamic DYNAMIC 0000000000600ab8 00000ab8 00000000000001d0 0000000000000010 WA 6 0 8 [22] .got PROGBITS 0000000000600c88 00000c88 0000000000000008 0000000000000008 WA 0 0 8 [23] .got.plt PROGBITS 0000000000600c90 00000c90 0000000000000068 0000000000000008 WA 0 0 8 [24] .data PROGBITS 0000000000600d00 00000d00 0000000000000040 0000000000000000 WA 0 0 32 [25] .bss NOBITS 0000000000600d40 00000d40 0000000000000018 0000000000000000 WA 0 0 16 [26] .comment PROGBITS 0000000000000000 00000d40 000000000000004d 0000000000000001 MS 0 0 1 [27] .shstrtab STRTAB 0000000000000000 00000d8d 00000000000000f8 0000000000000000
哦,忘记补坑了,计算机底层学得渣,其实共享库跟got不一样,got和plt都在heap之下,例如: