瑞星卡卡安全论坛

首页 » 综合娱乐区 » 活动专区 » 实习生专区 » 实习生交流区 » 浅谈手工杀毒技术(分享)
叶陵君 - 2008-8-8 4:38:00
浅谈手工杀毒技术
作者:刘鑫
前言
杀毒软件随着病毒的升级而升级,一个好的杀毒软件并不能保证随时杀出所有的病毒,当遇到不能杀掉的病毒时,最好的办法就是手工杀毒.
手工杀毒听起来挺高深,其实就是Windows的使用而已,学习一下基本软件的使用,就这么简单.
本文所涉及的内容

杀毒所需要知道的基本概念

病毒的隐藏手段

Exe类型的病毒清除

Dll类型的病毒清除

U盘病毒全面xxx

网页传播病毒的原理

合理的配置预防病毒

需要知道的基本概念——进程
进程是程序在计算机上的一次执行活动.当你运行一个程序,你就启动了一个进程.显然,程序是死的(静态的),进程是活的(动态的).进程可以分为系统进程和用户进程.凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就是所有由你启动的进程.进程是操作系统进行资源分配的单位.
系统运行所必需的进程
[system Idle Process]
[csrss.exe]
[explorer.exe] c:\windows
[lsass.exe]
[services.exe]
[smss.exe]
[spoolsv.exe]
[svchost.exe]
[winlogon.exe]
[system.exe]
程序全部位于C:\windows\system32

认识病毒
病毒就是我们不想运行的恶意的程序,隐藏在系统中偷窥我们的信息,既然病毒也是程序那么病毒就应该有它自己的进程,我们只要用任务管理器结束它,在删除掉病毒的主程序似乎就杀掉了病毒,不过既然是病毒,它的开发者也想到了这点,他会让病毒每次开机都自动运行.怎样开机自动运行 需要知道第二个概念.



第二个概念——注册表
注册表是windows的命根,里面储存着大量的系统信息,是一个庞大的数据库.注册表里面所有的信息平时都是由windows操作系统自主管理的,也可以通过软件或手工修改.注册表里面有很多系统的重要信息,包括外设,驱动程序,软件,用户记录等等,注册表在很大程度上"指挥"电脑怎样工作.注册表有很大的用处,功能非常强大,是windows的核心.通过修改注册表,我们可以对系统进行限制,优化等等 .杀毒时所必须知道的就是注册表里的启动项.百分之九十的病毒都是通过注册表与服务启动的.

注册表的一些启动键值
1. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\

2. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

3. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunService

4. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce\

5. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\

6. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\

7. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup\

8. HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\Run\

9. HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\RunOnce\

10 HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon

11 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Servic es\VxD\

12 HKEY_CURRENT_USER\Control Panel\Desktop

13 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Contro l\Session Manager

HKEY_L_M\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit

HKEY_L_M\Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad\

HKEY_C_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows\run

HKEY_C_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows\load

HKEY_C_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\run

HKEY_L_M\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\run\

第三个概念——说说服务
服务概述
定义:执行指定功能的程序或进程,以便支持其他程序,尤其是底层程序.

服务是一种在后台运行的应用程序类型,它与 UNIX 后台应用程序类似.服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如客户端/服务器应用程序,Web 服务器,数据库服务器以及其他基于服务器的应用程序.
病毒的伪装手段
进程的伪装
病毒为了不让自己被轻易的发现,会修改自己的文件名和系统进程类似来干扰我们,如数字1和字母l,数字0和字母O
.
(svchost!=svch0st)
图标的伪装
将本身的图标改称图片的图标或着是计事本的图标来达到伪装的目的和钓鱼的目的.
小知识:windows下的图片察看器是

C:\windows\system32\shimgvw.dll
在explorer.exe里
Rootkit技术
Exe类型的病毒清除
Exe类型病毒清除的一般思路
1 结束进程(可能是多个进程)
[不建议使用任务管理器,用杀毒助手,
ICESword等]
2 去掉启动项
[不建议用msconfig,用Autorun.exe]
3 删除病毒文件
[一般在系统文件夹下]
4 修复注册表
txt,exe关联,IE等恢复




