我怎样才能找到部分.init
?节标题有字段Elf32_Word sh_name
。所以我想我必须遍历所有部分才能找到一个名称.init
但sh_name
不是字符数组的部分。它是字符串表中的条目索引。字符串表在哪里?ELF 标头中有字段elfHdr.e_shstrndx
。它是字符串表所在的部分的索引。所以要计算字符串表的偏移量,我使用下面描述的公式。
offset = ((elfHdr.e_shstrndx)*elfHdr.e_shentsize)+elfHdr.e_shoff,
where
elfHdr.e_shstrndx = index where we can find .shstrtab
elfHdr.e_shentsize = Size of each Section Header
elfHdr.e_shoff = Offset at which section header starts.
但结果偏移量不是字符串表的正确偏移量。我已经在各种文件上尝试过。可能有另一种方法来确定 section 是否.init
存在?