“程序设计”目录存档

VBS中Run和Exec的区别

2011年03月26日,星期六

难得见到一篇写得好点的中文的VBS文章,不复制粘贴对不起原作者。

Set ws = CreateObject("WScript.Shell")
'这里创建一个对象引用,以便在以下示例代码中使用。
'Demon注:这个变量名怎么这么猥琐(WS)

(更多…)

用VBS实现PHP的crc32函数

2011年03月24日,星期四

循环冗余校验(CRC)是一种根据网络数据封包或电脑档案等数据产生简短固定位数校验码的一种散列函數,主要用来检测或校验数据传输或者保存后可能出现的错误。生成的数字在传输或者储存之前计算出来并且附加到数据后面,然后接收方进行检验确定数据是否发生变化。一般来说,循环冗余校验的值都是32位的整数。由于本函数易于用二进制的电脑硬件使用、容易进行数学分析并且尤其善于检测传输通道干扰引起的错误,因此获得广泛应用。

昨天进行CRC校验的时候Google了一下CRC的介绍及原理,上面简单摘录了一段,更详细的介绍请访问维基百科。然后老毛病又犯了,怎样用VBS来实现CRC校验?

(更多…)

用VBS解析JSON格式数据

2011年03月21日,星期一

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

更多关于JSON的介绍请访问 http://www.json.org/json-zh.html

在Google Code上有一个aspjson项目,但是这个项目是用VBS来生成JSON格式的数据,而不是用VBS来解析JSON格式数据。我Google来Google去也没找到现成的能够解析JSON的VBS代码。

(更多…)

一个复杂的VBS脚本问题——变量的变量

2011年03月20日,星期日

如果说之前写的《一个简单的VBS脚本问题——两数相加》没有什么技术含量,那么这个问题就相对比较有技术含量了。一个很久以前别人问的问题:

话说。。有a1、a2、a3…..a100这100个变量,不是数组,有没办法快速把他们加起来。。。
for i=1 to 100 step 1
a=a+a & i
next
我试了不行。。

自己先思考一下怎么做吧,我已经把这100个变量准备好了,点击这里获取。随机生成了100个[1,100]之间的数,所有数的和为5076,看看你算对了吗?

(更多…)

VBS伪造HTTP-REFERER(二)

2011年03月19日,星期六

曾经写过一篇《VBS伪造HTTP-REFERER》,是用Winsock控件实现的,这个控件系统默认是没有安装的。还是那句话,这种没有可移植性的代码还是少写的好。我的理念是,“一旦写成处处可用”(听起来好像Java)。

今天无意中发现还有WinHttp.WinHttpRequest.5.1这个COM,功能看起来和Msxml2.XMLHTTP差不多。测试了一下,可以在HTTP请求中发送Referer。

Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
http.Open "GET","https://demon.tw/test/referer.php",False
http.SetRequestHeader "Referer","https://demon.tw"
http.Send
WScript.Echo http.responseText

最后,再次鄙视一下那些测试都不测试就随便复制粘贴的(Google一下“ASP伪造REFERER”,你就知道)。

参考链接:WinHttpRequest Object