Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - gadu

#1
C/C#/C++ / [Source]Scanner de portas
05 de August , 2008, 12:46:56 AM
Ola pessoal do darkers =)
Sou novo no forum mas ja espero estar contribuindo

Segue abaixo um Scanner de portas feito em C, pode se usar para estudos

Abraços


/* Simples Scanner
Feito por Gadu*/


#include<windows.h>
#include<winsock.h>
#include<conio.h>
#include<stdio.h>


int main()
{





WSADATA data;
struct sockaddr_in sock;
SOCKET winsock;
char ip[256],ip2[256],ip3[256];
int x,num,x2,port;
int portA,portB;
SetConsoleTitle("Scanner de portas");

if(WSAStartup(MAKEWORD(2,2),&data)==SOCKET_ERROR)
{
printf("Erro WSA");
getch();
exit(1);
}

winsock=socket(AF_INET,SOCK_STREAM,0);
if(winsock==-1)
{
printf("Erro ao criar socket");
getch();
exit(1);
}

ini:
system("cls");
printf("Digite sua escolha e de enter");
printf("\n\n(1) Scannear apenas uma porta");
printf("\n(2) Scannear De X porta Para Y (Ex: 120 a 155)");
printf("\n(3) Scannear Todas as portas(Windows)");
printf("\n\n");
scanf("%d",&num);
if(num==1) goto op1;
if(num==2) goto op2;
if(num==3) goto op3;

op1:
   
    system("cls");
    printf("Digite o IP: ");
scanf("%s",&ip2);
printf("\nDigite o numero da porta a scannear: ");
scanf("%d",&port);

sock.sin_family=AF_INET;
sock.sin_port=htons(port);
sock.sin_addr.s_addr=inet_addr(ip2);

if(connect(winsock,(struct sockaddr*)&sock,sizeof(sock))!=-1)
{
printf("\nPorta %d aberta",port);
closesocket(winsock);
WSACleanup();

WSAStartup(MAKEWORD(2,2),&data);
winsock=socket(AF_INET,SOCK_STREAM,0);
}

else printf("\nPorta %d fechada",port);
getch();
goto ini;

op2:
   
    system("cls");
printf("Digite a porta inicial: ");
scanf("%d",&portA);
printf("\nDigite a porta final: ");
scanf("%d",&portB);

if(portA>portB)
{
printf("A porta de inicio nao pode ser maior que a de final");
getch();
goto ini;
}

printf("\nDigite o IP: ");
scanf("%s",&ip3);
printf("\nScaneando da porta %d a porta %d",portA,portB);

for(x2=portA;x2<=portB;x2++)
{


sock.sin_family=AF_INET;
sock.sin_port=htons(x2);
sock.sin_addr.s_addr=inet_addr(ip3);


if(connect(winsock,(struct sockaddr*)&sock,sizeof(sock))!=-1)
{
printf("\nPorta %d aberta",x2);
closesocket(winsock);
WSACleanup();

WSAStartup(MAKEWORD(2,2),&data);
winsock=socket(AF_INET,SOCK_STREAM,0);
}

else printf("\nPorta %d Fechada",x2);

}
getch();
goto ini;






op3:
    system("cls");
printf("Digite o IP do host: ");
scanf("%s",&ip);

for(x=0;x<65500;x++)
{

sock.sin_family=AF_INET;
sock.sin_port=htons(x);
sock.sin_addr.s_addr=inet_addr(ip);

if(connect(winsock,(struct sockaddr*)&sock,sizeof(sock))!=-1)
{
printf("\nPorta %d aberta",x);
closesocket(winsock);
WSACleanup();

WSAStartup(MAKEWORD(2,2),&data);
winsock=socket(AF_INET,SOCK_STREAM,0);
}


else printf("\nPorta %d fechada",x);





}


printf("\n\nScan terminado");
getch();

}