Dll型病毒的清除
Dll病毒简介
Dll是动态链接库的意思,它是Windows的基础,因为所有的API函数都是在Dll中实现的.Dll文件不能独立运行,一般都是由进程加载并调用的,所以进程列表中并不会出现Dll,如果进程是可信的,那么Dll也是可信的.现在许多恶意软件都钟情Dll方式,dll病毒一般通过Rundll32使用动态插入的技术插入到系统关键进程,如果插入到IExplore.exe,Svchost.exe等进程,可以轻易穿透防火墙.
病毒发展的最高境界是DLL加上RootKit技术!


Dll类型的病毒清除
由于病毒Dll独特的启动方式和隐蔽性,使许多的菜鸟加老鸟都素手无策,头疼不已,可以考虑用IceSword对插入的Dll文件进行强制解除,不过找到这个Dll文件是一个很大的难题,光system32下就有一千多个Dll文件,IE加载的就有一百左右,如何判断 这就需要先前做好准备.


备份必要的文件
Dir C:\Windows\System32\*.dll /a >>dll_bak.txt
Listdlls svchost.exe >> svc_bak.txt


无法判断病毒的Dll,感觉中了Dll木马之后再用
Dir C:\Windows\System32\*.dll /a >>dll_xin.txt
Listdlls svchost.exe >> svc_xin.txt



fc dll_bak.txt dll_xin.txt >> dll_diff.txt
fc svc_bak.txt svc_xin.txt >> svc_diff.txt

来逐个判断
对于前面提到的系统进程建议全部做备份dll文档


U盘病毒的全面xxx
网上流传的错误说法
网上说右键打开就可以避免运行U盘病毒,可是通过查阅资料可以发现这种说法是完全错误的.
U盘病毒运行的机理:
根目录下Autorun.inf 最简单的内容为:
[AutoRun]
open=木马.exe
如果替换成
shell\open\command=mm.exe
shell\explore\command=mm.exe
shell\find\command=mm.exe
实例
U盘病毒的全面xxx
1 关闭自动播放
Gpedit.msc,计算机配置—管理模版—系统中"关闭自动播放"
2 正确的打开磁盘
我得电脑—文件夹—打开磁盘,地址栏转到的方法
3 以文件夹方式进行查看
4 给键值设上权限
HKEY_CURRENT_USER\SoftWare\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2




网页传播病毒的机理
据我统计百分之九十就是的病毒都是浏览网站中的,江民公司调查表明80%的网站带毒运行,但是我们是怎样中病毒的
黑客叫"挂马",就是我们浏览  网页时,由于网页中有恶意代码使我们下载病毒并执行.
代码       
实例   
学校邮件服务器跨站漏洞
知道了中木马的原理,再来看一下看邮件是怎样中病毒的,以咱们学校邮件系统为例:
实例
合理的配置尽量预防病毒
1 优化系统启动项
用Autorun删除除了系统进程和杀毒软件的所有启动项,
给一些注册表的启动项设置只读权限.
2 优化系统服务项
停掉不必要的系统服务如自动升级, server等
3 注意新出的系统漏洞,勤打补丁
4 更改vbs,bat,vbe等脚本文件的打开方式
5 多看看系统安全方面的书,配置人比配置电脑更重要

欢迎指正
谢谢

PS:转载过来前,文章已不完整,还有一些内容还没测试过,大家一起交流学习。

用户系统信息:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; TheWorld)
叶陵君 - 2008-8-8 4:42:00
广大的菜鸟兄弟们一定曾经中过一些病毒,杀毒软件无法杀掉,最终只好格式化
计算机!
其实这些杀毒软件无法杀的病毒不一定是未知的新病毒,而是有些病毒感染了正
在运行的文件,而杀毒软件又无法改写这些正在被写数据的文件!
今天,冰血封情就教教大家如何,对付这些感染了动态文件却无法杀掉的已知病
毒!
不知道大家有没有听说过WININIT这个文件?这次我们的主角就是它!
首先,当你的动态文件感染了病毒时(如WINME的系统还原文件夹中的文件),
通常杀毒软件会告诉你无法查杀!(当然,如果真是WINME的系统还原文件夹中
的文件感染了病毒还有其他的方法,我这里只是教大家方法,是泛指!)
请你将感染已知病毒的文件复制一份,复制品就不会正在被写入,将已经处于静
态的复制品去毒。
然后,在WINDOWS目录下创建一个WININIT.INI文件(创建之前应该检查该文件是
否存在!),建立[RENAME]段,加入一行:染毒文件名=复制品文件名
保存即可!
如果不止一个文件感染不同的病毒,可以在[RENAME]段的染毒文件名=复制品文
件名下再加一行!
叶陵君 - 2008-8-8 4:44:00
:default2:  不敢睡了,要是睡了 ,肯定要到下午才醒来,那时就申请不了号。
叶陵君 - 2008-8-8 5:10:00
如何手动清除病毒2.0
※强烈建议使用杀毒软件杀毒,本文只是在杀毒软件清除失败时才不得不用的手段
※本文只是针对WIN2000/XP/2003,VISTA我没用过,不知道行不行,你可以试一下,试完了给我说说.
※本文针对的是对系统*作比较熟悉的朋友,不要问我怎么运行注册表,怎么备份注册表,怎么删除键值,怎么打开服务列表,怎么停止服务
※如果你有winPE启动盘,可以使用它启动计算机后来清理,比下面的步骤要简单得多.
※本文是原创,转载请注明出自菊花论坛,本文是2.0版,原版在这儿
http://www.sharecenter.net/viewt ... ght=%2B%B1%B1%D1%F2

★病毒的伎俩:
1.一般病毒感染后会了达到控制系统的目录,都会把自己加入到启动项目中,以便在启动系统后进驻内存;
有些病毒比较聪明,不是加入启动项,而是把自己注册成一个服务,设置成自动启动;
还有些病毒比较恶心,会把TXT文件或者EXE的默认关联指向自己,你点击文本文件时系统没有任何反应,实际是病毒已经启动了,或者你在点击EXE文件的时候一起启动了病毒;
现在还有好多病毒喜欢对驱动器下的autorun.inf文件下手,当你双击打开驱动器时,就启动了病毒,所以,最好,把所有驱动器的自动运行功能全关了。
2.现在更猖獗的做法,是采用钩子程序,两个进程互相保护,你灭了一个进程,另一个马上把它启动。就是欺负你没法同时关闭两个进程。哪位大大能编写个同时关闭多个进程的任务管理器就好了。
3.一般病毒都会把自己的名字改得跟某个系统文件差不多,像用expl0rer冒充explorer,用rundl132来冒充rundll32,甚至直接删除原来的系统文件而占用系统文件的名字.
4.一般病毒文件都会加上系统隐藏只读三重属性,并且用进程保护自己,你正常情况下无法删除这些文件。
5.锁住注册表,任务管理器,让你没有办法去对付它,本文不对此细讲,请自己查找如果解锁注册表和任务管理器.

★清理步骤:
1.结束进程
打开任务管理器,结束可疑进程,如果遇到互保的进程,也就是说两个进程,你关闭不了,这种情况,这一步跳过去,进行下一步。
2.关闭服务
如果提示不能结束,打开服务列表,查看有无可疑服务,重点在那些没有注释的服务项目,还有名字类似的服务,再查看服务指向的文件,确定是病毒注册的服务,记下它指向的文件,停止该服务。
3.删除自启动项目
结束可疑服务和进程后,接下来就是删除自启动项目,自启动项目有许多藏身之所,在此不多说,该找的地方都去找一找,能删除的全删除了。但在删除前要记下它们所指向的文件,这些都是要删除的病毒文件.
或者遵照如下步骤:
系统信息__软件环境__启动程序,右边窗口会列出自启动的程序
XP中会提示在注册表中的相关键值,但2000只有可执行程序的地址
在其中查找有可能是病毒的选项,到相应位置删除注册表启动键值
在此推荐一个小东西,是VISTA的任务管理器,它比2000和XP好的地方,就是在管理器中列出了进程所对应的启动程序。有这个东西,基本上就不用系统信息中去查看。附件中有,大家可以下载使用.
值得注意的是,如果病毒是以服务的形式启动,需要在注册表如下键中查找,并删除
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\SERVICES
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\SERVICES
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\SERVICES


