pe电脑内存查看 (PE看电脑内存)

昨天分享了一篇PE结构详解(加壳脱壳必备知识),本篇是上一篇续篇,主要介绍关于PE结构的三种存储地址 VA、RVA、FILEOFFSET及转换方式,希望对你有所帮助。电脑

一、关于VA、RVA、FILEOFFSETVA:虚拟地址,PE文件映射到内存后的地址。RVA:相对虚拟地址,内存地址相对于映射基地址的偏移地址。FileOffset:文件偏移地址,相对PE文件在磁盘上的文件开头的偏移地址。

在磁盘上文件是按照IMAGE_OPTIONAL_HEADER的FileAligment值进行对其的。而内存中是按照IMAGE_OPTIONAL_HEADER的SectionAligment值进行对其的,关于该信息请参考PE结构详解(加壳脱壳必备知识)。

FileAligment是以磁盘扇区为单位进行对齐,最小为512字节(十六进制:0x200),SectionAligment是以内存分页为单位进行对齐,一般win32位4K(十六进制:0x1000)。

通常情况FileAligment与SectionAligment值是相同的,这样磁盘文件与内存文件的结构完全一样。当不一样时,磁盘文件与内存映像的同一节表数据在磁盘和内存的偏移不同,则需要进行地址转换了,一般转换方式分为VA(虚拟地址)转RVA(相对虚拟地址),RVA(相对虚拟地址)转FileOffset(文件偏移地址)。下面我们还是通过“hello word”案例来举例。helloword代码请见上篇文章PE结构详解(加壳脱壳必备知识)

二、转换方式

1.1 VA转RVA

VA转RVA非常简单,VA值减去IMAGE_OPTIONAL_HEADER结构体中的ImageBase(映像文件装载虚拟地址)字段的值。即:RVA=VA-ImageBase;

1.2 RVA转FileOffset

文件偏移=该数据所在节的起始文件偏移(R.偏移)+(某数据的RVA-该数据所在节的起始RVA)。

在计电脑算偏移时,word类型偏移为2;byte类型偏移为1;Dword类型为4,小伙伴记住后方便计算。

PEID查看 hello word程序


电脑 电脑