最近在准备病毒防护的课程,正好整理出几篇博文出来和大家分享。
 
电脑病毒实际上一段恶意代码,通常比较小,只有几百或1k字节,大多致力于破坏操作系统功能,窃取或毁坏数据,这个大家可能都深有体会,也有个别纯属恶搞的,这样的病毒对电脑没什么危害,因为是冲着人去的,比如说女鬼病毒,就是屏幕上突然出现一个全屏的女鬼图片并伴有尖叫,还有的病毒会让光驱自己弹出来再收回去,你说大半夜的,电脑开着电驴下载,突然来这么一幕...至于破坏力,就看个人承受能力了。
 
电脑病毒的传播途径主要有以下几种:1.网络下载,特别是一些抢鲜版的电影和软件,经常被挂马,一兴奋就中招了,《色戒》刚出的时候就害了一批。2.网页浏览,主要是一些“特色”网站,这个大家心里都有数。3.电子邮件的附件,出于安全考虑,未知的附件一定不要打开 4.U盘,最常见的病毒源,也是大家最需要关照的存储设备。
 
病毒变种的方式主要有两种:1.对源代码进行修改。2.对病毒脱壳再加壳,网上有很多查壳加壳的小工具,比如PEiD,UPX Shell 以及Themida等,功能各有不同。
 
下面介绍一下病毒防护的基本技能。
 
1.查看并关闭可疑进程,进程是操作系统中的概念,指系统当前运行的执行程序,多数病毒运行时都会伪装自己的进程,使其看起来像系统进程,从而不被发现,病毒所在的文件夹能删除的前提是该病毒的进程应经结束,所有我们需要对系统进程有一定的了解,系统中绝对不能关闭的7个进程是:
 
 Csrss.exe      维护Windows32平台正常运行
 System         所有进程的子进程
 Smss.exe       负责操作系统会话
 Svhost.exe     被其他程序调用的进程,且不止一个
 Winlogon.exe   用户登录进程,结束后用户信息会消失,出现蓝屏
 Lsass.exe      用于Windows系统的安全机制,如Security Accouts Manager这个用户帐户的安全信息就是由该进程维护
 Services.exe   维护windows系统服务,这个进程所支持的服务是不能结束的,否则会在60s内关机,可在运行中输入“services.msc”进行查看
 
其中我想重点说一下Svhost.exe这个进程,因为被不同的应用程序调用,所以在任务管理器中会同时有好几个Svhost.exe(我的XP系统里有6个,同学的Vista系统里有12个,汗),正是因为数量多,便于隐藏,***和病毒往往伪装成Svhost,那么我们在应对的时候可以借助Process Explorer这个软件来查看Svhost进程,把鼠标放在上面,显示的目录只要是在System32下的就是正常的,而且要强调的是,病毒是无法代替调用Svhost的应用程序的,只能为自己增加一个Svhost,所以如果发现该进程是在别的目录下,100 %有问题,坚决Shut掉。
 
如果没有Process Explorer这个程序,可以通过命令 ntsd-cq-p PID 来强行关闭Svhost进程,这个命令是微软员工调试系统时用的,能杀到蓝屏死机为止,不过要提醒的是,任务管理器默认是不显示PID的,可以在其“查看”选项中点击“选择让列”,然后将“PID”选项打勾。有些病毒很顽固,本身的进程又与其他进程关联,所以关闭后又会出现,这样的话就要逐步结束其他进程,只剩下那7个,肯定能搞定。
 
另外大家经常接触的还有Explorer.exe这个进程,这个代表“资源管理器”,是可以结束的,而且由于是病毒和流氓软件最爱,有时必须结束,只不过用户界面会消失,但并不影响杀毒。360安全卫士查杀流氓软件的时候也是要暂时关闭一下这个进程的。
 
有的进程关联服务,强制结束后又会自己出来,只好先禁用服务,如“IIS Admin Service”关联进程inetinfo.exe,无法结束,只能先将这个服务的“启动类型”变为“已禁用”,服务状态为“停止”。
 
