[ SOURCE ] --Simples Scan de portas em C ....

Started by Anonymous, 29 de June , 2006, 06:33:43 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Anonymous

Bom galera ..sou novo aki no forum ainda nao havia começado a postar...
mas a partir de agora no que eu puder ajudar estarei colaborando valew....
esse é um simples source q codei em C para scan de portas ....
OBS: nao é muito rapido....

 ;)


Quote/*
SCAN DEAD.... by CelioDeveloper....
A todos os que estiverem usando...
o source foi testado e funciona 100%...não sei se é a melhor forma a q eu fiz...
sou iniciante mais funko....hehe....
qualquer duvida é sou perguntar...   MsN: mailto:celio_hacker@hotmail.com">celio_hacker@hotmail.com  ....
*/


#include    
#include  
#pragma comment(lib, "wsock32.lib") 

char ip[16];   
int porta=0, count; 

WSADATA data;
SOCKET sock; 
SOCKADDR_IN scan; 
   
   int  main(int argc,char *argumento[])
   {
        if (argc!=2)
        {
                    printf("\n\n\n  ---------ATENCAO-------  Uso correto: scandead \n\n\n");
                    exit(-1);
        }
        printf("   \n\n\n    -----SCANDEAD----------   ... by CelioDeveloper\n\n");
        printf("  Starting scan...\n\n");
   
    strcpy(ip, argumento[1]);
   
    for(count=0;count<65536;count++){
                 porta++;
                 scan.sin_port = htons(porta);
                 WSAStartup(MAKEWORD(1,1),&data);
    if((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1){   
         printf("Erro ao criar o socket.\n");
         exit(-1);
       }
    scan.sin_family = AF_INET;
    scan.sin_addr.s_addr = inet_addr(ip);
                 
            if(connect(sock,(struct sockaddr *)&scan,sizeof(scan)) == SOCKET_ERROR)   
             {             
                  printf(">", porta);
                 
                  }else{
                 
                  printf("\nPorta ouvindo: %d\n", porta);
                 
                  }
                  }
                  }


Anonymous

Achei interessante, mesmo sendo um code simples, acho que voce pode implementar mais algumas coisas, como ranges, services, entre ourtos..





Bye 8)


caesar2k

seria interessante se você usasse ioctlsocket(), colocasse em modo unblocking, e usasse um TIMEVAL em select (você teria que usar FD_ZERO e FD_SET também), e colocar um timeout para evitar que um connect demore muito e o scan leve milhões de anos pra terminar =)
e poderia pensar mais pra frente em implementar threads, pra fazer vários scans ao mesmo tempo

Anonymous

valew caesar2k...
pra mim que estou iniciando é sempre bom contar com opnioes dos mais experientes....valew.... :P

rog

Quotefor(count=0;count<65536;count++){
                 porta++;

sendo que porta = count +1

era so iniciar o loop a 1 que vc nao precisa da variavel porta

rog
realty.sys is corrupt :  reboot the universe (Y/N)