标题: 调用vbs,保护批处理
[打印本页]
作者: twj1993
时间: 2010-5-3 14:45
标题: 调用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/942 ... -9f41-0015c55db73d/
作者: freeants001
时间: 2010-5-3 14:51
你想于什么;)
作者: HAT
时间: 2010-5-3 16:40
能否直接把代码贴出来?
作者: jarry0932
时间: 2010-5-3 17:08
想下下来研究一下,可惜下不下来哟
作者: chardos
时间: 2010-5-3 23:08
YOXI
作者: yonghu111
时间: 2010-5-4 15:36
学习了!!!