阅读:4695回复:15
PE文件在在内存中的镜象和磁盘镜象不同吗
我知道有些地址在内存中会修正,我想问的是,比如某个函数在磁盘文件中的偏移量会不会在内存中发生改变
|
|
|
沙发#
发布于:2007-02-13 23:41
可能~
|
|
|
板凳#
发布于:2007-02-16 09:42
引用第0楼zhouhongyun于2007-02-13 14:33发表的“PE文件在在内存中的镜象和磁盘镜象不同吗”: 没理由啊!应该不会改变才对。偏移量不应该改变的。不然WINDOWS的内存管理系统就太烦了。 |
|
地板#
发布于:2007-03-16 22:28
会啊.磁盘中的要加上物理存储位置和虚拟内存存储位置的差.而内存中就是虚拟内存地址.
|
|
地下室#
发布于:2007-03-18 12:17
要看你怎么理解“地址”这个词了,如果是相对于文件,那它在内存中的地址肯定是会不同的。如果是相对于虚拟地址,那就是一样的了。
|
|
5楼#
发布于:2007-05-06 14:00
.在磁盘中是按FileAlignment(一般为0x200)对齐的,而在内存中是按SectionAlignment
(一般为0x1000)对齐的, 且reloc节不映射,只为加载器作重定向用 |
|
6楼#
发布于:2007-07-02 13:29
这张图很好
|
|
|
7楼#
发布于:2007-07-26 10:43
MapViewOfFile 的结果是不是与内存中的地址一致了?
|
|
8楼#
发布于:2007-09-27 14:04
不是,研究以下rva吧.
|
|
9楼#
发布于:2007-09-29 01:41
引用第7楼Adayuer于2007-07-26 10:43发表的 : 这个函数也只是把PE文件放倒内存中,和运行时内存中的分布是不一样的... 文件偏移要转成内存偏移,是要通过节表转换的 |
|
10楼#
发布于:2007-11-30 17:43
主要是对齐的问题吧
|
|
11楼#
发布于:2008-01-15 14:42
如果你说的是导入表的函数,它在IAT里,IAT在被加载之前是没有内容的
如果不是,因为对齐的原因,偏移会不同,但它相对于自身代码节的位置是固定的。 |
|
12楼#
发布于:2008-01-15 14:43
如果你说的是导入表的函数,它在IAT里,IAT在被加载之前是没有内容的
如果不是,因为对齐的原因,偏移会不同,但它相对于自身代码节的位置是固定的。 |
|
13楼#
发布于:2008-05-24 00:30
会变!当地址一段虚拟地址被占用的时候。
|
|
禁止发言
|
14楼#
发布于:2010-05-04 21:21
用户被禁言,该主题自动屏蔽! |
15楼#
发布于:2013-04-16 04:44
学 学PE文件吧
|
|