PE地址名词总结及基本概念

来源:互联网 发布:淘宝消息管理器在哪里 编辑:程序博客网 时间:2024/04/29 15:26

1地址

 

PE文件中涉及的地址有四类

1虚拟内存地址(VA)

 

  PE文件对应的进程支配了自己独立的4GB虚拟空间,在这个空间定位的地址是VA,VA的范围是4GB。在VA中VA=进程基地址+RVA.

 

2相对虚拟内存地址(RVA)

   模块:同时加载到进程空间的文件,如一个进程和同时要加载的动态链接库都是模块

         每个模块都有一个基地址。如果两个模块的基地址是相同的,由操作系统来决定模块的具体位置。

    而RVA是针对于模块的概念。是用来定位某个特殊位置距离某个模块基地址的偏移量。

 

3文件偏移地址(FOA)

  FOA      和内存无关,它是指某个位置距离文件头的偏移。

 

4特殊地址

 

2指针 

如果数据结构中的某个字段存储的是一个地址(上诉的四个之一)那么这个字段就是指针

 

3 对齐

1内存对齐

  由于windows操作系统对内存属性的设置以页为单位,所以通常情况下,节在内存中的对齐单位必须是一个页的大小,对于32位的来说这个值是4KB(1000h),对于64位的来说,这个值是8KB(2000h)

2文件对齐

  节在磁盘文件通常是以一个物理扇区的大小作为对齐粒度的值,通常为512字节

 

4Unicode                                        

PE格式涉及字符串的部分均采用ANSI字符串。然而在,在资源列表中,对菜单栏的描述则全部使用Unicode字符串。所以在读取这些资源的字符串就是,首先需要使用一些API函数实现从宽字符集到窄字符集的转换

Unicode字符串有时并不是以\0结尾,要注意。

在汇编语言中,Unicode定义为一个结构体。

里面有字符串长度

     字符串缓冲区长度

     字符串缓冲区

0 0
原创粉丝点击