quarta-feira, 14 de março de 2007

Conhecendo um vírus de perto

Quer saber como funciona o seu estômago quando você se empanturra de besteira? Só abrindo e vendo por dentro… Com um vírus é a mesma coisa. Nesse exemplo abaixo tem um pedaço do código-fonte do vírus MyDOOM, famoso por roubar senhas e se auto enviar por email:

for (;;) {
i = connect(s, (struct sockaddr *)addr, sizeof(struct sockaddr_in));
if (i != SOCKET_ERROR)
goto exit_connected;
i = WSAGetLastError();
if (i == WSAENOBUFS) {javascript:void(0)
Publicar
Sleep(50);
continue;
}
if (i == WSAEWOULDBLOCK)
break;
goto exit_err;
}

FD_ZERO(&wr_fds);
FD_SET(s, &wr_fds);
FD_ZERO(&err_fds);
FD_SET(s, &err_fds);
i = select(s+1, NULL, &wr_fds, &err_fds, &tv);

if (i == 0 || i == -1)
goto exit_err;
if (FD_ISSET(s, &err_fds) || !FD_ISSET(s, &wr_fds))
goto exit_err;
exit_connected:
i = 0;
ioctlsocket(s, FIONBIO, &i);
return s;

Entendeu como ele faz a conexão com um serviço Windows, se auto enviando? Eu também não, hehehe… mas pra quem saca um pouquinho de programação, preferenciamente em Java e C, pode conferir algumas bibliotecas que guardam os códigos dos principais vírus que atacam computadores pelo mundo

Nenhum comentário: