主题:VIKING病毒专杀
帅哥阳伞
[专家分:16530] 发布于 2007-04-04 12:14:00
最近VIKING病毒老是来惹我,可恶的是用的杀毒软件根本无法检测出病毒,无奈下自己动手写了个威金专杀,可以分析病毒大小,可以单杀某个EXE文件,等等,病毒信息会自动保存,我想应该可以对付威金病毒的任意变种了。
http://upload.programfan.com/upfile/200704110851197.rar
最后更新于:2007-04-11 08:52:00
回复列表 (共37个回复)
沙发
靠VB吃饭的人 [专家分:5840] 发布于 2007-04-04 12:22:00
不错,不过能不能公布一下源码让我们学习一下?
板凳
帅哥阳伞 [专家分:16530] 发布于 2007-04-04 12:44:00
VIKING病毒查杀关键是病毒的大小和怎么判断是感染病毒的文件
解决方法:
1、分析程序文件的图标,一般感染的EXE文件是没有图标的,所以利用API函数ExtractIcon就可以判断该程序文件是否感染了;
2、病毒大小: 通过循环逐步增加字节同时判断是否有图标,如果有就说明是病毒大小了代码如下
For Vid = CLng(Text4) To CLng(Text5) '病毒大小估计范围
Open Text3 For Binary As #1
lenth = LOF(1) - Vid
ReDim s(lenth) As Byte
Get #1, Vid + 1, s()
Close #1
Name Text3 As Text3 & ".old" '保留原文件
Open Text3 For Binary As #1
Put #1, , s() '重建新文件
Close #1
Label2.Caption = "已分析:" & Vid & "/" & Text5
DoEvents
If StopAnalyze = False Then Exit For '判断是否终止分析
'检查文件是否回到正常
If JudgeIsIcon(Text3) Then ' 判断新建的文件是否有图标
List2.AddItem Vid
Label2.Caption = "分析完成!病毒大小为" & Vid & "字节。"
Exit For
Else
Kill Text3 '没有就删除新建的文件
Name Text3 & ".old" As Text3 '恢复原文件
End If
Next '继续分析
3 楼
帅哥阳伞 [专家分:16530] 发布于 2007-04-05 13:54:00
希望大家互相学习
4 楼
loveyouvb [专家分:1600] 发布于 2007-04-06 14:27:00
通过判断图标的方法我觉得不怎么好吧!!!很多文件以前被修复了但是图标也是存在问题,这样不就又被你认为是VIKING了么?
我觉得最好的方法是判断每个EXE文件的计算机实际大小,因为被感染了的文件计算机实际大小都是一样的。这可能就是VIKING最大的特点了(要想杀威金病毒的任意变种,这个是最好的方法了)
不知道大家了不了解计算机实际大小!以前我问了很多次都没人知道这个是什么意思!
我相信伞哥应该会知道EXE文件的计算机实际大小是什么意思吧?
如果您知道如何获得EXE文件的计算机实际大小的话请给份代码我哟 呵呵 太贪心了
5 楼
帅哥阳伞 [专家分:16530] 发布于 2007-04-06 16:11:00
首先感谢楼上的关注本题, 需要说明的是我的判断图标的方式不是象你那样认为的判断。因为VIKING病毒感染的EXE程序,其实是病毒头+原程序,所以感染的EXE文件比原来的大,但问题是如何判断EXE文件是被感染了呢?这是个关键。原先我也考虑的是判断大小,但问题是我们怎么知道该程序的大小变化了呢,包括有些可能是自己版本升级增加的字节,所以我最终放弃了这种想法。采用图标分析方法其实2楼的代码已经很能说明问题,正因为感染文件=病毒头+原程序,而只要脱掉病毒头,原程序的图标就恢复正常,这样我就首先让程序做分析,即从头不断的减少字节并同时判断是否有图标个数出现,如果有就说明病毒头大小已经被找到,接下来只要减掉这个大小的字节就是正常的EXE文件了。同时这个病毒头大小就可以保留在我的病毒信息里。通过分析后我的程序就能够将这种病毒查杀,处理方式:先将这个头切掉并判断处理后的文件是否有图标,有的话就说明是感染文件,没有的话恢复其原样。这样就不会出现杀错的现象。
而且我也自己仿造病毒感染的方式,感染一些EXE程序文件,还让其出现不同的新变种,然后用我的专杀来分析,都能一一干掉,所以请放心。
还有就是loveyouvb说的“计算机实际大小”,我不是很清楚是什么,但从我中的两次VIKING病毒的病毒头分析是大小不一的,这也就是瑞星等杀毒或专杀软件只能杀某一变种的原因,而对于新变种又要重新制作专杀了,而我的软件是可以分析这些感染文件并能获取病毒头大小,有了这个病毒头大小的话,接下来的查杀就方便了(VIKING的变种我想应该就是病毒头大小的变化)。
最后:大家如果有感染这种病毒的话,可以将感染文件发我。
6 楼
凡尘 [专家分:9680] 发布于 2007-04-06 17:51:00
我晕哟,你怎么不早点出来这个软件
我1个月前才重装系统,就是被Viking害的。
高人,佩服
7 楼
merry05 [专家分:8920] 发布于 2007-04-06 18:54:00
天,高人,偶什么时候才能修炼到这种程度?
8 楼
wwc7654321 [专家分:1590] 发布于 2007-04-06 20:25:00
厉害,我以前也被VIKING骚扰过,就自己编了一个简单的程序,检测指定名称的进程并结束,锁定指定路径……可设计不出还原EXE的程序啊。
但是我中过一种,感染的EXE有图标就是颜色不对,用江民专杀可以恢复,不知这样的EXE本软件可不可以恢复?
9 楼
帅哥阳伞 [专家分:16530] 发布于 2007-04-06 20:40:00
回8楼的应该可以的,只要它是病毒头+原EXE程序文件就一定可以找到病毒头大小的,你可以发个感染文件给我,我试试看。
其实原理说出来后我想这里肯定有很多人就会做了的,我只是先想到而已,并不是高人,不懂的还很多呢。
10 楼
loveyouvb [专家分:1600] 发布于 2007-04-07 02:56:00
既然想不到伞哥会为我打了这么多字 嘻嘻
我有点理解你的从头不断的减少字节的方法,但是我想告诉你一件事,很多文件是有资源文件的,如果EXE文件里的资源文件也有图标的话,那您这个程序该如何判断? 呵呵 这个您应该没想过吧!
我知道每个变种的头大小都是不同的,但是同一个变种的头是相同这个是不能否认的吧?因为VIKING感染并不是感染一部分文件,而是感染全部EXE。但是他有一个缺点就是头大小都是一样大(不同变种除外)。这就可以从硬盘的各个地方取出几个文件,如果文件的头都是一样大,那就很有可能是中了该病毒。还有个问题好象他的图标也和原先文件的图标不同了,应该是提取图标失真了吧。以前我一个朋友中过,图标都是失真的,我随便写了个专杀给他全都能杀掉,代码超级简单。因为他哪个变种实在是太烂吧。不知道伞哥您中的这个变种图标效果是怎样的呢?能否给我发个样本看看 我的邮箱loveyouvb@163.com
我来回复