下面一个成员是'PhysicalAddress'和'VirtualSize'的32位联合体.在目标文件,该地址是内容被重定位的地址,在可执行文件内是内容的尺寸。实际上该域好像没有被使用,有的链接器填入尺寸有的链接器填入地址,有的链接器填入0。
下一个成员是'VirtualAddress',32位,保存当节的数据加载入内存时的RVA。
然后是32位'SizeOfRawData',是四舍五入到下个FileAlignment'倍数的大小。
下一个是'PointerToRawData',32位,它是从文件起始到节数据的偏移量。如果是0,节数据不包含在文件内,在加载时被确定。
然后是'PointerToRelocations',32位,和'PointerToLinenumbers',32位,'NumberOfRelocations',16位,'NumberOfLinenumbers',16位.所有这些信息仅仅用于目标文件。可执行文件有一个特殊的基准重定位目录,如果存在行号信息,一般包含在特殊目的的调试段或其他。
最后一个是32位的'Characteristics',它是一组标志描述如何处理节的内存。
bit5(IMAGE_SCN_CNT_CODE),置1,节内包含可执行代码。
bit6(IMAGE_SCN_CNT_INITIALIZED_DATA)置1,节内包含的数据在执行前是确定的。
bit7(IMAGE_SCN_CNT_UNINITIALIZED_DATA)置1,本节包含未初始化的数据,执行前即将被初始化为0。一般是BSS.
bit9(IMAGE_SCN_LNK_INFO)置1,节内不包含映象数据除了注释,描述或者其他文档外,是一个目标文件的一部分,可能是针对链接器的信息。比如哪个库被需要。
bit11(IMAGE_SCN_LNK_REMOVE)置1,在可执行文件链接后,作为文件一部分的数据被清除。
bit12(IMAGE_SCN_LNK_COMDAT)置1,节包含公共块数据,是某个顺序的打包的函数。
bit15(IMAGE_SCN_MEM_FARDATA)置1,不确定。
bit17(IMAGE_SCN_MEM_PURGEABLE)置1,节的数据是可清除的。
bit18(IMAGE_SCN_MEM_LOCKED)置1,节不可以在内存内移动。
bit19(IMAGE_SCN_MEM_PRELOAD)置1,节必须在执行开始前调入。
Bits20to23指定对齐。一般是库文件的对象对齐。
bit24(IMAGE_SCN_LNK_NRELOC_OVFL)置1,节包含扩展的重定位。
bit25(IMAGE_SCN_MEM_DISCARDABLE)置1,进程开始后节的数据不再需要。
bit26(IMAGE_SCN_MEM_NOT_CACHED)置1,节的数据不得缓存。
bit27(IMAGE_SCN_MEM_NOT_PAGED)置1,节的数据不得交换出去。
进入讨论组讨论。相关专题
- 右键发送到"桌面快捷方式"等没了 (4388次浏览)
- 文件系统基础知识 (1707次浏览)
- [J2ME]手机流媒体简单演示(StreamingDemo) (1381次浏览)
- ERP的真正技术瓶颈——详细生产排程 (875次浏览)
- 图象压缩的新革命:JPEG2000全面观察(3) (856次浏览)
- 图象压缩的新革命:JPEG2000全面观察(1) (673次浏览)
- How to cross-compile OpenSSL for ARM (578次浏览)
- 文件格式设计 (446次浏览)
- 抓获doc文档杀手Trojan.Dockiller.b(第1版 (427次浏览)
- 图象压缩的新革命: JPEG2000相关制作工具 (383次浏览)



