Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: hanx en 8 Enero 2011, 01:39 AM

Título: Scanner en gnu/linux
Publicado por: hanx en 8 Enero 2011, 01:39 AM

#include <stdio.h>

#include <string>

using namespace std;

#include "PracticalSocket.h"



int main(int argc, char **argv)

{

char help[]="\n usage: address start end\n";

char temp[255];

string ip;

int start;

int end;

int i=0;

TCPSocket *tcs;

switch(argc)

{

case 4:

//argv[1] ip to scan, argv[2] is the start port, argv[3] is the end port

ip=argv[1];

start=atoi(argv[2]);

end=atoi(argv[3]);

for(i=start;i<=end;i++)

{

try

{

sprintf(temp,"testing %i\n",i);

fputs(temp,stdout);

tcs = new TCPSocket;

//try and connect to the port...if connection fails an exception is thrown

tcs->connect(ip,i);

sprintf(temp,"open port at %i\n",i);

fputs(temp,stdout);

//if we succeeded in connecting to a port

delete tcs;

}

catch(SocketException ex)

{

continue;//run a continue to scan the next port

}

}

break;

default:

printf(help);

break;

}

return 0;

}

Título: Re: Scanner en gnu/linux
Publicado por: leogtz en 8 Enero 2011, 07:18 AM
Usas "using namespace std" dando a entender que es C++, pero usas librerias de C.

¿Por qué dejar una línea en blanco entre líneas?
Título: Re: Scanner en gnu/linux
Publicado por: hanx en 8 Enero 2011, 15:58 PM
Debes saber que la libreria PracticalSocket.h si es c++, y los espacios es de la misma pagina, la cargo asi....
Título: Re: Scanner en gnu/linux
Publicado por: EvilGoblin en 8 Enero 2011, 16:50 PM
ahora, muestras el codigo "mascara" cuando en realidad el codigo importante seria el connect(ip,puerto);

no entiendo, estas preguntando algo o quieres saber algo???? de que va esto?
Título: Re: Scanner en gnu/linux
Publicado por: Garfield07 en 8 Enero 2011, 20:26 PM
No se si va, pero de nada

#include <time.h> //Hora
#include <stdio.h> //Funciones basicas entrada/salida
#include <string.h> //StrCmp
#include <stdlib.h> //Exit y otras
#include <arpa/inet.h> //struct sockaddr_in
#include <sys/socket.h> //Socket, Connect...

struct sockaddr_in host; //Declaraciones
int sockfd;
int cont;
int k = 0;


int main (int argc, char *argv [])
{
printf ("ScanS 1.0 - By Sagrini (2010)\n"); //Esto escribira la presentacion.
if (argc != 2)
{
printf ("Uso: %s <target_ip>\n\n", argv [0]);
return 1;
}
host.sin_addr.s_addr=inet_addr (argv [1]);
host.sin_family=AF_INET;
memset (host.sin_zero, 0, 8);
for (cont = 1; cont <= 65535 cont ++) //Modif :P
{

if ((sockfd=socket (2, 1, 0))==1)
{
printf ("Error abriendo socket...\n\n");
return 1;
}

host.sin_port = htons (cont);
if (connect (sockfd, (struct sockaddr*)&host, sizeof (host)) != -1)
{
printf ("Port %d open\n", cont);
k++;
}
// else printf ("Port %d close\n", cont);
close (sockfd);
}
if (k == 0) printf ("All ports closed...\n");
else printf ("%d port(s) open(s)...\n", k);
return 0;
}