2.查找可疑文件然后将其删除,前提是关联进程已结束且对自己所装的硬盘
数据足够了解,知道每个文件夹里是什么,都装了什么软件。
 
3.有些病毒会与文件类型关联,像“冰河”***就与txt文件关联,中了这个***后,每双击一次txt文档,就激活一次***程序,在查杀这样的病毒时应该借助于注册表,注册表是windows的一个庞大的数据库,用来存储计算机软硬件的各种配置数据,当然我们不用每个都掌握,那样太费精力。
 
我们通过在“运行”中键入regedit,就能进入注册表,然后会看到以HKEY打头的几个键值,我们重点关注前三个,点击HKEY_CLASSES_Root我们会发现记录的都是.###这样的键值,事实上这里注册的都是系统里面能够识别的文件类型,比如在没装WinRAR之前,像.rar这样的压缩包文件是无法识别的,安装以后,在这个目录下就会写入.rar这个键值,压缩包文件就可以被识别,打开.rar,然后点击ShellNew,会发现Filename后写着C:\Program
Files\WinRAR\rarnew.dat,说明压缩包文件是通过这个路径打开的。
 
冰河***如何与txt实现关联的呢?我们来具体分析一下。
 
通过查找HKEY_CLASSES_Root--txtfile--shell--open--command,我们会发现数据C:\WINDOWS\notepad.exe %1,说明txt是通过该程序打开的,冰河病毒是将其篡改为自己的程序,比如C:\WINDOWS\sys.exe %1,同时通过程序设置为“执行完该程序再打开记事本”,这样每打开一次txt文档就执行一次***程序,且不会弹出什么怪异的窗口,不易察觉。我们只要找到这个键值,并改写回原始值就可以了,注意%1不要忘了写。

在杀过毒后往往会出现关联缺失,有些文件不知以何种方式打开,这个我们可以借助软件恢复(比如×××),也可以手动用上述的方法解决。
 
有些病毒更狠,像熊猫烧香,会关联EXE文件,即使查杀,也会留下一个烂摊子,这个我们有一系列措施来解决。
 
通过路径HKEY_CLASSES_Root--exefile--shell--open--command找到EXE文件关联的默认值是"%1" %*,病毒会将其路径改为自己的文件,比如C:\WINDOWS\sys.exe %*,这样没执行一次EXE文件,都会先执行一次病毒的EXE文件,再执行原文件,一旦关联EXE文件的病毒被删除,所有EXE文件就都打不开了,这样的话,是无法通过命令regedit进入注册表的,因为其本身也是一个EXE文件,所以要间接的来完成。
 
进入C盘windows文件夹,下有regedit.exe这个文件(图标为蓝色魔方),将其文件名改为regedit.com,com是另一种可执行文件,再双击打开,修改键值。如果病毒棋高一招,将.com文件也关联了,我们还有办法,将regedit.exe改为regedit.scr,scr是屏保程序的后缀,这样也是可以打开注册表的。如果scr也阵亡了,那么就用网线连另一台电脑,然后再另一台电脑上操作,点击注册表--连接网络注册表,然后输入自己的IP地址,就可以修改了。
 
 
HKEY_CURRENT_USER & HKEY_LOCAL_MACHINE
 
HKEY_CURRENT_USER记录了个人用户的配置,其目录下有SOFTWARE这个键值,该键值在HKEY_LOCAL_MACHINE中也有,两个内容差不多,差别在HKEY_LOCAL_MACHINE下的SOFTWARE针对的是计算机本身,所以我们以这个为主来进行说明。
 
SOFTWARE键值记录了系统中的软件信息,微软要求各应用软件要在注册表里建立以自己软件公司命名的文件夹,并把软件信息放入其中,微软自己是遵守的,相关信息都在Miscosoft这个文件夹里,但其它软件公司可不都是乖乖牌,因为我们有时更青睐于用绿色版软件,用起来很方便,不用安装,也避免了无法卸载的风险和卸载后残留的注册信息和文件的困扰。
 
