arm な init の Program Header

以下なカンジ。

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  EXIDX          0x01be28 0x0001be28 0x0001be28 0x00008 0x00008 R   0x4
  PHDR           0x000034 0x00000034 0x00000034 0x00120 0x00120 R E 0x4
  INTERP         0x000154 0x00000154 0x00000154 0x00019 0x00019 R   0x1
      [Requesting program interpreter: /lib/ld-linux-armhf.so.3]
  LOAD           0x000000 0x00000000 0x00000000 0x1be34 0x1be34 R E 0x8000
  LOAD           0x01c5a0 0x000245a0 0x000245a0 0x00cdc 0x00d34 RW  0x8000
  DYNAMIC        0x01cafc 0x00024afc 0x00024afc 0x00128 0x00128 RW  0x4
  NOTE           0x000170 0x00000170 0x00000170 0x00044 0x00044 R   0x4
  GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RW  0x4
  GNU_RELRO      0x01c5a0 0x000245a0 0x000245a0 0x00a60 0x00a60 R   0x1

あ、どこかで実行ファイルがロードされて云々な話をしたような記憶がおぼろに蘇えってきていたりして (ぇ
つうか、さっき始めて知ったのですが、ELF バイナリって上で言うと /lib/ld-linux-armhf.so.3 が ELF インタプリタと呼ばれるものであり、ELF インタプリタに ELF バイナリなファイルを渡してやれば実行も可能って知りませなんだ。
BINARY HACKS の main に辿りつくまでの HACK #58 とか見てるんですが ELF インタプリタが実行開始してから後の方が長いすな。
今更感満点ですが、Linkers & Loaders 読みます。ロードのあたりは完全スルーだし。