PE文件格式(2)
2007-01-14 20:15:04 来源:WEB开发网bsssection
-----------
还有未初始化的数据,例如"staticintk;"该节的'PointerToRawData'为0,表明其内容不在文件内,特征位'IMAGE_SCN_CNT_UNINITIALIZED_DATA'指明所有内容必须在加载时间置0。这意味着有节头,但没有节在文件内,该节被加载器创建,并且包含全0字节。其长度是'SizeOfUninitializedData'.典型名字如'.bss','BSS'。
有的节数据没有被数据目录指向,其内容和结果被编译器支持,不是被链接器支持。堆栈段和堆段不是可执行文件的节,但是被加载器创建。其大小为optionalheader内的stacksize和heapsize
.
版权copyright
---------
开始于一个简单的目录'IMAGE_DIRECTORY_ENTRY_COPYRIGHT'.其内容是一个版权或者一个非0结尾的串,象"Gonkulatorcontrolapplication,copyright(c)1848Hugendubel&Cie".
该串被使用命令行或者描述文件提供给链接器。该串不是必须的,可以被舍弃。他不是可写的,实际上程序不必访问他。链接器将找出是否有一个可以舍弃的不可写的段,创建一个名字为'.descr'的段。然后把串填入该段,让版权目录指针指向他。该节的特征字'IMAGE_SCN_CNT_INITIALIZED_DATA'必须置1。
输出符号exportedsymbols
----------------
下面一个简单的事情是输出目录'IMAGE_DIRECTORY_ENTRY_EXPORT'.该目录是DLL内的典型目录。他包括输出函数的入口点,输出对象的地址等。该节必须是初始化数据和可读的。不可以是可废弃的,因为进程可能在运行时间调用"GetProcAddress()"找出函数的入口。该节一般称为'.edata'.它一般被并入其他节。
更多精彩
赞助商链接