文章关键字 ‘VBScript’

VBS加密 & VBE解密

2010年07月22日,星期四

用Script Encoder加密VBS脚本

Script Encoder 是一个简单的命令行工具,脚本设计者可使用此工具对他们的最终脚本进行编码,从而使 Web 主机和 Web 客户端无法查看或更改其源代码。注意,这种编码只能防止对您代码的一般性浏览,而无法防止专业黑客查看您的代码和实现方式。

这其实并不是加密(encrypt)而仅仅是编码(encode),只不过乍一看是乱码,好像被加密过一样。使用方法很简单,安装目录有帮助手册,上面写得很清楚,在这里举一个最简单的用法,使用下面的命令加密example.vbs脚本

screnc.exe  example.vbs  example.vbe

用Script Decoder解密VBE脚本

VBS是解释型语言,所以加密后的VBE肯定能够被Windows脚本宿主解释程序解密然后再解释执行。但是微软并没有提供解密程序或者解密算法,一位牛人通过自己的测试推出了解密的算法,并写了一个Script Decoder程序,还把源代码公布出来。我编译了一个测试了一下,效果不错。使用下面的命令解密example.vbe脚本

scrdec18.exe  example.vbe  example.vbs

相比之下,这个网站也有一个解密程序,但是竟然要收费!否则只能解密VBE的前50个字节。最近在学习破解,正好拿来练练手,保护工作做得不怎么样,很轻松就爆破了,而且解密的效果也不怎么样,难道是我的爆破有问题?不管那么多了,有开源的Script Decoder就行了。

另外还有在线解密的网站,对英文的解密效果还不错,但是对于有Unicode字符的代码效果就不怎么样了。

用VBS实现Discuz论坛自动回帖程序

2010年07月2日,星期五

曾经是多么的热衷于刷积分,用C#写了一个Discuz论坛自动回帖程序(源码找不到了)。后来顿悟了,积分什么的,只不过是浮云罢了。其时VBS水平比原来提高了一点,发现用C#写Discuz论坛自动回帖程序有点太大材小用了,用VBS脚本就可以轻松实现Discuz论坛自动回帖程序。能用脚本做的事情,何必用高级语言去做呢?

(更多…)

用VBS发送邮件

2010年07月1日,星期四

曾经在编写VBS版U盘小偷程序的时候Google过怎么用VBS发送E-Mail,不知道为什么当时Google不到,可能是眼花了吧。使用CDO.Message对象就可以实现,示例代码演示的是gmail发送纯文本并带附件的邮件,至于其他的电子邮箱,需要修改代码中对应的smtp服务器和端口,原理也是一样的,就不举例了。贴出来的代码没有写注释,需要看注释的请下载源码。

Const Email_From = "still.demon@gmail.com"
Const Password = "password"
Const Email_To = "380401911@qq.com"
Set CDO = CreateObject("CDO.Message") 
CDO.Subject = "From Demon"
CDO.From = Email_From
CDO.To = Email_To
CDO.TextBody = "Hello world!"
cdo.AddAttachment "C:\hello.txt"
Const schema = "http://schemas.microsoft.com/cdo/configuration/"
With CDO.Configuration.Fields
	.Item(schema & "sendusing") = 2
	.Item(schema & "smtpserver") = "smtp.gmail.com"
	.Item(schema & "smtpauthenticate") = 1
	.Item(schema & "sendusername") = Email_From
	.Item(schema & "sendpassword") = Password
	.Item(schema & "smtpserverport") = 465
	.Item(schema & "smtpusessl") = True
	.Item(schema & "smtpconnectiontimeout") = 60
	.Update
End With
CDO.Send

一个VBS恶作剧程序

2010年06月30日,星期三

很久很久以前,好像是高考后的那个夏天,收到过朋友的一个恶作剧程序,程序名为“一篇感动人的文章.vbs”,当时什么都不懂,直接双击了,一直耿耿于怀。双击后弹出一个输入框“输入‘我是猪’,否则十五秒后关机。我还以为是搞笑的,什么都没有输入,就真的关机了,觉得很神奇。而现在能够自己写出代码了,却再也找不到以前的快乐。

Option Explicit 
On Error Resume Next 
Dim answer
Dim WshShell
set WshShell = CreateObject("wscript.Shell")
WshShell.Run "Shutdown /f /s /t 10 /c 输入'我是猪',否则10秒后关机~",0
Do While answer<>"我是猪"
	answer=InputBox("输入'我是猪',否则10秒后关机~","哈哈哈",,7000,8000)
Loop 
WshShell.Run "Shutdown /a",0
MsgBox "哈哈哈,好玩不?",,"哈哈哈"

打开记事本,把代码复制粘贴进去,保存为“一篇感动人的文章.vbs”,一个恶作剧程序就完成了,接下来做什么就超出本文范围了。

暴风一号病毒VBS源码解密

2010年06月29日,星期二

一个寂寞的人写的VBS病毒,即网上所谓的1KB文件夹快捷方式病毒。只不过是恶作剧程序罢了,只能拿来吓吓不明真相的同学,根本不算严格意义上的病毒,不过为了方便,我在文中仍然称之为病毒。话说回来,我第一次看到这个程序的时候震惊了一下,因为第一眼看上去貌似全部都是注释,全是注释怎么可能执行呢,然后仔细一看,原来有一行没有注释,代码就是从这一行开始执行的。作者真是太寂寞了,写个VBS病毒还加密,VBS加密只能拿来骗骗杀毒软件,在人眼面前就没有任何秘密可言了。不过事实证明某些杀毒软件还是很好骗的,比如某款自吹永久免费的流氓软件,好像叫361还是什么来着,我不记得了。反正我直接双击病毒它不报毒(注,不是我的电脑,我的电脑没有这种软件),然后双击根据病毒代码改写的专杀程序,弹出一个警告,笑死我了。

解密的方法很简单,只要弄清楚没有注释的那一行代码做了什么就行了。那么那一行做了什么呢?自己去看代码吧。简单的说,就是读取病毒自身,将注释解密以后得到最后的病毒代码,然后通过VBS的Execute语句执行解密后的病毒代码,同时变换加密后把新加密的代码写入源文件。所以,我们只要把最后的Execute语句改写输出语句,就可以得到病毒解密后的代码了。下面是我根据病毒代码改写的解密程序,只要把病毒拖动到解密程序上,就会在同一文件夹生成病毒解密后的代码。代码太长就不贴出来了,感兴趣的自己下载。不得不说,代码的写的很整齐,对学习VBS很有借鉴的价值。

警告:病毒源码仅供VBS学习之用,请勿非法使用,由于非法使用造成的后果与本人无关

解密前的暴风一号病毒(1KB文件夹快捷方式病毒)

[download id=21]

暴风一号病毒(1KB文件夹快捷方式病毒)解密程序

[download id=20]

解密后的暴风一号病毒(1KB文件夹快捷方式病毒)

[download id=22]

根据暴风一号病毒(1KB文件夹快捷方式病毒)源码改写的专杀程序

[download id=23]