9

我在字符串表中找到了“.dynsym”,得到了索引。然后我找到了 sh_name = index && sh_type = SHT_DYNSYM 的部分。所以我得到了 sh_offset = 464 和 sh_size = 64。但是你可以在附图中看到,在偏移量 464 上只有零。

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

在此处输入图像描述

4

1 回答 1

8

但是您可以在附图中看到,偏移量 464 上只有零。

错误:01, 20,2912在我上次检查时不是“仅零”。

我想导入表从偏移量 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;

并包含在该.dynsym部分中。

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

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

于 2013-06-12T14:12:13.563 回答