ELF ファイルを取得し、そのセクションの名前を印刷する必要があるという宿題を受け取りました。
ELF ヘッダーから直接受け取ったデータのみを使用してすべてを行うことになっています。つまり、「高レベル」の手順を使用することはできません。必要なデータに直接移動する必要があります。
だから、私は最初のセクションの名前を印刷しようとしています。名前が文字列テーブルにあるはずだと知っています。これは私がこれまでに持っているものです:
を使用してELFファイルの開始を取得していますmmap...
elfhead =(Elf32_Ehdr *) mmap...
ELFヘッダーのメンバーを使用してセクションオフセットを取得しています
sectionoffset = elfhead->e_shoff
それから
section = (Elf32_Shdr*)(elfhead + sectionoffset)
nameoffset = section->sh_name
stringoffset = elfhead->e_shstrndx;
明確にするために-
elfhead
私はエルフヘッダーを持っています- セクションにセクションヘッダーがあります
stringoffset
文字列テーブルがあるはずのセクションテーブル内にインデックスがあります- 最初のセクション名があると思われる文字列テーブルに
nameoffset
インデックスがあります。
上記のコードが与えられた場合、ファーストネームに移動して印刷するにはどうすればよいですか?