如何定位elf里面哪里使用了rodata的数据

如何定位elf里面哪里使用了rodata的数据,第1张

在readelf的输出中:第1行,ELFHeader:指名ELF文件头开始。

第2行,Magic魔数,用来指名该文件是一个ELF目标文件。

第一个字节7F是个固定的数;

后面的3个字节正是E,L,F三携孝个字母的ASCII形式。

第3行,CLASS表示文件类型,这里是32位的ELF格式

第4行,Data表示文件中的数据是按照什么格式组织(大端或小端)的,不同处理器平台数据组织格式可能就不同,段弊如x86平台为小端存储格式。

第5行,当前ELF文件头版本号,这里版本号为1。

第6行,OS/ABI,指出 *** 作系统类型,ABI是ApplicationBinaryInterface的缩写。

第7行,ABI版本号,当前为0。

第8行,Type表示文件类型。

ELF文件有3种类型,一种是如上所示的Relocatablefile可重定位目标文件,一种是可执行文件(Executable),另外一种是共享库(SharedLibrary)。

第9行,机器平台类型。

第10行,当前目标文件的版握隐族本号。

第11行,程序的虚拟地址入口点,因为这还不是可运行的程序,故而这里为零。

第12行,与11行同理,这个目标文件没有ProgramHeaders。

第13行,sections头开始处,这里208是十进制,表示从地址偏移0xD0处开始。

ELF格铅早基式文件中segment与section到底有什么区别?

ELF中的section主要提供给Linker用的, 而segment提供给Loader用. Linker需要关心.text, .rel.text, .data, .rodata等等, 一个重点是link时要做relocation. 而 Loader 只需要知道 Read/睁备Write/Execute. a.out格式没有这种区槐谨分, 我想ELF这么做提供了更多的灵活性


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8207937.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存