首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
编程技术
发新帖
0
0
[求助]捕获win32k.sys中指针访问异常
发表于: 2013-10-30 11:54
4793
[求助]捕获win32k.sys中指针访问异常
normanj
2013-10-30 11:54
4793
在windows 2003上运行一个旧程序时很容易出现蓝屏。使用windbg调试发现,在win32k!NtGdiQueryFontAssocInfo中有一处空指针异常,即图中的test语句:
在windbg中,手动修改了一下异常出现后对应的寄存器,使它变为堆栈中的另一个变量而不是空指针,程序就可以继续运行下去。如何用程序来解决这个问题,而且不用启动内核调试模式?
我想到的方法有两个,一是修改win32k.sys文件,增加代码,使之在使用指针前检查一下是否为空指针。但是windows有系统文件保护机制,而且也不知道如何像windows补丁那样在重启后自动替换原来的文件。二是修改ssdt里NtGdiQueryFontAssocInfo,使之指向一个新函数。这种方式有可能被杀毒软件识别并禁止。
不知道各位有没有好的办法?我上面说的两个方法是否可行?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
上传的附件:
bsod_faultingip.jpg
(64.43kb,4次下载)
收藏
・
0
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
3
)
aait
雪 币:
468
活跃值:
(52)
能力值:
( LV2,RANK:10 )
在线值:
发帖
83
回帖
677
粉丝
2
关注
私信
aait
2
楼
这个问题多半是你那个旧程序的问题,而不是什么win32k.sys出现空指针的问题。你的旧程序,调用了某个系统调用,传入的参数应该不是NULL的时候,未经检查,传入了一个NULL参数,结果导致win32k.sys出现空指针。
这不是win32k.sys的问题,而是你那个旧程序的问题。
2013-10-30 14:09
0
normanj
雪 币:
195
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
1
回帖
3
粉丝
0
关注
私信
normanj
3
楼
这个异常肯定与那个旧应用程序相关,因为只有它运行时才不定时出现蓝屏。所以,我花了较多的时间来跟踪异常产生时每个函数调用,但并没有发现任何异常。它是一个DEPHI程序,异常产生时堆栈如下:
虽然异常产生是arg0为00000000,但向上看,所有的系统函数以及VCL库函数的参数都是正确的,即有效字符串和正确的字符串长度。以正确的参数调用了系统函数,中间出现了错误,这显然不是应用程序的问题 -- 它至多有间接影响。
另外,我单步跟踪时发现在调用NtGdiQueryFontAssocInfo时,arg0这个位置的值并不是零,而是在调用LFONTOBJ::LFONTOBJ之后它才变为零的。
上传的附件:
bsod_stack_params.jpg
(76.56kb,4次下载)
2013-10-30 15:01
0
normanj
雪 币:
195
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
1
回帖
3
粉丝
0
关注
私信
normanj
4
楼
有人可以解决这个问题吗?有报酬的。
2013-10-31 09:45
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
normanj
1
发帖
3
回帖
10
RANK
关注
私信
他的文章
[求助]捕获win32k.sys中指针访问异常
4794
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
谁下载
×
浪飘沙
低调学着
C兔
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部