4.删除病毒文件
显示所有文件,按照注册表中启动项目或系统信息的提示,找到病毒文件的藏身地址,删除,如果提示不能删除,那就记下地址和文件名,到安全模式命令行中删除.注意名字的细微差别,比如数字0与字母O的区别,数字1与字母l的区别,有时候SVCHOST和SVCH0ST看起来是一个模样,但也只是看起来而己.还有些是使用空格,在WINDOWS浏览器的窗口中explorer.exe与explorer .exe你是无法分辨的,所以,显示所有文件的同时最好连扩展名也显示出来
这一步要注意的是,前面说了病毒一般会把系统隐藏只读三种属性加到自己身上,还有可能它为了保护自己更改了注册表,让你没有办法显示出隐藏文件来,这时又要更改注册表,到
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]
查看CheckedValue的值是否为正常 DWORD:1
有些比较狠的病毒甚至会把文件夹选项中的显示所有文件选项都搞没了,基本上也是在这个键值下折腾,也不细说,可以查找相关资料.

如果前面遇上钩子程序,进程无法关闭,删除文件时会遇上麻烦,不让删,这时可以使用一个非常好用的小程序,Unlocker,利用它,可解除进程对文件的保护,基本上可以把病毒文件删除.附件中我也附上了

5.一些要注意的地方
注意计算机和用户的启动和关机脚本,也许你删除了注册表的启动项,但关机时它又用关机脚本给你加上了.还有autorun.inf文件,也是很讨厌的东西.
如果上述行动进行的不顺利,可以先来这么一步.我们知道,要对付病毒,如果它不启动,我们一删就行,一旦它启动了,就麻烦了,那么如何让它不启动呢?下面告诉你一个方法,虽然有点赖皮,但很好用:
把病毒加在自启动项里的所以东西清除以后,也就是前面第三步,完成以后,先不做别的,清除完闭,立即对这些项目设置权限,谁也不能访问,因为病毒感染你以后,会有跟你同样的权限,所以你要把这些项目的权限清理得一干二净(自己也不访问了),然后立即重启,就直接按机箱上的RESET就行.也别点开始了,重启后因为启动项被封了,病毒就得不到启动,再清理就容易多了.
我遇到过一次很恶心的经历,先是两个进程互保结束不了,用unlocker帮忙把文件删除了,但它似乎有备用的地方,一会儿就又回来了.于是只好想着用这个方法,谁知道,那进程竟然连启动项键值run键都监视了,启动项目删除了,一刷新又回来了,自己设置权限的速度当然没有它刷新的速度快,真是恶心加变态,当时把我挤进死胡同郁闷的不行,后来是从网络上另一台计算机用另一个用户登录本机,把这个用户的RUN键权限给清除才搞定的.过程我在这儿记述了http://www.sharecenter.net/viewthread.php?tid=158668&page=1

6.清理手尾后遗症问题
如果病毒是用自身的文件代替了系统文件,那你删除病毒文件后,记得从别的机子(干净无毒的,别再复制一个病毒回来)复制或者从安装盘中解压一个出来放回原位,不然,有可能会出现一些莫明其妙的问题.还要注意解决文件关联,有些病毒会把某些文件的默认打开方式指向自己,当病毒被清除后,往往会造成该类文件无法打开.

7.防胜于治
对于病毒,防患于未然是最好的办法.在这个网络的计算机时代,如果你拥有一台上网的计算机而没有使用任何杀毒软件或防火墙,那跟一个女人在闹市中裸行没有什么区别,不被侵犯是不可能的
所以,你该做的:
1.及时升级病毒库,安装了杀毒软件却使用老旧的病毒库跟没装杀毒软件没什么两样,除了占用系统资源
2.及时升级你的系统补丁,不要问我盗版怎么办
3.关闭所有你不使用的系统服务,远程修改注册表尤其要禁用,当然,如果你需要,那当我没说.
4.如果机器配置不是太差,应该把防火墙打开.


以上几篇杀毒经验的文章,各位高手如有发现错误,请及时跟帖说明,坚决不误导人。
秦人J - 2008-8-8 17:07:00
顶啊 ~~~~顶啊
轩辕小聪 - 2008-8-8 20:11:00
“系统运行所必需的进程
[system Idle Process]
[csrss.exe]
[explorer.exe] c:\windows
[lsass.exe]
[services.exe]
[smss.exe]
[spoolsv.exe]
[svchost.exe]
[winlogon.exe]
[system.exe]
程序全部位于C:\windows\system32
[system.exe]应为System(无.exe后缀)
System和System Idle Process也没有具体的映像文件指向,也不会位于system32文件夹下

