查看: 2325|回复: 6
收起左侧

[分享] (转)技术分析称金山猎豹浏览器导致电脑蓝屏

 关闭 [复制链接]
5370077
发表于 2013-9-27 15:39:25 | 显示全部楼层 |阅读模式
      最近不少网友反映,在用金山猎豹浏览器上网时,电脑经常出现蓝屏死机的情况。网友截图显示,一个名为KBNDrv.sys的文件是蓝屏的罪魁祸首。经技术人士分析,KBNDrv.sys是猎豹浏览器的驱动程序,该程序存在低级错误,因此引发用户电脑蓝屏。

  据了解,这已经不是金山旗下产品首次出现蓝屏问题。早些时候,金山毒霸推送微软补丁曾先后两次造成大面积蓝屏故障,致使近千万金山用户受到蓝屏故障影响。
  以下是金山猎豹浏览器KBNDrv.sys驱动蓝屏问题技术分析:
  根据蓝屏文件定位原因,猎豹浏览器驱动KNBDrv.sys将一块保存命令行的字符串缓存内存,从镜像文件路径长度开始,移动整个内存长度的内容,由于移动的范围超出了命令行字符串内存长度,因此导致了蓝屏。
  详细分析KNBDrv.sys二进制代码发现,其代码存在明显的低级错误。涉及此次蓝屏故障,问题在于,KNBDrv.sys会挂钩系统内核函数 NtCreateUserProcess,所有的进程创建都会调用这个系统调用,猎豹浏览器的驱动拦截到进程创建后,会拆解其中的ProcessParameters这个参数,并试图从中分析出创建进程的命令行,但是其解析代码的实现方式非常不稳定。
  那么猎豹浏览器KBNDrv.sys是如何进行命令行拆解的呢?比如这样一个命令行:
  C:\windows\system32\cmd.exe /c
  猎豹浏览器会试图将 /c 这个命令行拆解出来。解析出程序路径ImagePathName为"C:\windows\system32\cmd.exe" 以后,需要把CommandLine里后面"/C"前移抹掉ImagePathName部分,(假设pDes指向CommandLine的开始,PathLen是ImagePathName的长度, len是"C:\windows\system32\cmd.exe /c"的字节长度)。
  KNBDrv.sys的代码是这样的:memmove(pDes, pDes + PathLen, len)
  这里存在明显的错误,如果要移动CommandLine的命令行参数部分出来,移动长度应该是CommandLine总长度减去ImagePathName和空格长度,而这里使用了总长度,就会导致发生读取缓存越界的问题。如果CommandLine的Buffer位于内存页尾部附近,且后面一个内存页是无效页,就会引发电脑蓝屏。
seasonyoung
发表于 2013-9-27 15:49:36 | 显示全部楼层
用了快一年了,没见哪里蓝屏了
lzh920808
发表于 2013-9-27 15:53:17 | 显示全部楼层
1没见过蓝屏
2 这篇文章是360写的 起因 小米手机屏蔽 报复
3 锁前留名
释然的心
发表于 2013-9-27 15:53:25 | 显示全部楼层
看不懂下面的技术分析,不过我一直用猎豹,没有蓝屏过
fullboy
发表于 2013-9-27 15:55:59 | 显示全部楼层
都在想弄垮对手哪有时间管这种

评分

参与人数 1人气 +1 收起 理由
zhq445078388 + 1 FB最近又回来了哇..

查看全部评分

skylinext
发表于 2013-9-27 15:57:35 | 显示全部楼层
lzh920808 发表于 2013-9-27 15:53
1没见过蓝屏
2 这篇文章是360写的 起因 小米手机屏蔽 报复
3 锁前留名

想象力很丰富……
hddu
发表于 2013-9-27 15:57:49 | 显示全部楼层
测试机子的配置?
为何俺装上了没有蓝屏只是卡,配置低。
冲突吧。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-18 10:45 , Processed in 0.125145 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表