-
-
[求助]捕获win32k.sys中指针访问异常
-
发表于:
2013-10-30 11:54
4794
-
在windows 2003上运行一个旧程序时很容易出现蓝屏。使用windbg调试发现,在win32k!NtGdiQueryFontAssocInfo中有一处空指针异常,即图中的test语句:
在windbg中,手动修改了一下异常出现后对应的寄存器,使它变为堆栈中的另一个变量而不是空指针,程序就可以继续运行下去。如何用程序来解决这个问题,而且不用启动内核调试模式?
我想到的方法有两个,一是修改win32k.sys文件,增加代码,使之在使用指针前检查一下是否为空指针。但是windows有系统文件保护机制,而且也不知道如何像windows补丁那样在重启后自动替换原来的文件。二是修改ssdt里NtGdiQueryFontAssocInfo,使之指向一个新函数。这种方式有可能被杀毒软件识别并禁止。
不知道各位有没有好的办法?我上面说的两个方法是否可行?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)