如何把批处理程序隐藏运行

如何把批处理程序隐藏运行,第1张

可以编辑一个vbs脚本,在其中以隐藏窗口运行批处理程序。

------------------------------------------------------------

Set ws = CreateObject("Wscript.Shell")

ws.run "cmd /c 批处理程序名",vbhide

------------------------------------------------------------

将水平线中代码拷贝到记事本中,保存为"runbat.vbs"或者其它的名字(扩展名必须是.vbs),然后点击旅侍枯运行生成的脚本runbat.vbs,即可隐谈知藏运行指定的批处理程序。

这个vbs脚本也可以在bat环境中直接调用,达到隐藏拆洞bat自身目的

@echo off

if "%1"=="h" goto begin

start 弯芹氏mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h"埋散,0)(window.close)&&exit

:begin

这里写命令

方法一:

@echo off 

if "%1"=="h" goto begin 

start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit 

:begin 

::以下为正常批处理命令,不可含有pause set/p等交互命令

如果双击一个批处理,等价于参数为空,而一些应用程序需要参数,比如在cmd窗口输入shutdowm -s -t 0,其中-s -t 0就为参数。shutdown为%0,-s为%1,-t为%2,以此类推。 

第一行我们先跳过,看第二行,表示利用mshta创建一个vbs程序,内容为:createobject("wscript.shell").run(……).如果运行的批处理名为a.bat,在C:\下,那%0代表C:\a.bat,%~nx0代表a.bat。h极为参数%1,0表示隐藏运行。由于你双击运行,故第一次批处理%1为空,if不成立,转而运行下一句。然后再次打开自己,并传递参数h,此时if成立,跳转至begin开始运行。 

这两行很经典,可以使批处理无窗口运行。

方法二:(这个不会生成临时文件(兼容空格路径的):

@echo off 

if "%1" == "h" goto begin 

mshta vbscript:createobject("wscript.shell").run("%~fs0 h",0)(window.close)&&exit 

:begin 

rem 下边开始写批处代码了 

方法三:

将下面任何一句话加在@echo off下面都可以起到隐藏执行的效果,(code标签后就是要隐藏执行的任务) 

两句代码的思路相同,实现手段不同.请细细体味:

if "%1"=="h" (goto code) else (mshta vbscript:createobject^("wscript.shell"^).run^("%~fs0 h",0^)^(window.close^)&exit)

if exist #hide.vbs (del #hide.vbs &goto code) else (echo createobject^("wscript.shell"^).run "%~fs0",0 >#hide.vbs&start

#hide.vbs&exit)

这段代码不会闪提示符出来 

@echo off 

if "%1" == "h" goto begin 

mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit 

:begin 

rem 下边开始写批处代码了

方法四:

@echo off 

start /min 1.bat

将上面的代码保存为: 2.bat

之后将你的批处理文件保存为 1.bat,运行之前先打开2.bat,则1.bat就最小化运行了.

(1)通过批处理命令实现。缺点:会看到一个窗口一闪而逝首拦。优点:简单,直接添加即可。

@echo off

if "%1"=="h" goto begin

start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit

:begin

::以下为正常批处理命令,不可含有pause set/p等交互命令

pause

(2)利用vbs脚本实现隐藏。缺点:调用麻烦点。优点:基本看不到痕迹(非绝对的,指一般用户)

HideRun.vbs

CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0

其中D:/test.bat是你的批处理路径

.....................................................................................................................................

另一思路为把bat转换成vbs,然后vbs生成一个临时bat文件,然后WScript.Shell.Run隐藏启动这个临时bat。

HideRun.bat

echo CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0>$tmp.vbs

cscript.exe /e:vbscript $tmp.vbs

del $tmp.vbs

这个批处理其实不能使其批处理本身隐藏,但是下面大部分隐藏调用批处理的原理和基础。

HideRun.js

new ActiveXObject('WScript.Shell').Run('cmd /c D:/Test.bat',0)

用JavaScript有什么好处呢?js的字符串变量可以用单引号,从而方便命令行作为参数调用,而且js很好的支持多行语句用 分隔写成一行。要注意的是:js要区分大小写,方法

必须用括号,结尾必须有分号。所以就成了下面的命令:

mshta "javascript:new ActiveXObject('WScript.Shell').Run('cmd /c D:/test.bat',0)window.close()"

通常系统管理员会向用户端推送一些脚本并运行,或者拷贝批处理文件到客户端由用户自己运行。但是大部分脚本在运行时会d出黑色背景的DOS窗口,这会让不少用户不知所

措,甚至误 *** 作关闭正在运行的窗口。好在批处理文件的DOS窗口是可以隐藏的,以下是几种隐藏批处理运行窗口的方法。

1.基础

HideRun.vbs

CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0

其中D:/test.bat是你的批处理路径

另一思路为把bat转换成vbs,然后vbs生成一个临时bat文件,然后WScript.Shell.Run隐藏启动这个临时bat。

HideRun.bat

echo CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0>$tmp.vbs

cscript.exe /e:vbscript $tmp.vbs

del $tmp.vbs

这个批处理其实不能使其批处理本身隐藏,但是下面大部分隐藏调用批处理的原理和基础。

HideRun.js

new ActiveXObject('WScript.Shell').Run('cmd /c D:/Test.bat',0)

用Javascript有什么好处呢?js的字符串变量可以用单引号,从而方便命令行作为参数调用,而且js很好的支持多行语句用 分隔写成一行。要注意的是:js要区分大小写,方法

必须用括号,结尾必须有分号。所以就成了下面的命令:

mshta "javascript:new ActiveXObject('WScript.Shell').Run('cmd /c D:/test.bat',0)window.close()"

2.用快捷方式

如果要使一个批处理本身隐藏,可以参考附件里的一个快捷方式,修改附件中的相关路径即可隐藏启动你的批处理。可以用vbs来建立一个 .lnk,其实用批处理也行(先echo一个

vbs出来)

3.利用系统服务

可以建立一个系统服务然后启动这个服务来启动批处理。缺点是启动服务较慢,需要管理员权限

runassrv add /cmdline:"C:/Windows/System32/cmd.exe /c D:/test.bat" /name:"mysrv"

net start mysrv

4.利用at计划任务

用at可以建立一个计划任务,在不输入 /interactive 参数可以后台运行。但是建使用at必须有管理员权限

at 09:10 "cmd /c D:/Test.bat"

然后在 9:10 系统就会自动后台以SYSTEM权限运行这个bat


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12441110.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存