gpt4 book ai didi

linux - 在 ELF 文件中搜索 .init 部分

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:20 26 4
gpt4 key购买 nike

如何找到 .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.

但是查出来的offset并不是String Table的正确offset。我已经在各种文件上试过了。可能有另一种方法可以确定部分是否为 .init

最佳答案

看来你几乎做对了。

您计算的偏移量 是字符串表部分的部分标题的文件偏移量(以字节为单位)。同样,这是本节标题的开头,它将是 Elf32_Shdr 类型的结构。现在您应该阅读它的 sh_offsetthis 将是您要查找的字符串列表的偏移量。

关于linux - 在 ELF 文件中搜索 .init 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17029206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com