2013-06-11 13 views
7

インデックスがあるString Tableに ".dynsym"が見つかりました。 次に、sh_name = index & & sh_type = SHT_DYNSYMのセクションが見つかりました。 私はsh_offset = 464とsh_size = 64を得ました。 しかし、オフセット464にはゼロしかないことが添付された画像で分かります。ELFファイルのインポートテーブルはどこにありますか?

私はインポート表は、オフセット528の質問があるのを開始したとします。

enter image description here

答えて

6

しかし、あなたは上のオフセットが、添付の写真で見ることができます)%、それを計算する方法464にはゼロしかありません。

間違っ:01202912など私がチェックした最後の時間ない "だけゼロ" です。

私はインポート表いいえ、そうでない528

をオフセットに開始することとします。何らかの理由で、Microsoft PEスタイルのインポートテーブルをELFファイルで見つけることが予想されます。そこにはありません。

テーブルには、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であることを示します。

+0

спасибозаответ。しかし、オフセット464にはElf32_Symレコードはありません。 sh_offset = 464 .dynsymセクションのヘッダから取得しました。奇妙なことに、sh_size = 64とsizeof(Elf32_Sym)= 16と同時に。 – Qwerty

+0

私はちょっと考えました。 64バイトは4レコード(Elf32_Sym)ですか? – Qwerty

関連する問題