知识屋:更实用的电脑技术知识网站
所在位置:首页 > 网络安全 > 病毒学院

木马查杀深度剖析之进程篇(二)

发布时间:2011-06-21 14:52:44作者:知识屋

1、              当你按下开机键时,最早是由主板BIOS蕊片中的BIOS程序来执行硬件检测任务的,如果检查过程中发现关键硬件的故障,就会发出特定的响声通知用户,并停止启动。而BIOS程序是哪里来的呢?这是在主板出厂时固化在芯片中的一段程序。

  

2、              当硬件没有问题时,BIOS程序就会读入硬盘的主引导记录,将下面的任务交给主引导记录代码去完成。而主引导记录又是哪里来的呢?这是在安装操作系统时对磁盘进行分区格式化操作时,写到硬盘中的。如果找不到主引导记录,会出错停止,告诉你这是非法的系统启动盘。

  

3、              主引导记录代码的工作是读入磁盘主分区的根目录,在里面读出Ntldr文件,并装入内存,然后将控制权交给它。注意看一下,你的硬盘根目录下是不是有个Ntldr文件?这个文件的属性是隐藏、系统,所以查看时要选择查看所有,且不隐藏被保护的系统文件才可看到。这个文件是哪里来的?呵,当然是安装操作系统时拷贝到硬盘上的,下面提到的文件都是在安装操作系统时拷上去的。如果没能找到Ntldr文件,则会停止启动,显示Ntldr 没找到的错误信息。

  

4、              Ntldr又做了些什么呢?它会将系统由原来的16位实模式切换到32位保护模式或64位长模式。它的工作是读取根目录下的Boot.ini文件,显然引导菜单,在多操作系统的计算机中,可以看到这个菜单。接着它会清屏,并在Win2000下显示一个黑白的进度条,在XP下显示XP的标志图同时显示下面不断滚动的蓝色进度条,提示你它正在加载一些重要的文件。它在加载什么呢?它首先会加载Ntoskrnl.exe、Hal.dll,如果这两个文件找不到会出错停机,并显示找不到相应文件的信息。接着它读入注册表的SYSTEM键文件,从中找出自动启动的各类驱动程序,这是很关键的,因为有些内核级的木马就是在这时启动的。每加载一个屏幕上的进度条就滚动一下子。中间如果某个驱动出问题,也可能会导至系统蓝屏崩溃。

  

5、              接下来的工作由Ntoskrnl.exe(或Ntkrnlpa.exe)来进行,这是内核程序,它做的工作实在是太多了,这里就不再细说了。它的最后一步工作就是创建会话管理子系统,也就是我们上面说过的,由System进程创建的Smss.exe进程。

  

6、              Smss.exe进程负责创建用户模式环境,由用户模式环境向Windows提供可视的窗口界面。

  

它会运行BootExecute中定义的程序,正常情况下是Autochk,一个检查磁盘的程序。但有些杀毒软件会把自己的程序加到这里,来实现引导时杀毒,如果您的系统安装了江民类的杀毒软件,那么此时就会执行它的引导期杀毒程序,就是进入系统前出现的蓝底蓝字的病毒扫描窗口。

  

Smss.exe还会执行SessionManager中的文件删除、移动操作,也就是调用API:MoveFileEx并选择重启后移除文件的,就是在这个环节执行了。当前有很多号称可以删除一切文件的安全工具都使用了MoveFileEx来实现文件的删除,但是现在我们可以知道了,它的文件删除是在这个阶段执行的,而这时驱动程序已经加载了,所以用它们来清除驱动级的木马显然是不胜任的。

  

创建附加的页面文件。

  

加载Win32k.sys,这个东西又是做什么的呢?这是一个内核模式的系统驱动程序,它负责了窗口的显示、屏幕的输入、鼠标键盘和其它设备的输入及消息的传递等。所以也是由Win32k.sys将显示器的分辩率设置为默认值的,也就是这个时候,咱们的计算机屏幕才真正的细致起来,在此以前都是VGA模式,当然了视频驱动是上面装载驱动程序时就已经加载了的,现在只是起到作用而已。

  

再然后呢,就是启动我们上面说过的那两个进程了。就是Csrss.exe与Winlogon.exe进程。

  

启动完这两个进程后,Smss.exe就进入了无限的等待,它在等什么呢?它在等它创建的Csrss.exe与Winlogon.exe ,等着看这两个进程什么时候死掉,一旦他们中有死掉的,Smss.exe马上罢工,让系统彻底崩溃。(在XP以后Csrss的死亡是由内核使系统崩溃的,而不是Smss.exe),所以千万不要结束系统进程。

  

Csrss.exe是做什么的呢?它负责的工作是创建或删除进程、线程,控制台与虚拟DOS机的支持等。它到此就开始工作了,不再参于后面的启动过程。但是Winlogon.exe还有很多工作要做呢,我们接下来看看后面的启动过程。

  

7、              Winlogon.exe是做什么的呢?看它的名字应该看出个大概了吧。是的,它是与登录相关的,但现在还不到显示登录窗口的时候,它还要先启动Services.exe及Lsass.exe进程,然后读取注册表GinaDLL中标明的DLL,由这个DLL来显示一个登录对话话,也就是我们在进入系统时输入用户名与口令的窗口。

  

为什么要先启动Lsass.exe呢?因为,这是本地安全认证子系统,负责的就是本机系统的安全,用户名与口令的验证工作是由它来进行的。

  

还有一个我们上面提到过的进程也是这个时候由Winlogon.exe来启动的,是哪一个呢?就是那个Userinit.exe,这是在用户登录进系统后,Winlogon.exe启动此进程来进行用户初始化。你也可以自己加一个程序与Userinit.exe放在一起,那么,在这个时候Winlogon.exe会将那一位置的所有程序都启动起来。

  

当然了,相信你也想到了,这个还有那个GinaDLL也就成了木马启动的一个可选位置。

  

8、              最后,由Winlogon.exe启动的Services.exe开始加载标明为自启动的各个服务,及标明为手动的却是有必要加载的服务(它所做的工作我们在后面细讲)。

  

9、              而Userinit.exe呢,它在完成用户初始化后,就启动了Explorer.exe,并功成身退。

  

10、           最后,Explorer.exe就成了我们的服务员,等待在那里静候我们的指令,听从我们的吩咐,进行相关程序的启动与功能的处理。


 

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