随笔 - 62  文章 - 257  trackbacks - 0
<2006年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

I Love Programming & Music.... CS Became CSed....

常用链接

留言簿(7)

随笔分类(64)

随笔档案(62)

文章分类(11)

文章档案(11)

相册

BlOoD

FriEnds

搞起的人们

搜索

  •  

积分与排名

  • 积分 - 96991
  • 排名 - 219

最新评论

阅读排行榜

评论排行榜

    文章有点长,请进来看……
    以下的说法全部是建立在Windows XP的基础上的。
    似乎现在很多人的电脑都染了病毒,很惨,我也是电脑小菜,也被病毒折磨过一段时日,所以写下这篇文章,希望对那些还在被一些低级病毒折磨的人有点帮助,呵呵……
    PS:因为我现在也只能杀杀低级病毒哦……
    我们都知道,一个程序要运行就必须被载入内存,而载入内存后,这个程序就成为了一个进程。所谓的系统进程,不过就是操作系统运行需要载入的程序而已,而病毒要运行也一样,他们也一样会被载入内存,成为进程,所以,只要我们认识好了进程,也就具备了手动杀毒的基本知识……
    首先,按Ctrl+Alt+Del打开任务管理器,点选进程,在底下的列表里面就列出了十几个或者甚至几十个进程,你会发现一些很熟悉的名字,比如iexplore.exe(Internet Explorer的进程名)、eMule.exe(EMule的进程名)、QQ.exe(QQ的进程名),所以我们大概可以猜到一般来说进程名和程序名是一样的,但是也有例外。
    那么要学会手杀,就必须先认识这些7788的进程名,特别是系统进程,不然就会出现一些奇奇怪怪的问题……呵呵……
    以下是我暂时想起来的一部份常见的系统进程,当然实际上系统进程的数量要多得多,不认识的可以去网上查一下,或者去Baidu的知道里面问一下也可以:
    alg.exe Windows网络连接共享和网络连接防火墙
    cmd.exe 命令行
    conime.exe 输入法编辑器相关程序
    csrss.exe 子系统服务器进程
    ctfmon.exe Microsoft Office的语言栏
    explorer.exe 资源管理器
    internat.exe 托盘区的拼音图标(注意:不是internet,是internat)
    llssrv.exe 证书记录服务
    lsass.exe 管理IP 安全策略以及启动IKE和IP 安全驱动程序
    mstask.exe 计划任务
    nvsvc32.exe NVIDIA显示卡相关程序
    point32.exe 微软的鼠标驱动
    regsvc.exe 远程注册表操作,开启系统服务remoteregister运行的
    services.exe 包含很多系统服务
    smss.exe session manager会话管理器
    spoolsv.exe 打印缓冲池
    svchost.exe windows 2000/xp 的文件保护系统
    system Windows System Process
    system idle process 用于显示CPU可用资源百分比情况。
    tftpd.exe 实现tftp internet标准。该标准不要求用户名和密码。
    taskmgr.exe 任务管理器
    userinit.exe  管理不同的启动顺序,载入完用户后就退出运行了
    wdfmgr.exe 一个系统服务windows user mode driver framework ,是安装Windows media player 10添加的,用于减少兼容性问题。
    winlogon.exe 管理用户登录
    wmiexe.exe Windows Management Instrumentation,Windows管理程序
    wmiprvse.exe Windows的一部份,通过WinMgmt.exe程序处理WMI操作
    wuauclt.exe Windows自动升级管理程序
    有点晕?正常,但是多看看就习惯了。
    接着,让我们来想想病毒的习性,载入内存,复制和伪装自己,感染文件,并且有一定的自我保护的能力,能在一定情况下复发。所以手杀病毒的思维应该是先结束掉病毒的进程,再找出并删除与病毒相关的文件,再删除和病毒相关的启动项和服务,如果删不掉,则重启到安全模式,甚至DOS下(故障控制台),删除。
对了,介绍几个工具:
    一个是进程分析工具ProcXP(Process Explorer),它的进程管理十分的底层,为了测试他的能力,你可以运行他,结束system看看,结果就是你的机子重启了,因为他把Windows都结束掉了,呵呵……
   
http://www.cppblog.com/Files/asp/ProcessExplorer.rar
    第二个工具就是文件关联恢复器,因为现在很多的病毒都和应用程序挂上了钩,所以杀毒的时候这个工具是十分有效的。
   
