But in the attached figure, you can see that at offset 464 there are only zeros.
Incorrect: 01 , 20 , 29 , 12 , etc. are not βonly zerosβ the last time I checked.
I believe the import table starts at offset 528
No, it is not. For some reason, you expect to find the Microsoft PE style entry table in the ELF file. This is not true.
The equivalent of the import table in ELF is contained in two tables. One contains fixed-size Elf{32,64}_Sym :
typedef struct { Elf32_Word st_name; Elf32_Addr st_value; Elf32_Word st_size; unsigned char st_info; unsigned char st_other; Elf32_Section st_shndx; } Elf32_Sym;
and is contained in the .dynsym section.
Another table is contained in the .dynstr section (which in your file starts at offset 528) and has only rows (variable size) separated by the NUL .
.st_name in the first table refers to the offset in .dynstr .
Employed Russian
source share