2013-10-12から1日間の記事一覧

【ELF形式】ELFヘッダ(1)

ELF形式について、徹底的に調べ尽くしてみます。ELFヘッダの構造体の定義は、「/usr/include/elf.h」に、データ型の定義は「/usr/include/stdint.h」でそれぞれ定義されています。 /* /usr/include/elf.h */ 26 /* Standard ELF types. */ 27 28 #include <stdint.h> 2</stdint.h>…

【ELF形式】.interpセクション

前回は、.shstrtabセクションからセクション名を抽出し、セクションヘッダ一覧に代入しました。 オフセット 内容 サイズ 管理セクション名 0x0000114c セクションヘッダ0 28h(40d)バイト "\0" 0x00001174 セクションヘッダ1 28h(40d)バイト ".interp" 0x0000…

【ELF形式】セクションヘッダとセクションの関係

今回、セクションヘッダが30個あるという情報を、ELF形式ファイルの先頭から48(0x30)バイト目の位置にある2バイトの情報(e_shnum)から取得しましたが、これはつまり、セクション実体が30個あるということでもあります。セクションヘッダとは、それに対応…

【ELF形式】ELFヘッダ(2)

今回は、以下のソースコードをコンパイルして、そのバイナリを解析します。 /* sample.c */ 1 #include <stdio.h> 2 3 int main(void) 4 { 5 return 0; 6 } まずコンパイル。 $ gcc sample.c -o sample -Wallodコマンドで、実行ファイルの先頭にあるELFヘッダ(52バイ</stdio.h>…