当前位置:首页>谁说我是病毒!svchost.exe自述解谜_IT电脑网

谁说我是病毒!svchost.exe自述解谜_IT电脑网

  • 2023-04-23 10:28:04

  • 我的名字叫svchost.exe,伴随Windows 2000而出现,随后的Windows XP、Windows Server 2003都可以见到我的身影。很多从Windows 98/ME过渡到Win XP的读者首次见到我的时候,总以为我是病毒,并试图在“任务管理器”中“杀死”我,结果呢?我又不是比尔,当然一杀即死,不过系统也跟着我而去了,因为它要求重启或者关机!而这更坚定了一些读者朋友的看法,不是病毒的话,怎么会一杀死进程就要求重启/关机?我只能说:我是被冤枉的!

    那么我是什么?其实我是NT核心系统的非常重要的进程,是不可或缺的,所以才会出现一“杀死”系统就要求重启/关机的现象。当然,很多病毒、木马也看上了我的优点,不时被他们调用一下,有时就成了他们的帮凶了。

    我一直都以后台运行的形式出现在读者们的基于NT内核的操作系统中,在Win 2000/XP运行过程中,按“Ctrl”+“Alt”+“Del”组合键,从“任务管理器”的“进程”标签中就可以见到我的身影。

    细心的读者,会发现操作系统中我竟然同时存在多个身影,一般来说,Win 2000有两个svchost.exe进程,Win XP中则有四个或四个以上的svchost.exe进程,Win 2003就更多了。并且这还不是固定的,随着服务的增多,svchost.exe进程还可能会增加。见到我一下子有这么多兄弟千万不要以为是病毒哦!他们和我一样同时为操作系统提供很多系统服务,像:Browser(浏览)、Irmon(红外)、DHCP(动态地址分配)等服务,都由我们提供支持的。不过需要注意的是,除了三兄四弟以外,我可没有姐妹,如果你看到进程列表中有svch0st.exe(其中的“0”是数字零,非字母“o”)进程,那肯定是中毒的迹象。

    如果对我的身世之迷感兴趣,可以在“开始菜单”→“运行”输入“CMD”后回车,再在出现的命令行窗口中输入“tasklist /svc”(Win XP)或者“tlist -s”(Win 2000)后回车,从中就可以看到我和我兄弟身体里面究竟还有谁。

    Windows系统进程分为独立进程和共享进程两种,我们平时使用的应用程序,比如Offices,就是独立进程。Svchost.exe文件正确的存放位置在“%systemroot% system32”(%systemroot%为系统安装目录,如WINNT)目录下,属于共享进程。共享进程的出现和Windows系统服务不断增多有很大关系。从节省系统资源的角度看,共享方式具有很大的优点,可以节省不少系统资源,并且共享进程能够让系统进程的管理变得更有条理。而我正是这些共享进程的启动者,需要注意的是,尽管共享进程是我启动的,但我本身并不提供任何服务功能,仅仅是提供一个启动的平台。

    为了让大家有更好的了解,现在以和大家关系较大的“Windows Audio”系统服务为例,看看我怎么完成共享进程的启动。“Windows Audio”服务管理着基于Windows的程序的音频设备,默认是自动运行的,不过服务器操作系统Win 2003出于节约资源的考虑,把这一系统服务禁用了。

    依次打开“控制面板”→“管理工具”→“服务”,双击“Windows Audio”,从“执行文件的路径”中不难看出这一系统服务和我之间的关系,它是通过我调用“netsvcs”参数实现的。那么这一参数又包含什么内容呢?答案在注册表之中。

    在“开始”→“运行”中输入“regedit”,使用Ctrl+F快捷键调出“查找”对话框,查找“svchost.exe -k netsvcs”字符串,可以看到一个类型为“reg_expand_sz”的“Imagepath”项,其键值为“%SystemRoot%System32svchost.exe -k netsvcs”,该命令和“服务”中看到的是一样的。

    转到同一目录的“Parameters”子目录,“ServiceDll”的值为“%SystemRoot%system32schedsvc.dll”,也就是说上述命令的真实调用对象是“schedsvc.dll”文件,并由该文件完成音频设备的管理工作,我仅仅是一个平台而已。

    从上面的实例中,相信大家可以看出,系统服务一般都是以动态链接库(dll)形式存在的,然后它们以“服务”的形式,把可执行程序指向我,由我调用相应服务的动态链接库来启动。而指向是由注册表相关键值决定的。

    有利必有弊,不仅系统服务看上我的便利,病毒、木马也想尽办法来亲近我,企图通过我把自己隐藏起来,进而对大家的电脑进行破坏,甚至通过网络感染其它电脑。

    假如在没有操作电脑的情况下,CPU资源占用率达到100%;或者硬盘指示灯不连续的经常闪亮;又或者发现我占用大量的系统资源,这时应该考虑一下系统中毒的可能性。

    大家可以采用上面介绍的方法,看看我身体里面的共享进程有没有可疑的系统进程,另外也可以使用“开始”→“查找”功能,查找“svchost.exe”文件,也就是我的本体。正常情况下,我只存在于“%systemroot% system32”目录下,如果发现在其它目录也有我的身影,这时就要小心,因为它必定是李逵!

    请把杀毒软件的杀毒库升级成最新版本,然后让它完整地扫描硬盘,一般都可以把病毒查杀干净,不过由于我是常驻内存进程,可能在杀毒过程中需要重新启动系统,按照杀毒软件的提示进行操作即可。

    以上是我想告诉大家的,希望大家不要一看到我就大呼中毒,在感觉电脑不正常的时候,麻烦对我进行一次“体检”,只要大家做好防范,相信我能够给大家带来更大的便利。