随笔-211  评论-26  文章-8  trackbacks-0
  作者:网络安全日志
一、缘起

     刚刚一个同事来求助,说安装了一个软件之后,机器开不了机。过去检查了一下,发觉机器在开机之后,提示进行磁盘扫描,扫描结束之后,光标就停在那里了,一直不动。如果取消磁盘扫描,也是死在那里。开机之后按F8,选安全模式,也不能登录。这个现象倒很奇怪,很少有安全模式也登录不了的

二、分析

     仔细研究一下Windows2000/XP/2003的启动方式,因为硬盘可以认识,活动分区也有,也可以找到启动扇区,又没有做过什么其它操作,所以硬件损坏可能性不大。那就是软件的问题了。但问题出在哪里呢?

三、Windows2000/XP/2003启动过程

     先看一下NT系统的引导过程,NT系统从按下计算机开关启动计算机,到登入到桌面完成启动,一共经过了以下几个阶段:

   1. 预引导(Pre-Boot)阶段
    在这个阶段里,计算机首先运行Power On Self TestPOST),POST检测系统的总内存以及其他硬件设备的现状。如果计算机系统的BIOS(基础输入/输出系统)是即插即用的,那么计算机硬件设备将经过检验以及完成配置。计算机的基础输入/输出系统(BIOS)定位计算机的引导设备,然后MBR(Master Boot Record)被加载并运行。在预引导阶段,要加载Windows NT的NTLDR文件。

 2. 引导阶段
   Windows NT的引导过程第一步要经过初始引导加载器阶段(Initial Boot Loader),在这个阶段里,NTLDR将计算机从实模式转换为32位平面内存模式。NTLDR启动内建的mini-file system drivers,通过这个步骤,使NTLDR可以识别每一个用NTFS或者FAT文件系统格式化的分区,以便发现以及加载Windows 2000/XP/2003系统。
   如果计算机安装了不止一个操作系统(也就是多系统),计算机会显示一个操作系统选单,这是NTLDR读取boot.ini的结果,由用户去选择启动哪一个系统。
     如果在boot.ini中只有一个操作系统选项,或者把timeout值设为0,则系统不出现操作系统选择菜单,直接引导到那个唯一的系统或者默认的系统。在选择启动Windows系统后,操作系统选择阶段结束,硬件检测阶段开始。
  在硬件检测阶段中,ntdetect.com将收集计算机硬件信息列表并将列表返回到NTLDR,这样做的目的是便于以后将这些硬件信息加入到注册表HKEY_LOCAL_MACHINE下的hardware中。
  硬件检测完成后,进入配置选择阶段。如果计算机含有多个硬件配置文件列表,可以通过按上下按钮来选择。如果只有一个硬件配置文件,计算机不显示此屏幕而直接使用默认的配置文件加载系统。(一般用户都看不到这一步)
  引导阶段结束。在引导阶段,系统要用到的文件一共有:NTLDR,Boot.ini,ntdetect.com,ntokrnl.exe,Ntbootdd.sys,bootsect.dos

 3. 加载内核阶段
    在加载内核阶段,ntldr加载称为Windows的内核ntokrnl.exe。系统加载了Windows内核但是没有将它初始化。接着ntldr加载硬件抽象层(HAL,hal.dll),然后,系统继续加载HKEY_LOCAL_MACHINE\system键,NTLDR读取select键来决定哪一个Control Set将被加载。控制集中包含设备的驱动程序以及需要加载的服务。NTLDR加载HKEY_LOCAL_MACHINE\system\service\...下start键值为0的最底层设备驱动。当作为Control Set的镜像的Current Control Set被加载时,ntldr传递控制给内核,初始化内核阶段就开始了。

 4. 初始化内核阶段
     在初始化内核阶段开始的时候,Windows 2000/XP/2003的logo以及进度条显示在屏幕中央,在这个阶段,系统主要完成了任务:
  内核使用在硬件检测时收集到的数据来创建了HKEY_LOCAL_MACHINE\HARDWARE键。
  内核通过引用HKEY_LOCAL_MACHINE\system\Current的默认值复制Control Set来创建了Clone Control Set。Clone Control Set配置是计算机数据的备份,不包括启动中的改变,也不会被修改。
    系统完成初始化以及加载设备驱动程序,内核初始化那些在加载内核阶段被加载的底层驱动程序,然后内核扫描HKEY_LOCAL_MACHINE\system\CurrentControlSet\service\...下start键值为1的设备驱动程序。这些设备驱动程序在加载的时候便完成初始化。

    所以很有可能就是这里加载驱动的时候出的问题,现在很多流氓软件设置的级别都很高,恨不得设置成-1了,安全模式下也可以加载。

 5. 登陆
    就是出现那个Windows的登录对话框。这一步根本连看都没看到。

四、处理办法

     既然怀疑是驱动引起的,就必须要启动另外一个系统才可以。就找了一个香山红叶的系统急救盘,它里面有一个WindowsPE系统,可以直接在光盘上启动一个Windows系统,有图形化的管理方式。运行里面的资源管理器,然后打开Windows\system32\drivers目录,按日期排序了一下,发觉下面五个可疑的驱动文件,且日期都是今天的:
    Cdnprot.sys                 ——CNNIC中文上网
    cdntran.sys                  ——CNNIC中文上网
    IsDrv118.sys                ——IceSword驱动
    RGWatch.sys               ——通用搜索这个流氓软件
    usmod.sys                    ——未知驱动

     把这五个驱动文件全部删除了,结果重新开机,一切正常。再清除了其它的流氓软件,系统恢复成功。
 (以上操作,也可以通过安装一个虚拟软驱,来安装一个DOS系统来操作)

五、其它参考

     Windows2000/XP启动过程详解:
    
http://www.vipcn.com/InfoView/Article_28318.html

     深山红叶袖珍PE系统工具箱
    
http://www.51ct.cn/downinfo/10.html

posted on 2007-02-03 20:36 dragon 阅读(170) 评论(0)  编辑  收藏 所属分类: 流氓软件通用解决方法