如何转储ELF文件的.dynsym节?

问题描述 投票:1回答:1

As far as I know 。dynsym部分是按顺序排列的一堆ElfN_Sym结构,因此我试图转储所有符号的st_name,但显然我解析的方式出了问题文件。

我做的第一件事是通过迭代节头并通过字符串表比较sh_name字段来获得。dynsym节的索引。然后,我通过使用sh_addr字段获得了。dynsym的地址:

Elf64_Sym *symbol = (Elf64_Sym *) shdr[i].sh_addr;
printf("%s\n", symbol->st_name);  

但是由于某种原因,这是SEGFAULTing,我做错了什么,做这件事的正确方法是什么?另外,使用shdr [i] .sh_addr&shdr [i]之间有区别吗?

c linux gcc elf
1个回答
0
投票

但是出于某种原因,这是SEGFAULTing,

© www.soinside.com 2019 - 2024. All rights reserved.