四、木马的查杀之自启动项篇




自启动项的检查与清除,毫无疑问是查杀木马的关键手段与方法。而且,清掉木马的自启动项,让其自然而亡,是最优雅的杀马方法,不那么暴力也就轻易不会遇到反击。对驱动级的或注入型的木马,这种手段更显其优越性。




而自启动项的选择与设置,更是一种创意的体现,一些非技术型的木马通常可在此看到其作者非同一般的创造性思维。




自启动,顾名思义,就是无须用户干预而自行启动的程序,按启动方式又分为两种,一种是开机自运行的程序;一种是触发式启动的程序。




下面我们将分别来解剖之,但在此之前,我们先要学习一些基础的知识:




1、注册表基础




由于大多数的自启动位置都在注册表中,所以,首先,我们需要了解“注册表”是什么。




注册表从功能上说,它是一个存储各种设置信息的数据仓库,系统的全部设置几乎都存在那里,比如:你用的是什么墙纸、什么屏保、IE的首页、IE窗口的大小等等。当然了,开机时需要加载的驱动、开启的服务、运行的程序等等也都存储在这里。




而从实质上来说呢,注册表其实是由一些记录配置信息的文件组成的,这些文件中的大部分存在“"Windows"System32"Config"”目录下,还有一部分存在用户配置文件夹中,也就是下面将要讲到的03-24图中的用户文件夹中。




这些文件有一个很难听的名字叫做储巢,也就是朋友可能听过的HIVE文件。




由于注册表对系统实在是太重要的了,任何损坏都有可能造成系统彻底的崩溃,所以,系统对注册表的保护也是很严密的,正常情况下,你无法对注册表HIVE文件进行任何的直接操作,看下图03-18






你不仅无法打开、修改,你甚至无法进行拷贝操作。而系统保护注册表的手段,就是由系统以独占的方式打开注册表文件,这样你的任何针对此文件的操作,都将被拒绝。下面,我们来验证一下,看下图03-19






打开狙剑,选择“进程管理”,在进程列表中选中“system”进程,再选择“查看打开的文件”,就可以看到系统打开的所有文件,看上图中蓝条选中的那一项,是不是就是我们无法进行操作的“"Windows"System32"Config"system”文件呢?




       注意:狙剑提供了关闭其它进程打开的文件的功能,关闭后,本来无法操作的文件就可以进行正常的操作了。但是,那是对付木马的,而不是对付系统的,因为木马也同样可以利用独占打开的方式来禁止我们对其文件的访问。关闭系统打开的关键文件将发生无可预料的结果,切勿偿试!(关于文件相关的内容,我们在以后的章节中会有详细的讲解。)




       那我们是否就无法操作注册表了呢?当然不是,系统在保护注册表文件的同时,也提供了操作注册表的工具-“注册表编辑器”。

       在“开始”菜单中,选择“运行”,输入“regedit.exe”就可以打开注册表编辑器,打开后的情况是这样的,看下图03-20





上面的各项称为“键”,最上层的是“根键”下面的叫做“子键”,其与上面我们说的注册表文件一一对应,对应关系如下:




l         HKEY_LOCAL_MACHINE"SAM à Windows"System32"config"sam




l         HKEY_LOCAL_MACHINE"SECURITY à Windows"System32"config"security




l         HKEY_LOCAL_MACHINE"SOFTWARE à Windows"System32"config"software




l         HKEY_LOCAL_MACHINE"SYSTEM à Windows"System32"config"system




l         HKEY_USERS".DEFAULT à Windows"System32"config"Default




l         HKEY_USERS"S-1-5-XX_XXX à "Documents and Settings"<用户名>"Ntuser.dat




l         HKEY_USERS"S-1-5-XX_XXX_Classes à"Documents and Settings"<用户名>"Local Settings"Application Data"Microsoft"Windows"Usrclass.dat




还有其它的键呢?又对应哪些文件呢?呵,这要从注册表的数据类型说起了,除了上面的键外,其它的几个键是属于REG_LINK类型,直翻过来就是“注册表链接”了,这种类型的键是透明的指向另一个键的一个链接,也可以理解成这些键只是另外的某个子键的快速入口或某类相似键的汇总而已,本身并没有文件,其链接的键对应如下:




l         HKEY_CLASS_ROOT中的内容来自于下面的两个注册键: HKEY_LOCAL_MACHINE"SOFTWARE"Classes




HKEY_CURRENT_USER"SoftWare"Classes




l         HKEY_CURRENT_USER中的内容是当前用户的信息,来自于HKEY_USERS"S-1-5-XX-XXXX à "Documents and Settings"<用户名>"Ntuser.dat




l         HKEY_CURRENT_CONFIG中的内容来自于HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Hardware Profiles"Current




当你修改有链接关系的任一键中的数据时,对应的链接键也会体现出来,比如:你修改了HKEY_CLASS_ROOT中的内容,那么你的修改也同时体现在了HKEY_LOCAL_MACHINE"SOFTWARE"Classes中,因为这本就是同一个文件中的同一部分数据。

--------------------------------------------------------------------------------------
本文转自狙剑作者的blog----MuseHero.blog.tianya.cn

Identify the aspects of your application that vary and separate them from what stays the same.