我们收到了一项家庭作业,我们需要在其中获取一个 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
我的字符串表中有第一个部分名称应该是的索引。
鉴于上面的代码,我如何去名字并打印它?