Start of section headers
的值必须 32
字节对齐。readelf -h lib.so
查看 Start of section headers
的值。ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: DYN (Shared object file)
Machine: AArch64
Version: 0x1
Entry point address: 0xc6f0
Start of program headers: 64 (bytes into file)
Start of section headers: 381358 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 9
Size of section headers: 64 (bytes)
Number of section headers: 25
Section header string table index: 24
381358
,十六进制为 0x5D1AE
,需要填充两字节 00
使其对齐。0x5D1B0
,在文件偏移 0x28
处修改为相应的值。