中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 08:09
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 调用vbs,保护批处理
可打印版本  1,140 / 5
第1楼 twj1993 发表于 2010-05-03 14:45
新手上路 发帖 1 积分 1
调用vbs,保护批处理
众所周知,批处理文件很脆弱,在非交互式批处理中,不仅有令人讨厌的黑框框,而且其进程极易被结束,就连批处理正在运行时,其脚本文件也能被轻易删除。

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

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楼 freeants001 发表于 2010-05-03 14:51
中级用户 发帖 244 积分 330 来自 湖北
你想于什么;)
第3楼 HAT 发表于 2010-05-03 16:40
版主 发帖 5,017 积分 9,023
能否直接把代码贴出来?
第4楼 jarry0932 发表于 2010-05-03 17:08
初级用户 发帖 122 积分 128
想下下来研究一下,可惜下不下来哟
第5楼 chardos 发表于 2010-05-03 23:08
初级用户 发帖 16 积分 31
YOXI
第6楼 yonghu111 发表于 2010-05-04 15:36
初级用户 发帖 57 积分 90
学习了!!!
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023