手工杀掉双线程、感染所有EXE文件病毒
手动杀灭 “刘德华病毒” 顽固变种
电脑正常运行,并没有特别的异常情况,但我心想,一定不会这么简单,先上网查查吧。不查不知道,一查吓一跳,原来这是一个叫做“诡秘变种S”的病毒,大家也把它称为“刘德华病毒”,这种病毒主要通过局域网进行传播,它试图把自己复制到局域网其他用户的共享文件夹里。感染病毒之后,会将自己拷贝到系统目录下,文件名为“svchost.exe”。病毒会修改exe文件的关联方式,这样用户每次运行exe文件的时候都会先运行病毒。通过病毒的接应,黑客可以远程对用户电脑进行控制,任意删除用户电脑上的文件,获取用户存储在电脑上的信息。
看到发作结果这么可怕,于是赶紧着手杀毒。卡巴斯基没有报警,看来只好用其他杀毒软件了,于是我试了试瑞星、金山等杀毒厂商提供的免费查毒功能,结果发现,没有一个可以查到。看来我所感染的这个是老式“诡秘变种S”的变种,目前还未被各杀毒厂商发现,看到其可能会获取用户资料,心里又万分焦急。无耐之下,尝试手动杀毒。经过一番努力,病毒基本处理干净,作为对大家解决病毒、木马问题的参考,写下我的处理过程。
首先作为验证,我到C盘WINDOWS目录查找是否有svchost.exe文件,没有,可能是隐藏文件,于是想显示所有文件再查。点击资源管理器中的文件夹选项后,出现如下情况:
竟然不可以修改显示“隐藏文件和系统文件”属性,看来病毒已经在注册表作了手脚。试着运行REGEDIT.EXE,可以进入,进入后查看HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden,发现其下没有SHOWALL项,看来是病毒删除了。先按照下面注册表文件还原:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]
"RegPath"="Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced"
"Text"="显示所有文件和文件夹"
"Type"="radio"
"CheckedValue"=dword:00000001
"ValueName"="Hidden"
"DefaultValue"=dword:00000002
"HKeyRoot"=dword:80000001
"HelpID"="shell.hlp#51105"
更改注册表后退出,再进入文件夹选项时已经出现了“显示所有文件和文件夹”的选项,选中后,立刻进入windows目录下,果然发现了病毒体svchost.exe(操作系统的svchost.exe并没有放在windows目录下),但过了一会再查看,发现又无法显示隐藏和系统文件了,删除svchost.exe文件时提示文件保护,无法删除。综合推断,病毒驻留程序会隔一段时间监视注册表的改动(其实是不管三七二十一重写特定键值)。按下“ctrl+alt+del”键进入任务管理器后查看,有多个svchost(有几个是系统核心进程),试着逐个结束,未果,看来病毒有自我保护技术(双线程或其他吧,没有具体分析)
再次进入注册表编辑器,发现启动项中已加入了键名为”microsoft”,键值为”c:\windows\svchost.exe”的运行键。同时发现果然所有的.exe文件的关联方式都被改为了“C:\WINDOWS\svchost.exe "%1" %*”
运行注册表监视程序Regmon,发现病毒会隔一段时间强行改动以下几个重要键值:自动运行、.EXE关联、是否显示隐藏文件、是否显示文件扩展名,以及添加“HKLM\SOFTWARE\mysoft”项。
驻留程序无法结束,注册表不能改动,文件又无法删除,这可该怎么办?好办,请出WINHEX->著名磁盘编辑软件,主要的解决思路是利用WINHEX对磁盘进行编辑,从而对病毒体进行破坏,导致病毒体无法正常工作。首先打开REGEDIT.EXE,导出.exe的关联项,并修改为正常(自己后期编辑也可以),以防破坏病毒体后所有EXE文件打不开。下边是必改键值的REG文件的内容:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\exefile\shell\open\command]
@="\"%1\" %*"
带毒状态下打开WINHEX,单击”TOOLS”下的”open disk”菜单,选择”logical drives”下的”Fixed drive (c)” 打开目录浏览器(access菜单旁边,如下图)
在winhex的目录浏览器中进入WINDOWS目录,找到” svchost.exe” ,在其目录条目上双击定位到SVCHOST.EXE文件在磁盘上的开始位置。接着在开始位置单击鼠标右键,选择”beginning of block” ,再向后翻3-8个左右的扇区,找个位置单击鼠标右键,选择” end of block”。紧跟着在BLOCK区的任意一处位置单击鼠标右键,选择”fill block”,填充全0值。这时候”svchost.exe”已经被破坏。
接着重启计算机,发现弹出很多错误对话框,这是正常的,因为.exe的关联已经损坏,所以正常开机执行的启动程序都不能正常工作了。无所谓,操作系统还可以正常工作。随后直接双击我们备份好的关联.EXE的REG文件,即可运行所有.EXE文件。
运行REGEDIT,删除自动运行里病毒的启动项。
删除”C:\WINDOWS\SVCHOST.EXE”
在系统中打开隐藏文件,查找大小为759,296个字节的.EXE文件,确定其同样为病毒体时,删除。
至此病毒应该已经手动杀掉了,我在后来的几次虚拟机的试验中也确实发现已经干净了,但我真实的感染案例中却远没这么简单。
正常运行了几天吧。我要安装一个软件,其安装程序在我的E盘,转到E盘执行SETUP后,发现怎么也装不上,老提示参数错误。反复重试后,猛然发现,在双击SETUP的同时,目录下自动生成了一个半透明的隐藏文件”setup .exe”(之前杀毒后已打开显示隐藏文件开关,此”SETUP .EXE”文件名中有一空格), 对比真正的文件,发现我E盘绝大部分EXE文件都被病毒修改,我又查了一下其他分区,发现除了C盘(系统分区)以外,别的分区均有被病毒修改的.EXE文件。仔细研究后发现,病毒对.EXE的修改方法是:病毒文件+好的.EXE文件+可能的12个字节,时间等属性不变,但大小会增加。
当运行任一感染的.EXE文件后,其中的病毒体会首先执行,而后释放出正常的.EXE,执行正常的.EXE文件,执行后再将其删除,所以事实上病毒已再次发作。不得已,重复前面过程,将病毒从内存中清除出去,再着手修正感染的每个.EXE文件。要想修改每个被感染的.EXE文件,可不是件容易的事,又试了一下国内几个著名的杀毒软件,还是杀不掉,没办法,一边将病毒提交给各大杀毒厂商,一边自己动手处理。(截止此文写作,瑞星回复,他们已将笔者提交的特征码加入其新病毒库,经验证,的确已经可以查到)
由于没有很好的现成工具能处理这么一大片文件,所以再次请出WINHEX(好强大的功能),我用WINHEX提供的脚本功能做了个专杀工具,虽然WINHEX提供的语法不是太严谨,但总算是可以实现要求了。
首先我确保WINHEX没有被感染(不行可以重新安装一下),然后在C盘建立一个杀毒用的临时目录,如TEMP,然后进入命令提示符状态,执行:
dir /b /s d:*.exe >c:\temp\d.ls
dir /b /s e:*.exe >c:\temp\e.ls
……
然后,在TEMP目录下用记事本编写两个扩展名为.WHX的文件
//main.whx的内容:
Closeall
//接受列表文件,如C:\TEMP\D.LS,也可采用相对路径
GetUserInput lspath "请输入杀毒的列表文件路径:"
//打开列表文件
Open lspath
Assign pathcharnum 0
SetVarSize pathcharnum 2
{
//从列表文件中读内容,如果遇到回车(0x0d0a)就把前面的字符加入变量中
//同时清除此段内容,由于WINHEX语法所限,先将选中的.EXE文件的字符数写在路
//径的后面(更改0x0d0a),以此限定变量的字符数
Read tempA 2
Move -1
IfEqual tempA 0x0D0A
Move -1
Write pathcharnum
Assign pathcharnum 0
SetVarSize pathcharnum 2
//WINHEX目前无法实现相同语法结构的嵌套,所以用调用另一脚本的方法实现
ExecuteScript "kill.whs"
Else
Inc pathcharnum
EndIf
}[unlimited]
//kill.whx的内容:
move -2
Read pathcharnumt 2
goto 0
Read path pathcharnumt
Block 0 (pathcharnumt+1)
Remove
goto 0
open path
Assign estimate 0
Assign TempB 0
Assign FileSize GetSize
//若打开文件大小小于病毒体,直接跳过,处理下一个文件
IfGreater (0xB95ff-FileSize) 0
JumpTo ContinueHere
EndIf
//特征判断
block 0x100 0x10f
Find 0x504500004C010800195E422A00000000 BlockOnly
IfFound
Inc estimate
EndIf
//特征判断
block 0x5e0 0x5ef
Find 0x60664000203940005C3940001154496E BlockOnly
IfFound
Inc estimate
EndIf
//特征判断
block 0x1900 0x190f
Find 0x010514164A00833D14164A000C0F8D4C BlockOnly
IfFound
Inc estimate
EndIf
//特征判断
block 0x9000 0x900f
Find 0xC0045BC383E8048B0083E804C38D4000 BlockOnly
IfFound
Inc estimate
EndIf
//特征判断
block 0x10000 0x1000f
Find 0x55F88D45D4E8A2E3FFFF668B45D46625 BlockOnly
IfFound
Inc estimate
EndIf
//特征判断
block 0x200b0 0x200bf
Find 0x8BC6E86930FEFF5E5BC38BC083C00850 BlockOnly
IfFound
Inc estimate
EndIf
//特征判断
block 0x30000 0x3000f
Find 0x8B08FF91CC000000EB228B45FC8B4010 BlockOnly
IfFound
Inc estimate
EndIf
//特征判断
block 0x40000 0x4000f
Find 0x8BD38B83D4010000FF93D00100005F5E BlockOnly
IfFound
Inc estimate
EndIf
//特征判断
block 0x50000 0x5000f
Find 0x6C7911706F44656661756C7453697A65 BlockOnly
IfFound
Inc estimate
EndIf
//特征判断
block 0x60000 0x6000f
Find 0x8B10FF12837D08007407C74324010000 BlockOnly
IfFound
Inc estimate
EndIf
//特征判断,判断结尾是否是病毒填充的12个字节
block (FileSize-12) (FileSize-1)
Find 0xE903000000960B0044444444 BlockOnly
IfFound
Assign TempB 1
EndIf
//处理最后12个字节,如果符合病毒特征,移除!
IfGreater estimate*TempB 10
block (FileSize-12) (FileSize-1)
Remove
EndIf
//处理病毒附加的病毒头,如果符合病毒特征,移除!
IfEqual estimate 10
block 0x0 0xB95FF
Remove
EndIf
//保存更改
save
Label ContinueHere
//关闭文件
Close
编辑完这两个文件后,双击MAIN.WHX,执行WINHEX的脚本,很快脚本执行完毕,再进入磁盘查看.EXE文件时,发现病毒已被完全清除,直到现在,未发现异常情况。
回想杀灭此病毒的过程,的确是花费了很大心思,写下来,希望整个流程对读者对付病毒或其他方面有帮助。
本文出自 “张宇(数据恢复)” 博客,请务必保留此出处http://zhangyu.blog.51cto.com/197148/141977
转载于:https://my.oschina.net/u/3579120/blog/1507686
手工杀掉双线程、感染所有EXE文件病毒相关推荐
- macbook怎么运行exe文件 mac打开exe文件的三大方法
exe文件是Windows系统的可执行文件,虽然Mac系统上无法直接打开exe文件,但是你可以在Mac电脑上安装双系统或者虚拟机来实现mac电脑上运行exe文件.除了这两种方法之外,你还可以在Mac电 ...
- Pycharm 中py文件编译成exe文件出现的问题和一个问题解决
1 pyinstaller 命令和参数: usage: pyinstaller [-h] [-v] [-D] [-F] [--specpath DIR] [-n NAME] [--add-data & ...
- 在没有安装VC软件的电脑上也可以执行的exe文件
在debug 和 release中都有exe文件 ,将Release中.exe文件拷出来才可以用: 在菜单栏上的Build--->Set Active Configration-->Win ...
- Java执行.exe文件
Java执行.exe文件, 这里以Java调用g++编译程序为例讲解 (我的g++编译器的和程序都在H:/bin/gcc/bin这个目录) 先来看程序: package wen.hui; import ...
- Ctfmon.exe 文件
什么是 Ctfmon.exe (Ctfmon.exe) 文件? Ctfmon.exe 文件有哪些功能? 我可以删除 Ctfmon.exe 文件吗? 第一种方法 CTFMON.EXE是Office自动 ...
- 如何在PowerShell中使用带有空格和引号的参数运行EXE文件
本文翻译自:How to run an EXE file in PowerShell with parameters with spaces and quotes How do you run the ...
- 托管exe文件的加载和执行
托管exe文件被启动的时候,首先被PE Loader载入.PE Loader载入exe文件之后,会分析PE文件头的data directory table,如果CLR_Header内的值不为0,表示该 ...
- 双击.exe文件出现Debug Error: abort() has been called解决办法(之一)
在vs中编译正常的文件,然后双击.exe文件(Debug文件夹下的)却出现 Debug Error: abort() has been called 解决方法: 1.我记得之前有添加过环境变量 2.把 ...
- 使用Dependency Walkers来检查exe文件中缺少的dll
在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字--动态链接库.现在就让我们走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧! 初窥门径:Windows的基石 随便打开一个系统目录, ...
- asp调用打开exe文件
让IE6.0执行EXE文件的网页 说到要做一个让网页让IE6.0浏览的时候来执行空间下的一个EXE文件的方法要和以前写过的5.0的方法是完全不一样的了,5.0的总体思路是用一个 ...
最新文章
- Stackoverflow 高赞答案,为什么牛逼的程序员都不用 “ ! = null ' 做判空
- IE6/7/8/9中Table/Select的innerHTML不能赋值
- [CRM] CRM 产品周期
- C# IL DASM 使用
- SpringBoot+JsTree实现在编辑时能选择树形结构并获取选中的ID
- javascript 设计模式_开发者都应该了解的7种JavaScript设计模式
- vue知识总结第一篇vue组件的定义以及父子组件的传值。
- Jupyter notebook 不安装主题,通过修改css更改 默认字体,字体大小等
- 《java程序员修炼之道》pdf书籍
- 解决: Elements in iteration expect to have ‘v-bind:key‘ directives
- 工作中影响提高的一些想法
- Java笔记-Spring Boot SSL(https)实例
- 基于Linux操作系统的底层驱动技术
- openresty查看log
- NYOJ--106--背包问题
- XShell6免费版获取(个人版)
- 鸿蒙 悟空遥控,利用悟空遥控推送软件,成功实现高德地图等三方APP装
- 计算机应用基础题库及答案
- 台式计算机如何双屏显示,电脑怎么分屏?|台式电脑双显示器连接方法
- .bat、python与C++程序进行批量处理的学习与实践
热门文章
- 更改C盘中Pycharm缓存文件目录
- 【微信小程序】webview向h5页面传值
- Hbuilder开发APP(一)——底部导航条简单实现
- HTML制作导航条的方法
- new115.com dz.html,超实用的HTML代码段(赵荣娇)
- 经典JavaScript正则表达式实战(转)
- 如何实现中文汉字进行笔划(笔画)排序?
- Inflated 3D ConvNet 【I3D】
- python中close函数的用法_skft包 pythonpython close()是什么?python close()定义及用法详解...
- 网络延迟到底是什么东西?