Foro de elhacker.net

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
Código:
#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
Código
  1. #include <time.h> //Hora
  2. #include <stdio.h> //Funciones basicas entrada/salida
  3. #include <string.h> //StrCmp
  4. #include <stdlib.h> //Exit y otras
  5. #include <arpa/inet.h> //struct sockaddr_in
  6. #include <sys/socket.h> //Socket, Connect...
  7.  
  8. struct sockaddr_in host; //Declaraciones
  9. int sockfd;
  10. int cont;
  11. int k = 0;
  12.  
  13.  
  14. int main (int argc, char *argv [])
  15. {
  16. printf ("ScanS 1.0 - By Sagrini (2010)\n"); //Esto escribira la presentacion.
  17. if (argc != 2)
  18. {
  19. printf ("Uso: %s <target_ip>\n\n", argv [0]);
  20. return 1;
  21. }
  22. host.sin_addr.s_addr=inet_addr (argv [1]);
  23. host.sin_family=AF_INET;
  24. memset (host.sin_zero, 0, 8);
  25. for (cont = 1; cont <= 65535 cont ++) //Modif :P
  26. {
  27.  
  28. if ((sockfd=socket (2, 1, 0))==1)
  29. {
  30. printf ("Error abriendo socket...\n\n");
  31. return 1;
  32. }
  33.  
  34. host.sin_port = htons (cont);
  35. if (connect (sockfd, (struct sockaddr*)&host, sizeof (host)) != -1)
  36. {
  37. printf ("Port %d open\n", cont);
  38. k++;
  39. }
  40. // else printf ("Port %d close\n", cont);
  41. close (sockfd);
  42. }
  43. if (k == 0) printf ("All ports closed...\n");
  44. else printf ("%d port(s) open(s)...\n", k);
  45. return 0;
  46. }
  47.  
  48.