Hatena::ブログ(Diary)

ゆずさん研究所

 | 

2013/10/13

【ELF形式】.note.ABI-tagセクション

| 06:43

徹夜でやってて、たまに寝落ちが入ってきたので、そろそろ投げやりモードですが(笑)

セクションヘッダのダンプ。

$ od -x -A x -w16 -j0x119c -N0x28 sample
00119c 0023 0000 0007 0000 0002 0000 8168 0804
0011ac 0168 0000 0020 0000 0000 0000 0000 0000
0011bc 0004 0000 0000 0000
0011c4


Elf_Shdrバイナリ項目バイナリの意味
.sh_name0x00000023.shstrtabにおけるセクション名の位置".note.ABI-tag"
.sh_type0x00000007(SHT_NOTE)
.sh_flags0x00000002各種フラグロード時にメモリ上に領域確保するセクション(SHF_ALLOC)
.sh_addr0x08048168ロード先アドレス-
.sh_offset0x00000168ELF形式中でのセクションの位置-
.sh_size0x00000020セクションのバイトサイズ-
.sh_link0x00000000(セクションのタイプ依存で利用)-
.sh_info0x00000000(同上)-
.sh_addralign0x00000004セクションがメモリにロードされる際のバイトアラインメント-
.sh_entsize0x00000000構造体配列になっているセクションで利用される。配列要素のサイズ-

セクションのダンプ。

$ od -x -A x -w16 -j0x168 -N0x20 sample
000168 0004 0000 0010 0000 0001 0000 4e47 0055
000178 0000 0000 0002 0000 0006 0000 0018 0000
000188

$ readelf -x2 sample

セクション '.note.ABI-tag' の 十六進数ダンプ:
  0x08048168 04000000 10000000 01000000 474e5500 ............GNU.
  0x08048178 00000000 02000000 06000000 18000000 ................

唐突に「GNU」ってのがちょっと笑えますが(グニュ!って)、バイナリとアスキーが混在しているようです。
このセクションタイプが「SHT_NOTE」なのが気になるところですが、man elfによると、

SHT_NOTE       This section holds information that marks  the
               file in some way.

「このセクションは、何らかの方法でファイルに印をつける情報を保持している」だそうです。なんのこっちゃ。

Google検索もしてみましたが、海外サイト含めてあまり話題に上がってないようなので、後に回します。リンカのソースコードを見るしかないのでしょうね。

 |