我在String Table中find了“.dynsym”,得到了索引。 然后我find了sh_name = index && sh_type = SHT_DYNSYM的部分。 所以我得到了sh_offset = 464和sh_size = 64.但是你可以在附图中看到,在偏移464上只有零。
我想导入表开始偏移量528.问题是:如何计算它%)
但是你可以在附图中看到,在偏移464上只有零。
错误: 01
等我上次检查时不是 “只有零”。
我想,导入表开始偏移量528
不,不是的。 出于某种原因,您期望在ELF文件中找到Microsoft PE
风格的导入表。 这不是在那里。
ELF中的导入表的等价物包含在两个表中。 一个包含Elf{32,64}_Sym
固定大小的记录:
typedef struct { Elf32_Word st_name; /* Symbol name (string tbl index) */ Elf32_Addr st_value; /* Symbol value */ Elf32_Word st_size; /* Symbol size */ unsigned char st_info; /* Symbol type and binding */ unsigned char st_other; /* Symbol visibility */ Elf32_Section st_shndx; /* Section index */ } Elf32_Sym;
并包含在.dynsym
部分。
另一个表包含在.dynstr
部分(在你的文件中,在偏移量528处开始),并且只有由NUL
字符分隔的(可变长度)字符串。
第一个表中的.st_name
引用.dynstr
偏移量。