文字列テーブルに「.dynsym」が見つかり、インデックスを取得しました。次に、sh_name = index && sh_type = SHT_DYNSYM のセクションを見つけました。したがって、sh_offset = 464 および sh_size = 64 を取得しました。しかし、添付の図でわかるように、オフセット 464 にはゼロしかありません。
Import Table はオフセット 528 から始まると思います。問題は、どのように計算するか (%)
文字列テーブルに「.dynsym」が見つかり、インデックスを取得しました。次に、sh_name = index && sh_type = SHT_DYNSYM のセクションを見つけました。したがって、sh_offset = 464 および sh_size = 64 を取得しました。しかし、添付の図でわかるように、オフセット 464 にはゼロしかありません。
Import Table はオフセット 528 から始まると思います。問題は、どのように計算するか (%)
しかし、添付の図を見るとわかるように、オフセット 464 にはゼロしかありません。
間違い: 01
、20
、などは29
、最後に確認したときに「ゼロのみ」ではありません。12
Import Table はオフセット 528 から始まると思います
いいえ、違います。何らかの理由PE
で、ELF ファイル内に Microsoft スタイルのインポート テーブルがあることを期待しています。そこにはありません。
ELF のインポート テーブルに相当するものは、 2 つのテーブルに含まれています。1 つは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
ます。
もう 1 つのテーブルは.dynstr
セクション (ファイルではオフセット 528 から始まる) に含まれており、文字で区切られた (可変サイズの) 文字列だけが含まれていますNUL
。
最初の表の.st_name
は、 のオフセットを指します.dynstr
。