检查是否截断了ELF文件

时间:2016-02-26 15:30:05

标签: c elf

我正在尝试使用elf信息来获取文件的大小,以检查文件是否未被截断。 我现在正在做的是使用lseek(fd, 0, SEEK_END)将文件的大小与(all sections + elf->e_ehsize + (elf->e_phnum * elf->e_phentsize) + (elf->e_shnum * elf->e_shentsize))的大小进行比较,但这似乎不正确。你们有没有想过如何知道精灵文件是否被截断?

编辑:我只允许使用glibc

1 个答案:

答案 0 :(得分:1)

  

我现在正在将文件的大小...与(all sections + elf->e_ehsize + (elf->e_phnum * elf->e_phentsize) + (elf->e_shnum * elf->e_shentsize))的大小进行比较,但这看起来并不正确。

您可能忽略了部分对齐。除了sh_offset之外,您还需要注意sh_size