找到SOFTWARE键值,点击Miscosoft文件夹,打开后会发现有Internet Explorer 和windows这两个文件夹,可见IE浏览器与windows是并列的,而不是windows的一部分,只不过微软将其绑定了,因为这个微软也吃了不少官司。平心而论,windows是比较安全的,目前出的vista安全级别又上了一个档次,不安全的其实是Windows打包的这些软件,就比如IE浏览器,而且在操作系统市场上,Windows占据了98%的市场份额,自然成为众矢之地,大家都用它,都琢磨它,病毒***几百万种也不足为奇。
 
通过SOFTWARE--Miscosoft--windows--Current version--Run我们可以发现Run这个键值,该键值记录了计算机在启动时所有自动加载的程序,所以查杀那些开机就启动的病毒,我们是在这里删除其数据设置的。Run这个键值的设计目的为了应用某些特殊的系统,像是我们熟知的×××点歌系统,其本身运行还是用Windows系统在后面承载的,但是通过设置这个键值,可以实现在开机时跳过Windows直接进入×××点歌界面,所以会给我们错觉认为这是个直接在硬件上运行的独立系统。再有就是为了设置开机启动项,让一些windows初级用户不必自己启动某些应用程序,但实际上这样强制加载没什么好,还会占用内存。
 
在Run目录下还有RunOnce这个键值,有些软件安装时会提示“重启后继续安装”,就是在重启前在RunOnce中写入路径,重启后会读这个路径以继续安装,完毕后该路径消失,所以叫RunOnce,正是这“一次性”的特点功能,使得很多病毒在这个键值上做文章。有些病毒执行时并不在RunOnce中写入路径,只是在内存中运行,在自己的进程被结束或者重启前,捕捉这样的动作瞬间,在RunOnce中写入自己的启动路径,这样在下次开机时,病毒又在内存中运行,但RunOnce键值始终是空的,这样就不易被发现。
 
通过SOFTWARE--Miscosoft--windows--Current version--setup我们可以看到setup这个键值,注册表右侧会显示SourcePath,显示的是操作系统的安装路径,比如F:\WINDOWS\TVOA,请大家装好系统后记录好这个路径,因为***远程控制时要传文件,会更改这个路径,所有如果发现路径被改了,呵呵,你已经被***光顾过了...
 
在setup并排向下还可以看到Uninstall这个键值,它对应的是添加/删除程序,***对在控制你电脑后,植入***或软件,同时在Uninstall这个键值下删除他所装俄软件信息,使其不被察觉。
 
通过SOFTWARE--Miscosoft--windows--Current version--Explorer我们可以看到Explorer这个键值,然后点击Advanced--Folder--Hidden--NOHIDDEN,我们会在右侧发现CheckedValue这个键值,双击后发现默认值为2,熊猫烧香病毒将其改为了1,这样即使在文件夹选项中圈中“显示隐藏文件”也会自动切换为隐藏,增强了病毒的隐蔽性。
 
通过SOFTWARE--Miscosoft--windows NT--Winlogon我们就可以看到Winlogon这个键值,右侧有一条会显示:shell  REG_SZ  Explorer.exe ,意思是PC在每次启动时都要启动资源管理器,病毒可能在此做手脚,比如改成:Explorer.exe c:\WINDOWS\system 32\aaa.exe 那么除了运行资源管理器还要运行这个病毒程序,即所谓的“与资源管理器关联”。
 
最后要说明的是,键值的使用,删改取决于访问键值的权限,可以在注册表菜单--编辑--权限中进行修改。比如,病毒与系统进程捆绑了,病毒文件中.dll文件就无法删除,由于进程监控对应键值,所以键值也是无法修改的,那么这时候,可以将该键值设为“everyone 拒绝”,然后重启一次,病毒就无法读取自己,这时病毒的.dll就能删掉了。