首页
社区
课程
招聘
[讨论]请教见个关于Kernel32.dll的问题
发表于: 2007-6-26 23:07 4898

[讨论]请教见个关于Kernel32.dll的问题

2007-6-26 23:07
4898
Windows XP SP2,前几天自动更新重启,等待界面结束后蓝屏,提示Kernel32.dll被重定位,好像是和Ntdll.dll冲突。进入另一个系统(装有Vista),从xp安装盘中提取Kernel32.dll,和XP更新后的Kernel32.dll比较了一下,原文件是961K,更新后的文件是1119K,入口点也变了。把原文件还原,重启后正常进入XP。

跟内核有关的两个更新是:
WindowsXP-KB917422-x86-ENU.exe
WindowsXP-KB935839-x86-ENU.exe。

由此想了几个问题:
1. Kernel32.dll在Win2K下无法删除或重命名,但在WinXp下却可以,这两个系统加载内核的方式有什么不同呢?
2. Kernel32.dll在内存中的基址在某个版本的Windows中是否是固定的?
3. 往PE文件中添加代码时,一般要先在要注入的代码中查找Kernel32.dll的基址,然后定位GetProcAddress函数,如果Kernel32.dll在内存中的基址是固定的,是否可以在执行注入的进程中获取GetProcAddress的地址,在注入代码中直接使用地址调用?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
今天看了一下,Kernel32.dll在Win2k的基址是77E60000h,WinXP SP2是7C800000H,直接使用内存地址调用GetProcessAddress也可以,只不过没有动态搜索函数地址可移植性好。
2007-6-27 22:18
0
游客
登录 | 注册 方可回帖
返回
//