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
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
Code Select
/* 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();
}