中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 闲来无事发个VBS 16进制验证特定字符
作者:
标题: 闲来无事发个VBS 16进制验证特定字符 上一主题 | 下一主题
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『楼 主』:  闲来无事发个VBS 16进制验证特定字符

例子验证VBS自身(红色部分)

  Quote:
'验证字符: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





第一高手    第二高手

2007-12-6 16:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
z640919a
初级用户





积分 157
发帖 72
注册 2006-10-22
状态 离线
『第 2 楼』:  

要学的东西太多,LZ 能否解释Bin后面几句.

2007-12-6 16:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bxdonne
初级用户





积分 28
发帖 11
注册 2007-11-7
状态 离线
『第 3 楼』:  

好东西,但不知道干什么用的 :(
楼主可以解释一下吗?

2007-12-6 16:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 4 楼』:  

本来写这个是分析文件类型的,都是数字函数太晕了.数学不好写不下去

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

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

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



第一高手    第二高手

2007-12-6 18:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
81291895
初级用户





积分 42
发帖 17
注册 2005-8-28
状态 离线
『第 5 楼』:  

验证“'验证字符:fastslz”这一行从第12个字符到第18个字符有没有被修改

2007-12-6 21:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bxdonne
初级用户





积分 28
发帖 11
注册 2007-11-7
状态 离线
『第 6 楼』:  

1、如果是WScript.Arguments对象则分析某文件某位置是否被修改
这个能不能给个例子?

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

2007-12-7 12:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 7 楼』:  



  Quote:
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是拖放文件或命令行里指定的文件,作用是保护其他文件不能被修改:)

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



第一高手    第二高手

2007-12-7 13:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bxdonne
初级用户





积分 28
发帖 11
注册 2007-11-7
状态 离线
『第 8 楼』:  

谢谢你的回答:)

2007-12-7 13:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: