网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计下载 > DELPHI类作品 > 正文

delphiPE文件格式研究及PEDUMP的实现

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
.1.3 紧接着标志就是File Header,包含了关于PE文件物理分布的一般信息。此结构有7个域,各个域说明如表1.1.4:域说明 Machine该文件运行所要求的CPU。更改此域的值后文件可能就不能正常运行。请参看附加表1.1.4.1。 NumberOfSections文件的节数目。 TimeDateStamp文件创建日期和时间。 PointerToSymbolTable用于调试,通常为0。 NumberOfSymbols用于调试,通常为0。 SizeOfOptionalHeaderOptionalHeader结构大小,必须为有效值。 Characteristics关于文件信息的标记。比如文件是exe还是dll。请参看附加表1.1.4.2。 表1.1.4 常量申明值 IMAGE_FILE_MACHINE_UNKNOWN$0 IMAGE_FILE_MACHINE_I386 { Intel 386 }$014C IMAGE_FILE_MACHINE_R3000 { MIPS little-endian,$160 big-endian }$0162 IMAGE_FILE_MACHINE_R4000 { MIPS little-endian }$0166 IMAGE_FILE_MACHINE_R10000 { MIPS little-endian }$0168 IMAGE_FILE_MACHINE_WCEMIPSV2 { MIPS little-endian WCE v2 }$0169 ………… IMAGE_FILE_MACHINE_IA64 { Intel 64 }$0200 IMAGE_FILE_MACHINE_MIPS16 { MIPS }$0266 IMAGE_FILE_MACHINE_ALPHA64 { ALPHA64 }$0284 IMAGE_FILE_MACHINE_MIPSFPU { MIPS }$0366 IMAGE_FILE_MACHINE_MIPSFPU16 { MIPS }$0466 IMAGE_FILE_MACHINE_AMD64 { AMD K8 }$0500 IMAGE_FILE_MACHINE_TRICORE { Infineon }$0520 IMAGE_FILE_MACHINE_CEF$0CEF 附加表1.1.4.1(Machine对照表) 常量申明值 IMAGE_FILE_RELOCS_STRIPPED { Relocation info stripped from file }$0001 IMAGE_FILE_EXECUTABLE_IMAGE { File is executable }$0002 IMAGE_FILE_LINE_NUMS_STRIPPED { Line nunbers stripped from file }$0004 IMAGE_FILE_LOCAL_SYMS_STRIPPED { Local symbols stripped from file }$0008 IMAGE_FILE_AGGRESIVE_WS_TRIM { Agressively trim working set }$0010 IMAGE_FILE_LARGE_ADDRESS_AWARE { App can handle >2gb addresses }$0020 IMAGE_FILE_BYTES_REVERSED_LO { Bytes of machine word are reversed }$0080 IMAGE_FILE_32BIT_MACHINE { 32 bit word machine }$0100 IMAGE_FILE_DEBUG_STRIPPED { Debugging info stripped from .DBG file }$0200 ………… IMAGE_FILE_SYSTEM { System File }$1000 IMAGE_FILE_DLL { File is a DLL }$2000 IMAGE_FILE_UP_SYSTEM_ONLY { File should only be run on a UP machine }$4000 IM

AGE_FILE_BYTES_REVERSED_HI { Bytes of machine word are reversed }$8000 附加表

  1.1.4.2 (Characteristics对照表) File Header 结构内含最基础的文件信息,同COFF格式文件相比似乎没有什么改变。除了是PE文件头的一部分,它也出现在微软32位编译器所产生的COFF OBJs文件的最前端。在PE header中最后是非常重要的结构Optional header,也是PE header中最大的结构,Optional header这个短语很不好翻译,可以翻译为“可选文件头”,但它通常不是可选,而是一定有的,因为它包含了PE文件的逻辑分布信息,其中很多域包含非常重要的信息,比如ImageBase指明了PE文件优先装载基址,后面相关的RVA*(相对虚拟地址,一个比较重要的概念,参看注解)都是基于此值的。 * RVA(相对虚拟地址):直接的说RVA是虚拟空间中到参考点的一段距离。这里RVA有点类似于文件偏移量的东西。当然它是相对虚拟空间里的一个地址,而不是文件头部。举例说明,如果PE文件装入虚拟地址(VA)空间的$400000处,且进程从虚址$401000开始执行,我们可以说进程执行起始地址在RVA $1000。每个RVA都是相对于模块的起始VA的。PE文件格式要用到RVA是为了减少PE装载器的负担。因为每个模块多有可能被重载到任何虚拟地址空间,如果所有重定位项都使用RVA,那么PE装载器就不必操心那些东西了: 它只要将整个模块重定位到新的起始VA就可以了。其实这有点象相对路径和绝对路径的概念: RVA类似相对路径,VA就象绝对路径。如果有一个域的RVA值为0,则表示此域没有使用。可选文件头(Optional header)结构共有31个域,各个域说明如表1.1.5:域说明 AddressOfEntryPointPE装载器准备运行的PE文件的第一个指令的RVA。 ImageBasePE文件的优先装载地址。如果这个地址被占用,则系统会自动修改它装载到一个空闲的地址。

  SectionAlignment内存中节对齐的参考大小值。例如,如果该值是4096 ($1000),那么每节的起始地址必须是4096的倍数。 FileAlignment 文件中节对齐的参考大小值。例如,如果该值是($200),那么每节的起始地址必须是512的倍数。 MajorSubsystemVersion MinorSubsystemVersionwin32子系统版本。 Win32系统设计下的PE文件此版本通常在4.0以上,否则对话框没有三维效果。 SizeOfImage内存中整个PE映像体的尺寸。即所有头和节经过节对齐的大小。 SizeOfHeaders所有头加节表的大小,也就等于文件尺寸减去文件中所有节的尺寸。

  Subsystem识别PE文件属于哪个子系统。

  • 下一篇资讯: delphi仓库管理系统
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师