进程是操作系统进行资源分配的单位.”这句话其实是不对的。进程其实只是一个程序执行体的内存环境,真正在其中执行程序活动的是线程(早期基础性教科书很少有把进线程的概念区分开)。线程才是资源分配的单位,一个单核CPU每一时刻在其中运行的只有一个线程(不是一个进程),在系统有多个线程需要共同运行的情况下(多任务操作系统),系统为所有未挂起的线程分配时间片(WINDOWS系统来说是每次20ms),当每次一个线程用完这个时间,系统会保护线程上下文,然后切换到另一个线程中,直到循环一次后回到之前的线程,这时恢复线程上下文,继续执行。系统有一套进线程资源调度的方法,其调度对于在其中执行的线程来说是透明的,每个任务都以为自己占有所有CPU资源。然而这其中CPU资源最主要的分配单位是线程,而非进程。

病毒就应该有它自己的进程”,这个说法当然就不对了,病毒本质是恶意代码,它起作用的前提只是获得被执行的机会,它不一定需要建立自己的进程。

我看过HKEY_LOCAL_MACHINE的全称,看过HKLM作为简称,但是从没有看过HKEY_L_M这种不伦不类的缩写方式。

如果进程是可信的,那么Dll也是可信的”这个显然本末倒置,成了一句“看似正确的空话”。并不是因为进程可信其中的DLL就可信,反而进程是否可信,取决于在其中执行的是什么样的代码(DLL是代码的载体)。一旦进程中被注入并执行了恶意代码(大量木马下载器会采用将下载代码注入IE浏览器进程的方式下载病毒),那么这个进程马上变成被病毒利用的进程。如果一个原本正常的系统进程加载了恶意的DLL模块,DLL中的恶意代码被执行,那这个进程也就不可信任。一边说着“进程是可信的那么Dll也是可信的”,一边又说“dll病毒一般……插入到系统关键进程”,那到底什么样的进程才是可信的呢?岂不是越说越迷糊?

“2 去掉启动项
[不建议用msconfig,用Autorun.exe]”

是Autoruns,不是Autorun。

2楼的招,实际上利用的是延迟重命名操作,只要用小工具调用MoveFileEx这个API也就可以达到目的。

“2.现在更猖獗的做法,是采用钩子程序,两个进程互相保护,你灭了一个进程,另一个马上把它启动。就是欺负你没法同时关闭两个进程。哪位大大能编写个同时关闭多个进程的任务管理器就好了。”

除了要“同时”得够快这个办法之外,其实还有更好的办法。
如IceSword的“禁止进线程创建”,第一个进程被结束后,第二个进程创建不了新进程,这时再结束第二个进程。
还有先Suspend再结束的方法。即先把两个进程都挂起(实际上是把其中所有线程都挂起),再依次结束。Process Explorer可以做到这一点。

其他的不再细说。总之,这些文章都是“泛泛而谈”,是一种经验心得类的小结,对新手有一定的指导意义,但是很多东西仍然需要自己在实践中去了解和揣摩才能真正了解。
叶陵君 - 2008-8-8 21:48:00
:default3:  太谢谢小聪学长了,奥运开幕式都没看,来给我们指导。
破晓寒 - 2008-8-9 7:46:00
呀呀呀~好难!看来我还要学习呀~说起简单,实际操作还是有这么难:default8:
happysunday2003 - 2008-8-11 0:06:00
来顶下。。。。学习了
文物2 - 2008-8-11 9:48:00
:default3:


D:\>cd test

D:\test>dir c:\Windows\System32\*.dll /a >>dll_bak.txt

D:\test>listdlls svchost.exe >> svc_bak.txt
'listdlls' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

为什么我不能备份呢?
文物2 - 2008-8-11 10:08:00
可不可以用这个代替:default7:


D:\test>tasklist /svc >>svc_bak.txt
雨痕冰夜 - 2008-8-11 10:20:00
listdlls系统本身里面好像是没有的,应该是要自己下载的吧
文物2 - 2008-8-11 10:58:00
谢谢雨痕冰夜。listdll.exe的确需要另外下载的。我把地址分享给大家。


http://technet.microsoft.com/en-us/sysinternals/bb896656.aspx
4443434 - 2008-8-11 11:11:00
学习了```
1
查看完整版本: 浅谈手工杀毒技术(分享)