ELF文件中的导入表在哪里?

Qwe*_*rty 9 linux elf import-table

我在String Table中找到了".dynsym",得到了索引.然后我找到了sh_name = index && sh_type = SHT_DYNSYM的节.所以我得到sh_offset = 464和sh_size = 64.但你可以在附图中看到,在偏移464上只有零.

我想导入表在偏移量528上开始.问题是:如何计算它%)

在此输入图像描述

Emp*_*ian 8

但是你可以在附图中看到,在偏移464上只有零.

错误:01,20,29,12等是不是 "只是零"我最后一次检查.

我想导入表在偏移量528上开始

不,不是的.出于某种原因,您希望PE在ELF文件中找到Microsoft 风格的导入表.它不在那里.

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;
Run Code Online (Sandbox Code Playgroud)

并包含在该.dynsym部分中.

另一个表包含在.dynstr部分中(在您的文件中以偏移量528开始),并且只包含由NUL字符分隔的(可变大小)字符串.

.st_name一个表中的偏移是指.dynstr.