FileSiz:文件大小,段在文件中大小。 MemSiz:内存大小,段在内存中大小。 Flags:段标识,段属性:只读属性(R),只写属性(W),可执行属性(E)。 Align:对齐方式。 2.3 节区 ELF文件中包含多种节(Section),这些节在文件的编译、链接及执行过程中发挥关键作用。以下是一些常见的ELF文件节: .text:包含程序的...
Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align PHDR 0x000040 0x0000000040 0x000000000040 0x000310 0x000310 R 0x8 INTERP 0x1be6a0 0x00001be6a0 0x0000001be6a0 0x00001c 0x00001c R 0x10 [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] LOAD 0x000000 ...
MemSiz可能大于FileSiz,有数据的部分是FileSiz,最终搬运的大小是MemSiz,MemSiz比FileSiz多的地方需要补零 补零的是.bss 装载到内存VirtAddr开始,连续MemSiz个字节的区域中 所以OS装载ELF可执行文件的过程,就是把程序头表中,Type伪LOAD类型的项目,把ELF文件中从offset开始的FileSiz字节的内容,拷贝到内存VirtAddr开始...
PhysAddr:此成员仅用于与物理地址相关的系统中 FileSiz:此成员给出段在文件映像中所占的字节数 MemSiz:此成员给出段在内存映像中占用的字节数 Flg:该段的属性,R(可读),E(可执行),W(可写) Align:表示该段的要求字节对齐属性 注意,MemSize可能与FileSize不等,主要是因为.bss段只占据内存空间,不占据文件空间。
FileSiz MemSiz Flags Align PHDR 0x0000000000000040 0x0000000000000040 0x0000000000000040 0x00000000000001f8 0x00000000000001f8 R E 0x8 INTERP 0x0000000000000238 0x0000000000000238 0x0000000000000238 0x000000000000001c 0x000000000000001c R 0x1 [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] ...
MemSiz: 该段占用的内存大小(MemSiz >= FileSiz)。 Flg: 读写权限,该段在内存中是否具有读写执行权限。 Align:段的对齐要求。 程序的链接信息也保存在section(节)中,关于链接信息我们可以分为两部分,一部分为库导出的函数/变量,另一部分则是库依赖的其他库的函数/变量。对于描述导出的函数/变量是比较容易的...
FileSiz MemSiz Flags Align PHDR 0x0000000000000040 0x0000000000000040 0x0000000000000040 0x00000000000002a0 0x00000000000002a0 R 0x8 INTERP 0x00000000000002e0 0x00000000000002e0 0x00000000000002e0 0x000000000000001c 0x000000000000001c R 0x1 [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] ...
FileSiz:在ELF文件中所占的长度。 MemSiz:在进程虚拟空间所占的长度。 我们发现第二个Segment,MemSiz > FileSiz,表示在内存中分配的空间大小超过文件实际大小。超过的部分全部初始化为0,作为BSS段。因为数据段和BSS段的唯一区别是,数据段从文件中初始化内容,BSS段内容全部初始化为0。
MemSiz:该字段给出了内存镜像中该段的大小,可能为 0。 Offset:该字段给出了从表开始到该段开头的第一个字节的偏移。 AI检测代码解析 Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flags Align PHDR 0x0000000000000040 0x0000000000000040 0x0000000000000040 ...
FileSiz MemSiz FlagsAlignPHDR0x00000000000000400x00000000000000400x00000000000000400x00000000000001f80x00000000000001f8R E0x8INTERP0x00000000000002380x00000000000002380x00000000000002380x000000000000001c0x000000000000001cR0x1[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] ...