中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 07:20
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 调用vbs,保护批处理 查看 1,139 回复 5
楼 主 调用vbs,保护批处理 发表于 2010-05-03 14:45 ·  中国 河南 驻马店 联通
新手上路
积分 1
发帖 1
注册 2009-01-20 20:43
17年会员
UID 137130
性别 男
状态 离线
众所周知,批处理文件很脆弱,在非交互式批处理中,不仅有令人讨厌的黑框框,而且其进程极易被结束,就连批处理正在运行时,其脚本文件也能被轻易删除。

在这里,我综合了网上百家学说,用五种方法保护批处理。(详见附件)

1. 窗口隐藏

很老很经典的一招,调用mshta中vbs隐藏窗口。但我在此有所创新:

start mshta vbscript:createobject("wscript.shell").run(""%0" h",0,false)(window.close)

这样更改后,mshta打开cmd.exe然后自己就退了,节约系统资源。并且将%~nx0改为%0,防止非本地调用而出现bug。


2. 代码加密

有两种方法,第一种很古老,使用ASCII字符Union化迷惑人,打开看到的都是乱码,这一个网上介绍的很多,我直接在附件中给出(乱码加密.bat 乱码解密.bat)

第二中也是我收集的,即字符串加密,经测试有效,有基础的朋友一看就明白了,详见(字符串加密.vbs)


3. 进程更名

接着说进程。懂一点批处理的朋友都知道,批处理的进程名为cmd.exe,很容易被关闭。如果我们把他的名字换成其他的,也就减少了被强行结束的风险了。

在附件中我给出了两个文件,一个带窗口隐藏,一个不带,看一看就明白了,很简单,但作用很大。


4. 文件保护

这里我借用网上的方法,使用"占坑法"阻止文件被强行删除。
我们知道,当一个exe文件正在运行事实无法删除的,这里我使用vbs"模仿"打开批处理文件,一次他也就不能被再次打开、删除、重命名,很强的一招,详见附件:文件保护.vbs


5. 进程保护

很简单,如果你在批处理进程外再创建一个vbs进程,并让其看守cmd,发现被关就立即打开,不就可以实现无法结束了吗?详见:保护.bat
但有人说,如果我先关vbs进程,再关cmd进程,不就行了吗?是个问题,但我们如果打开两个vbs,先让其互相监视,再让一个监视cmd.exe不就行了吗?这也是病毒惯用伎俩之一。
但说得容易做的难,我花了很长时间编的:双进程保护.bat,杂糅了以上五种技术,又加入了check.vbs防止反复加载(都是病毒用的),希望大家能学到些东西。


sorry,中国DOS联盟文件上传系统打不开,请到这里下载附件:

http://www.rayfile.com/files/942bc75e-567c-11df-9f41-0015c55db73d/
2 发表于 2010-05-03 14:51 ·  中国 湖北 黄石 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
20年会员
UID 53823
性别 男
来自 湖北
状态 离线
你想于什么;)
3 发表于 2010-05-03 16:40 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
能否直接把代码贴出来?
4 发表于 2010-05-03 17:08 ·  中国 陕西 汉中 电信
初级用户
★★
积分 128
发帖 122
注册 2009-09-21 06:24
16年会员
UID 152378
性别 男
状态 离线
想下下来研究一下,可惜下不下来哟
5 发表于 2010-05-03 23:08 ·  中国 四川 成都 电信
初级用户
积分 31
发帖 16
注册 2010-03-04 14:23
16年会员
UID 161569
性别 男
状态 离线
YOXI
6 发表于 2010-05-04 15:36 ·  中国 重庆 开州区 移动
初级用户
★★
积分 90
发帖 57
注册 2010-04-12 13:29
16年会员
UID 164386
性别 男
状态 离线
学习了!!!
论坛跳转: