中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-06 20:11
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 闲来无事发个VBS 16进制验证特定字符 查看 843 回复 7
楼 主 闲来无事发个VBS 16进制验证特定字符 发表于 2007-12-06 16:00 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
例子验证VBS自身(红色部分)
'验证字符:fastslz
file=Wscript.ScriptFullName
Dim slz
set slz = CreateObject("Adodb.Stream")
slz.Type = 1
slz.Mode = 3
slz.Open
slz.Position = 0
slz.Loadfromfile file
Bin=slz.read(18)
if AscB(MidB(Bin,12,1))=&H66 and AscB(MidB(Bin,13,1))=&H61 and AscB(MidB(Bin,14,1))=&H73 and AscB(MidB(Bin,15,1))=&H74 and AscB(MidB(Bin,16,1))=&H73 and AscB(MidB(Bin,17,1))=&H6C and AscB(MidB(Bin,18,1))=&H7A Then
WScript.echo "通过验证"
else
WScript.echo "非法修改"
end if
第一高手 第二高手

2 发表于 2007-12-06 16:08 ·  中国 江西 吉安 电信
初级用户
★★
积分 157
发帖 72
注册 2006-10-22 22:03
19年会员
UID 67750
性别 男
状态 离线
要学的东西太多,LZ 能否解释Bin后面几句.
3 发表于 2007-12-06 16:36 ·  中国 辽宁 本溪 联通
初级用户
积分 28
发帖 11
注册 2007-11-07 17:52
18年会员
UID 101992
性别 男
状态 离线
好东西,但不知道干什么用的 :(
楼主可以解释一下吗?
4 发表于 2007-12-06 18:37 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
本来写这个是分析文件类型的,都是数字函数太晕了.数学不好写不下去

Asc、AscB、AscW 是 VBScript 中的三个函数,其区别如下。Asc(string) 返回与字符串的第一个字母对应的 ANSI 字符代码。AscB 不是返回第一个字符的字符代码,而是返回首字节。它返回 Unicode (宽型)字符代码,因此可以避免从 ANSI 到 Unicode 的代码转换。
MidB类似只是返回的是16进制代码

Originally posted by bxdonne at 2007-12-6 16:36:
好东西,但不知道干什么用的 :(
楼主可以解释一下吗?

更改红色部分文字就显示非法修改了。
如果是WScript.Arguments对象则分析某文件某位置是否被修改
第一高手 第二高手

5 发表于 2007-12-06 21:40 ·  中国 浙江 杭州 联通
初级用户
积分 42
发帖 17
注册 2005-08-28 14:49
20年会员
UID 42027
状态 离线
验证“'验证字符:fastslz”这一行从第12个字符到第18个字符有没有被修改
6 发表于 2007-12-07 12:32 ·  中国 辽宁 本溪 联通
初级用户
积分 28
发帖 11
注册 2007-11-07 17:52
18年会员
UID 101992
性别 男
状态 离线
1、如果是WScript.Arguments对象则分析某文件某位置是否被修改
这个能不能给个例子?

2、我想问下是不是可以写一个完全保护自身的脚本?(只要修改某处就能提示"非法修改")
望楼主能写一个出来,谢谢!
7 发表于 2007-12-07 13:21 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
Originally posted by bxdonne at 2007-12-7 12:32:
1、如果是WScript.Arguments对象则分析某文件某位置是否被修改
这个能不能给个例子?

2、我想问下是不是可以写一个完全保护自身的脚本?(只要修改某处就能提示"非法修改")
望楼主能写一个出来,谢谢!


1楼代码就是,只是分析字符串集中在12~18之间,代码中&H66 &H61 &H73 &H74 &H73 &H6C &H7A就是fastslz十六进制值,(Bin,14,1))14表示字符串开始位置,如果分析字符串分布在整个代码各不同处,外加些垃圾运算代码就实现保护自身的脚本不能被修改了,自己灵活应用,如果不太了解VBS和奉劝免伤这脑细胞了

WScript.Arguments是拖放文件或命令行里指定的文件,作用是保护其他文件不能被修改:)

代码本身没什么技术可言,谈到加密验证了~~~就~~~~~~~~~~~~~
第一高手 第二高手

8 发表于 2007-12-07 13:36 ·  中国 辽宁 本溪 联通
初级用户
积分 28
发帖 11
注册 2007-11-07 17:52
18年会员
UID 101992
性别 男
状态 离线
谢谢你的回答:)
论坛跳转: