当前位置:首页 > TAG信息列表 > fmvp和mvp的区别王者荣耀的意思

fmvp和mvp的区别王者荣耀的意思

英雄联盟fmvp和mvp有什么区别?fmvp和mvp区别介绍

提问:(软件加密解密技术内幕)optional…

关键词:软件加密技术内幕

回答:

我们已经学习了关于dosheader和peheader中部分成员的知识。这里是pe header中最后、最大或许也是最重要的成员,optionalheader。

(软件加密解密技术内幕)Optional…

 

回顾一下,optionalheader结构是image_nt_headers中的最后成员。包含了pe文件的逻辑分布信息。该结构共有31个域,一些是很关键,另一些不太常用。这里只介绍那些真正有用的域。

这儿有个关于pe文件格式的常用术语:rvarva代表相对虚拟地址。知道什么是虚拟地址吗?相对那些简单的概念而言,rva有些晦涩。简言之,rva是虚拟空间中到参考点的一段距离。我打赌您肯定熟悉文件偏移量: rva就是类似文件偏移量的东西。当然它是相对虚拟空间里的一个地址,而不是文件头部。举例说明,如果pe文件装入虚拟地址(va)空间的400000h处,且进程从虚址401000h开始执行,我们可以说进程执行起始地址在rva 1000h。每个rva都是相对于模块的起始va的。为什么pe文件格式要用到rva呢? 这是为了减少pe装载器的负担。因为每个模块多有可能被重载到任何虚拟地址空间,如果让pe装载器修正每个重定位项,这肯定是个梦魇。相反,如果所有重定位项都使用rva,那么pe装载器就不必操心那些东西了: 它只要将整个模块重定位到新的起始va。这就象相对路径和绝对路径的概念:rva类似相对路径,va就象绝对路径。

 

 

 

 

field

meanings

addressofentrypoint  pe装载器准备运行的pe文件的第一个指令的rva。若您要改变整个执行的流程,可以将该值指定到新的rva,这样新rva处的指令首先被执行。  

imagebase  pe文件的优先装载地址。比如,如果该值是400000h,pe装载器将尝试把文件装到虚拟地址空间的400000h处。字眼”优先”表示若该地址区域已被其他模块占用,那pe装载器会选用其他空闲地址。  

sectionalignment  内存中节对齐的粒度。例如,如果该值是4096 (1000h),那么每节的起始地址必须是4096的倍数。若第一节从401000h开始且大小是10个字节,则下一节必定从402000h开始,即使401000h和402000h之间还有很多空间没被使用。  

 

filealignment  

文件中节对齐的粒度。例如,如果该值是(200h),,那么每节的起始地址必须是512的倍数。若第一节从文件偏移量200h开始且大小是10个字节,则下一节必定位于偏移量400h: 即使偏移量512和1024之间还有很多空间没被使用/定义。

 

  

majorsubsystemversionminorsubsystemversion  win32子系统版本。若pe文件是专门为win32设计的,该子系统版本必定是4.0否则对话框不会有3维立体感。  

sizeofimage  内存中整个pe映像体的尺寸。它是所有头和节经过节对齐处理后的大小。  

sizeofheaders  所有头节表的大小,也就等于文件尺寸减去文件中所有节的尺寸。可以以此值作为pe文件第一节的文件偏移量。  

subsystem  nt用来识别pe文件属于哪个子系统。对于大多数win32程序,只有两类值:windowsgui和 windowscui(控制台)。  

 

datadirectory  一image_data_directory结构数组。每个结构给出一个重要数据结构的rva,比如引入地址表等。  


乐霏号 弘博号

  • 关注微信关注微信

猜你喜欢

微信公众号