如何定位elf里面哪里使用了rodata的数据
发布网友
发布时间:2022-05-20 12:53
我来回答
共1个回答
热心网友
时间:2023-10-21 15:03
在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处开始。