giga hertz apprendista

Numero di messaggi: 42 Data d'iscrizione: 01.09.07
 | Oggetto: scanner di porte Mar Nov 13, 2007 9:18 pm | |
| Qualcuno potrebbe dirmi come funziona uno scanning di porte?? cioè qualcuno che mi dica la logica di uno scanner in c++ |
|
BlackLight Moderatore


Numero di messaggi: 277 Età: 25 Data d'iscrizione: 22.08.07
 | Oggetto: Re: scanner di porte Mer Nov 14, 2007 12:07 am | |
| Crei un socket con l'host che vuoi scannerizzare e poi provi a fare tante connect() su un range di porte. Quando la connect() va a buon fine la porta è aperta, quando ritorna -1 la porta è chiusa. Ti riporto la funzione principale di un port scanner che avevo fatto tempo fa in C... | Codice: | #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h>
void addr_init(struct sockaddr_in *addr, int port, long ip) { addr->sin_family = AF_INET; addr->sin_port = htons(port); addr->sin_addr.s_addr = ip; }
int scan(char *host, int port) { int sd; struct sockaddr_in client, server;
addr_init(&server,port,inet_addr(host)); sd = socket(AF_INET, SOCK_STREAM, 0);
if (sd==-1) return -1;
if ( connect(sd, (struct sockaddr*) &server, sizeof(struct sockaddr)) < 0 ) { close(sd); return -1; }
else { close(sd); return 0; } } |
_________________ -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/CM/CC/E/IT/LS/M d-(--) s:- a-- C+++$ UBL++++$ P+++ L+++++$ E- W+++ N+ o? K? w-- !O !M>+ !V PS+++ PE-- Y++ PGP+ !t !5 !X R+ tv-- b++>+++ DI? D+ G>+++ e++>++++ h r++ y+++ ------END GEEK CODE BLOCK------ | Codice: | blacklight@nightmare:/$ touch figa touch: cannot touch `figa': Permission denied |
|
|
giga hertz apprendista

Numero di messaggi: 42 Data d'iscrizione: 01.09.07
 | Oggetto: Re: scanner di porte Mer Nov 14, 2007 5:56 pm | |
| |
|