Kernel32.dll、USER32.dll...等系统DLL每次的加载位置都一样吗?

bacy001 2011-03-30 11:57:00
Windows系统有好些供所有程序使用的共享库,包含大量API函数!

几乎所有的进程都会将这些DLL加载到自己的进程空间里面!

我的问题是:
1、这些DLL在每个进程中的位置都一样么?
2、不同Windows版本会不一样么?
3、大版本相同,补丁不同,又是什么情况?(都是XP,sp2 和 sp3 是否一样?)
...全文
331 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
opqit 2011-03-30
  • 打赏
  • 举报
回复
1.不一样
2.不一样
3.不一样

其他:
1。对于Vista及以上,同一个系统的同一个进程运行两个,这些dll加载的进程中的位置也可能不一样。这个是由ASLR(Address space layout randomization)导致的。
2。如何看进程中各模块的加载位置,下一个procexp.exe看看
Lactoferrin 2011-03-30
  • 打赏
  • 举报
回复
windows vista起有动态基址,每次开机时这些DLL的基址都不同,但是加载了它们的进程中的地址都一样
野男孩 2011-03-30
  • 打赏
  • 举报
回复
1.是的
2.可能不一样
3.可能不一样
Lactoferrin 2011-03-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 opqit 的回复:]

1.不一样
2.不一样
3.不一样

其他:
1。对于Vista及以上,同一个系统的同一个进程运行两个,这些dll加载的进程中的位置也可能不一样。这个是由ASLR(Address space layout randomization)导致的。
2。如何看进程中各模块的加载位置,下一个procexp.exe看看
[/Quote]
这些系统dll的基地址在windows启动时确定的,开机后每个进程中的那些dll地址都一样。否则会影响速度。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