http://www.cppblog.com/Files/asp/recover.rar
    第三个工具是IceSword,这个工具几乎可以观察系统中所有的情况,并且能够删除一些特别顽固的文件,还可以结束进程,不过个人做了试验,发现它结束程序的权限好像没有ProcXP高。
   
http://www.cppblog.com/Files/asp/icesword_cn.rar
    接下来,我们就要开始学习怎么检查和删除病毒了。
    首先,看你的电脑有没有异样,比如开机就是一个temp1执行非法操作什么的;速度奇慢无比;插上别人的U盘,别人U盘里面就多了几个文件等等,有就说明,你中彩了。
    运行文件关联恢复器,把“使注册表编辑器可用”选上,点开始修复,然后关掉它。
    打开ProcXP,第一次打开的时候会有提示框,选Yes就OK,接下来,你会看见他的界面,如下:

    里面有几栏:
    第一栏Process,进程名和其父子关系。
    第二栏PID,就是进程在系统中的特定的ID——Process ID。
    第三栏CPU,CPU占用率
    第四栏Description,对程序的描述。
    第五栏Company Name,厂家名。
    另外把鼠标停在一个进程上一会儿,或者在上面点右键,点properties,就可以显示出这个进程对应的程序是什么和这个程序加载了什么。
    然后就是看你的经验了,找出那些很奇怪的进程吧,暂时我用的判定方法有:
    1、 经验,认得病毒。(呵呵,等于没有说)
    2、 一些伪装自己的进程或者文件名:Rundl132.exe、Rundll.exe(伪装Rundll32.exe)、scchost.exe、scvhost.exe、svchost..exe、svchost32.exe、svch0st.exe(伪装svchost.exe)等等。
    3、 一些和系统进程名字一样,但是路径不一样的,比如c:\windows\svchost.exe,而系统文件的路径是:c:\windows\system32\svchost.exe等。
    4、 一些看着名字就不顺眼的:sex.exe等。
    5、 一些很奇特的名字:123.exe、temp1.exe、temp2.exe、sxs.exe、qwer.exe、asdf.exe、run.dll等等。
    6、 一些名字和描述不符合的进程,比如Rundll32.exe描述变成了MS Rundll,而不是Run a Dll as an App。
    7、 用Rundll打开的程序,一般来说不是流氓软件,就是木马,呵呵,暂时给我的感觉就是这样,当然也有例外。这就要自己去ProcXP里的Properties里面看了。
    8、 一些会动不动就会自己复制成几个的进程,如stup.exe。
    9、 本不应该存在的进程,现在存在了,比如说一些非系统进程,常见于一些流氓软件,比如:assisstant.exe(3721),YLive.exe(雅虎助手)
    确定好目标之后就要开始找病毒文件了。
    任意打开一个文件夹,点选工具,文件夹选项,查看。把下面列表里的隐藏受保护的系统文件(推荐)和隐藏已知文件类型的扩展名前面的勾点掉,再选上显示所有文件和文件夹,这样病毒就无处藏身了。但是有时候这种方法会无效,隐藏的文件照样隐藏,比如Rose病毒的一个变种。解决方法是开始-〉运行-〉regedit,打开注册表编辑器,到主键(即里面像文件夹的东西)HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/explorer / Advanced/Folder/Hidden/SHOWALL下面,把右边列表里面的CheckedValue删除,没有的话也好,然后新建一个DWORD值,并设定该值为1,再到文件夹选项里面,就可以改了。
好的,现在显示了所有的文件,病毒在哪里?ProcXP里面不是有写程序的位置吗,记下病毒的位置,结束病毒的进程,去吧,但是注意,这里有几个注意事项:
    第一,进入磁盘和文件夹的时候不要直接双击,而要点右键,选打开,不然的话自动播放会把部分病毒又激活的。
    第二,如果是c:\windows\system32\rundll32.exe的话,那找的文件应该是rundll32.exe后面的加载项,rundll32.exe是无辜的。
找到病毒文件后,删吧,后缀名为.exe的文件一般就删了,但是如果是后缀名为.dll的文件,有时还是删不掉的,怎么办?
    打开ProcXP,点菜单栏里的Find,选Find Dlls,输入你要删的dll名,点Search,如果这个文件被底下调用,就会显示在底下的列表框中,再一个个的找这几个dll所在的进程,把这几个进程结束掉,就可以删除了。
