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

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

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

$ 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_name 0x00000023 .shstrtabにおけるセクション名の位置 ".note.ABI-tag"
.sh_type 0x00000007 (SHT_NOTE)
.sh_flags 0x00000002 各種フラグ ロード時にメモリ上に領域確保するセクション(SHF_ALLOC)
.sh_addr 0x08048168 ロード先アドレス -
.sh_offset 0x00000168 ELF形式中でのセクションの位置 -
.sh_size 0x00000020 セクションのバイトサイズ -
.sh_link 0x00000000 (セクションのタイプ依存で利用) -
.sh_info 0x00000000 (同上) -
.sh_addralign 0x00000004 セクションがメモリにロードされる際のバイトアラインメント -
.sh_entsize 0x00000000 構造体配列になっているセクションで利用される。配列要素のサイズ -

セクションのダンプ。

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