二进制文件概述,相对虚拟地址解释

《软件漏洞解析能力》笔记

RVA是相对虚构地址(Relative Virtual
Address)的缩写,看名就能够猜到其意义,它是一个“相对”地址,也足以说是“偏移量”,PE文件的各类数据结构中涉嫌到地点的字段当先二分之一都以以奥迪Q3VA代表的。

PE文件:

正确地说,PAJEROVA正是当PE文件棉被服装载到内部存款和储蓄器中后,有些数据的职责相对于文件头的偏移量。举例,即使Windows装载器将三个PE文件装入
00400000h处的内部存款和储蓄器中,而有些节中的有个别数据棉被服装入0040xxxxh处,那么那一个数额的LacrosseVA就是(0040xxxxh-
00400000h)=xxxxh,反过来讲,将TiguanVA的值加上文件棉被服装载的集散地址,就能够找到数据在内存中的实际上地址。

  PE(Portable
Executable)是win32阳台下可实践听从的数额格式。平日周围的比如*.exe和*.dll都是PE文件。

PE文件中冒出奥迪Q5VA的
概念是因为PE的内部存款和储蓄器影像和磁盘文件映疑似不一致的,同意气风发数据相对于文件头的偏移量在内存中和在磁盘文件中或然是例外的,为了进步成效,PE文件头中使用的
都以内部存款和储蓄器印象中的偏移量,也正是福睿斯VA。从图17.3中也得以赢得另叁个定论,那正是SportageVA仅仅是对此地处节中的数据来说的,对于文本头和节表来讲无所谓途观VA和文书偏移,因为它们在被映射到内部存款和储蓄器中后无论是深浅可能摇头都不会有此外更改。

  可试行文件:蕴含二进制代码,字符串,菜单,Logo,位图字体等。

 

  运维时操作系统会按PE文件的预订定位财富并装载入内部存款和储蓄器。可实施文件
——>拆分——>若干数额节<——差异的财富。

2、汇编中设想地址(VRA)与公事偏移地址(FileOffset)的互相调换:

  规范PE文件日常包括:.text(编写翻译器发生,贮存二进制代码,
反汇编和调节和测量检验的靶子)、.data(早先化数据块)、.idata(使用的外来函数如动态链接库与公事消息)、.rsrc(寄存程序能源),还包含别的如.reloc、.edata、.tls、.rdata等。

+———+———+———+———+———+———+

虚构内部存储器:

|  段名称   设想地址  设想大小  物理地址  物理大小   标识   |

  Windows内部存款和储蓄器:1.物理内部存款和储蓄器层面;2.设想内部存款和储蓄器层面。

+———+———+———+———+———+———+

  物理内部存款和储蓄器平日内核等级ring0技艺收看;常常顾客方式下看到的为Windows客商态内部存款和储蓄器映射机制下的虚构内部存款和储蓄器。

|  Name     VOffset    VSize    ROffset    RSize      Flags |

  内部存款和储蓄器管理器可以使进度在其实只有512MB物理内部存款和储蓄器的气象下使进度“认为”自身具备4GB内部存款和储蓄器(此中满含代码,
栈空间,财富区,动态链接库等)。

+———+———+———+———+———+———+

图片 1

|  .text   00001000   00000092  00000400  00000200  60000020|

  这种场地和实际生活中国际清算银行行行平常,你必要用的钱其实并不等于你抱有的财富,银行其实具有的金额数稍低于全数储户的能源和。

|  .rdata  00002000   000000F6  00000600  00000200  40000040|

  那万大器晚成有客商供给收取超出实际金额数咋做,操作系统原理中有“虚构内部存款和储蓄器”概念,
即在这里种情状下有的时候会将“部分硬盘空间”临时作为内部存款和储蓄器使用。(两个“虚构内部存储器“概念对象区别,不宜一概而论)

|  .data   00003000   0000018E  00000800  00000200  C0000040|

PE文件与虚构内部存款和储蓄器之间的照射

|  .rsrc   00004000   000003A0  00000A00  00000400  C0000040|

  (1).文件偏移地址(File Offset):数据在PE文件中的地址,在磁盘上存放时相对于文件起头的偏移。

+———+———+———+———+———+———+

  (2).装载基址(Image Base):PE装入内部存款和储蓄器时的营地址。暗许EXE文件在内部存款和储蓄器中的营地址为0x00400000,DLL为0x10000000。当然地点可由编写翻译选项修改。

文件虚构偏移地址和文书物理偏移地址的计算公式如下:

  (3).虚构内部存款和储蓄器地址(Virtual
Address,VA):PE文件中的指令棉被服装入内部存款和储蓄器后的地点。

 

  (4).相对虚构地址(Relative Virtual
Address,RAV4VA):内部存款和储蓄器地址相对于映射基址(即装载基址)的偏移量。

>>>>>>>VaToFileOffset( 设想地址转文件偏移地址)

  VA、Image Base、安德拉VA之间关系:

如VA = 00401000 (设想地址)

        VA = Image Base + RVA;

ImageBase = 00400000 (基地址)

发表评论

电子邮件地址不会被公开。 必填项已用*标注