zhouhongyun
驱动牛犊
驱动牛犊
  • 注册日期2004-01-12
  • 最后登录2015-08-22
  • 粉丝0
  • 关注0
  • 积分210分
  • 威望23点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
阅读:4492回复:15

PE文件在在内存中的镜象和磁盘镜象不同吗

楼主#
更多 发布于:2007-02-13 14:33
  我知道有些地址在内存中会修正,我想问的是,比如某个函数在磁盘文件中的偏移量会不会在内存中发生改变
勇敢的心
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
沙发#
发布于:2007-02-13 23:41
可能~
没有战争就没有进步 X3工作组 为您提供最好的军火
ggamma
驱动小牛
驱动小牛
  • 注册日期2007-02-15
  • 最后登录2009-05-26
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望180点
  • 贡献值0点
  • 好评度99点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-02-16 09:42
引用第0楼zhouhongyun2007-02-13 14:33发表的“PE文件在在内存中的镜象和磁盘镜象不同吗”:
  我知道有些地址在内存中会修正,我想问的是,比如某个函数在磁盘文件中的偏移量会不会在内存中发生改变

没理由啊!应该不会改变才对。偏移量不应该改变的。不然WINDOWS的内存管理系统就太烦了。
wr960204
驱动牛犊
驱动牛犊
  • 注册日期2003-02-14
  • 最后登录2016-02-24
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望49点
  • 贡献值0点
  • 好评度39点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-16 22:28
会啊.磁盘中的要加上物理存储位置和虚拟内存存储位置的差.而内存中就是虚拟内存地址.
GNiDiA
驱动小牛
驱动小牛
  • 注册日期2006-10-11
  • 最后登录2017-10-09
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望145点
  • 贡献值0点
  • 好评度124点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2007-03-18 12:17
要看你怎么理解“地址”这个词了,如果是相对于文件,那它在内存中的地址肯定是会不同的。如果是相对于虚拟地址,那就是一样的了。
huangweike
驱动牛犊
驱动牛犊
  • 注册日期2007-04-30
  • 最后登录2007-05-06
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-05-06 14:00
.在磁盘中是按FileAlignment(一般为0x200)对齐的,而在内存中是按SectionAlignment
(一般为0x1000)对齐的, 且reloc节不映射,只为加载器作重定向用
smallbear111
驱动牛犊
驱动牛犊
  • 注册日期2007-01-06
  • 最后登录2009-04-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望16点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-07-02 13:29
这张图很好
驱网无线,快乐无限
Adayuer
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2010-11-04
  • 粉丝0
  • 关注0
  • 积分340分
  • 威望60点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-07-26 10:43
MapViewOfFile 的结果是不是与内存中的地址一致了?
devil209
驱动牛犊
驱动牛犊
  • 注册日期2007-01-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分732分
  • 威望94点
  • 贡献值0点
  • 好评度73点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-09-27 14:04
不是,研究以下rva吧.
xiaogozaijiao
驱动牛犊
驱动牛犊
  • 注册日期2005-03-12
  • 最后登录2022-01-30
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望14点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2007-09-29 01:41
引用第7楼Adayuer于2007-07-26 10:43发表的  :
MapViewOfFile 的结果是不是与内存中的地址一致了?

这个函数也只是把PE文件放倒内存中,和运行时内存中的分布是不一样的...
文件偏移要转成内存偏移,是要通过节表转换的
poize
驱动牛犊
驱动牛犊
  • 注册日期2005-08-17
  • 最后登录2013-09-13
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望32点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-11-30 17:43
主要是对齐的问题吧
chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2008-01-15 14:42
如果你说的是导入表的函数,它在IAT里,IAT在被加载之前是没有内容的
如果不是,因为对齐的原因,偏移会不同,但它相对于自身代码节的位置是固定的。
chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2008-01-15 14:43
如果你说的是导入表的函数,它在IAT里,IAT在被加载之前是没有内容的
如果不是,因为对齐的原因,偏移会不同,但它相对于自身代码节的位置是固定的。
jwihack
驱动牛犊
驱动牛犊
  • 注册日期2007-01-11
  • 最后登录2010-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望20点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2008-05-24 00:30
会变!当地址一段虚拟地址被占用的时候。
wanghui219
禁止发言
禁止发言
  • 注册日期2007-08-28
  • 最后登录2019-07-29
  • 粉丝4
  • 关注3
  • 积分101166分
  • 威望505351点
  • 贡献值0点
  • 好评度137点
  • 原创分0分
  • 专家分4分
  • 社区居民
14楼#
发布于:2010-05-04 21:21
用户被禁言,该主题自动屏蔽!
wdwlbsm
驱动牛犊
驱动牛犊
  • 注册日期2012-03-25
  • 最后登录2014-01-04
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望91点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2013-04-16 04:44
学 学PE文件吧
游客

返回顶部