关于DLL地址(基础)
时间:2011-01-30
来源:互联网
这是老罗书上说的,当两个DLL默认安装地址相同时,有一个会定位到其它地方,这就说DLL的地址不是固定不变的吧
可是网上说kernel32.dll这个在不同的程序的装载地址是一样的,这又是为什么呢?kernel32.dll特殊?
还是上面那段话所指的DLL指的是用户DLL?
作者: yg29hxj 发布时间: 2011-01-30
LZ发过这个贴子了吧,其实这个问题也简单,
首先LZ没有kernel32.dll的源代码,那么就不能人为修改kernel32.dll的装载地址,
然后看看WINDOWS装载器的装载顺序,一般先是ntdll.dll,然后是WINDOWS内核的3个文件,
kernel32.dll,user32.dll,gdi32.dll,
所以就算LZ强行修改用户DLL的装载地址与kernel32.dll的地址相同,
除非LZ有WINDOWS装载器的源代码,强行让LZ的用户DLL先于kernel32.dll装载,
否则很难抢占kernel32.dll的装载位置
首先LZ没有kernel32.dll的源代码,那么就不能人为修改kernel32.dll的装载地址,
然后看看WINDOWS装载器的装载顺序,一般先是ntdll.dll,然后是WINDOWS内核的3个文件,
kernel32.dll,user32.dll,gdi32.dll,
所以就算LZ强行修改用户DLL的装载地址与kernel32.dll的地址相同,
除非LZ有WINDOWS装载器的源代码,强行让LZ的用户DLL先于kernel32.dll装载,
否则很难抢占kernel32.dll的装载位置
作者: renxu350 发布时间: 2011-01-30
windows核心部分的一些DLLs是静态装载的,就是windows启动的时候加载,在windows运行其间是卸不掉的,这些DLLs映射到各个进程的地址空间的相同位置。
作者: DelphiGuy 发布时间: 2011-01-30
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28