删除了病毒体,我们还要做一点残余工作。
    再次运行文件关联恢复器,把“使注册表编辑器可用”选上,点开始修复,然后关掉它吧,它已经没有利用价值了,呵呵(好残忍哦)。
    比如,病毒复制的磁盘的自动播放,最著名的如rose病毒的一个变种,在每个盘下面都会建立文件,copy.exe、host.exe和autorun.ini,当然判定的依据是autorun.ini里面的内容,里面应该有autorun=,这个后面的内容就是病毒的位置,找到并删掉吧,和autorun.ini一起删掉之后,你会发现自动播放还在那里,并没有删除,这是因为在注册表里面还有残余的原因,还记得autorun=后面的内容吗?运行regedit,进入注册表,进入主键:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2,在里面搜索autorun=后面的内容,即copy.exe,把找到的项所对应的在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2下的主键整个删掉,即可。注意可能有很多个,全部要删哦。删完之后,自动播放就没有了。
    另外,还有病毒的启动项,运行msconfig,选启动,在列表框里面又很多的启动项,看看命令栏里面有没有病毒文件的路径,有的就全部勾掉,确定。
    在右键点我的电脑,选管理。点服务和应用程序,点服务,在右边的列表里面一个一个确定有没有服务调用病毒,有就禁用掉。(什么?看不懂?那就点右键,属性,进去看撒……)
    如果上面的方法不行的话,就去安全模式底下用吧,那些工具在安全模式下也可以用的。
    OK,这样,一般的病毒也就基本上搞定了。:D……
    对了,上面的方法只能保证病毒无法运行,但不一定能完整地删除病毒,因为这种方法是基本通用的方法,不是针对各个病毒的特法,所以请大家见谅哦。
    另外上面的方法只能用于一般比较良性的病毒,如果病毒比较恶劣,比如感染exe文件,而不是在文件关联上绑定,那就没有办法手杀,我说的不是没有办法用这个方法手杀,而是没有办法手杀。因为你要一个一个应用程序的去把病毒删掉,要改程序的入口点,这会导致你可能要手动修改几千个文件,假设一个文件你2分钟就搞定了,而你一共要修改1000个文件,你也要33.33个小时才能搞定,不过如果你有兴趣,可以去研究一下Windows PE文件的结构和分离文件的原理,你会了解很多的事情,比如为什么杀毒软件会在杀毒的时候把一些应用程序删烂,加壳和脱壳的原理,BindFile的原理还有那种不增加文件大小的FileBind的原理等等。
    好吧,说了是略谈,结果说了这么多,说得很浅,但愿大家会喜欢,并且共同进步。

PS:
    如果没有ProcXP的话,可以使用下面的方法,具体使用,自己研究一下吧,我就不说了。
    以下是转Baidu知道的内容:
    打开资源管理器,找到控制面板→管理工具→服务,或许你能找到你想要KILL的进程。
    除了采用PROCXP之类工具外,也可用Windows 2000以上自带几个工具。
    ntsd -c q -p PID
    在windows中,只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。ntsd从2000开始就是系统自带的用户态调试工具。被调试器附着(attach)的进程会随调试器一起退出,所以可以用来在命令行下终止进程。使用ntsd自动就获得了debug权限,从而能杀掉大部分的进程。ntsd会新开一个调试窗口,本来在纯命令行下无法控制,但如果只是简单的命令,比如退出(q),用-c参数从命令行传递就行了。NtsdNtsd 按照惯例也向软件开发人员提供。只有系统开发人员使用此命令。有关详细信息,请参阅 NTSD 中所附的帮助文件。用法:开个cmd.exe窗口,输入:
    ntsd -c q -p PID
    还有就是tasklist、tskill或taskkill。tasklist能列出所有的进程,和相应的信息。tskill能查杀进程,语法很简单:tskill 程序名

posted on 2006-11-26 18:57 Asp 阅读(664) 评论(2)  编辑 收藏 引用 所属分类: Binary Life...

FeedBack:
# re: 略谈手动杀毒 2007-05-15 11:39 豆D
你该不会是被我们班折腾的有感而发吧……  回复  更多评论
  
# re: 略谈手动杀毒 2008-04-30 21:16 wlzb
呵呵
不错,貌似博主是班里的杀毒手  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理