对于自我隐藏,您可以使用getCmdPID.bat和windowMode.bat:
@echo off
echo --- self hiding bat ----
pause
call getCmdPid.bat
set PID=%errorlevel%
call windowMode.bat -pid %PID% -mode hidden
这是我实现这一目标的方法集合 - 甚至更多 - 我可能尝试返回已启动进程的 PID(所有链接的脚本都可以下载并以您认为方便的任何名称保存):
- IEXPRESS解决方案甚至可以在旧的 win 95/98 机器上使用。Iexpress 是一个非常古老的工具,仍然与 Windows 一起打包 - 因为参数只接受命令及其参数。
示例用法:
call IEXPhidden.bat "cmd /c myBat.bat" "argument"
- SCHTASKS - 再次只接受两个参数 - 命令和参数。还检查它是否以提升的权限启动,如果可能,使用 WEVTUTIL 获取进程的 PID(可从 Vista 及更高版本获得,因此较新版本的 windows 将接收 PID)命令。
示例用法:
call SCHPhidden.bat "cmd /c myBat.bat" "argument"
- 'WScript.Shell' - 脚本是 'WScript.Shell' 的完整包装,每个可能的选项都可以通过命令行选项设置。它是 jscript/batch 混合体,可以称为 bat。
示例用法(有关更多信息,请使用“-h”打印帮助):
call ShellRunJS.bat "notepad.exe" -style 0 -wait no
- 'Win32_ProcessStartup' - 再次完整的包装器和所有选项都可以通过命令行参数访问。这次它是 WSF/批处理混合了一些 Jscript 和一些 VBScript 代码片段 - 但它返回已启动进程的 PID。如果进程没有隐藏可以使用一些选项,如 X/Y 坐标(不适用于每个可执行文件 - 但例如 cmd.exe 接受坐标)。
示例用法(有关更多信息,请使用“-h”打印帮助):
call win32process.bat "notepad" -arguments "/A openFile.txt" -showWindows 0 -title "notepad"
- 这 。网络解决方案。ProcessStartInfo选项的大部分选项都使用了(但最后我太累了,无法包含所有内容):
示例用法(有关更多信息,请使用“-h”打印帮助):
call ProcessStartJS.bat "notepad" -arguments "/A openFile.txt" -style Hidden -directory "." -title "notepad" -priority Normal