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 読みます。ロードのあたりは完全スルーだし。