elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Temas
Páginas: 1 [2] 3
11  Seguridad Informática / Criptografía / ¿Qué algoritmo puede usar una clave de estas características? en: 17 Noviembre 2012, 16:01 pm
Buenas! No acostumbro a venir por esta parte del foro, pero esta vez ¬¬ Decir que mis conocimientos sobre criptografía son nulos, así que no me riñan demasiado si meto una pifiada porfavor xD
El caso es que tengo una ¿frase? cifrada que lo único que llego a observar es que:
-Tiene 43 caracteres de longitud. Nunca más ni nunca menos.
-Puede contener las letras de la a-z y A-Z (la 'ñ' no) y números. También he visto aveces una barra baja '_' o un guión '-'.

Lo siento si no doy suficientes datos...
¿Alguien sabría que algoritmo puede ser?
-Un ejemplo de clave podría ser: dBubBAMAAUA4rR87hYb8szySA_z6OaZxzRJH4Autp1A
Gracias.
12  Programación / Programación C/C++ / Ayuda con código mutante C en: 19 Septiembre 2012, 19:30 pm
Buenas. He estado esta tarde mirando como es eso de "el código mutante" (cade vez me suena mejor xD) pero al intentar reproducir el ejemplo de esta dirección: http://usuarios.multimania.es/rllopis/mainMutante.html me quedo pillado en que al crear el fichero .c con la función mutante() al hacer el objdump -s me sale:
Código:
$ gcc -c mutante.c -o mutante.o
$ objdump -s mutante.o
Código:
mutante.o:     file format elf64-x86-64

Contents of section .text:
 0000 554889e5 b8010000 005dc3             UH.......].    
Contents of section .comment:
 0000 00474343 3a202855 62756e74 752f4c69  .GCC: (Ubuntu/Li
 0010 6e61726f 20342e36 2e332d31 7562756e  naro 4.6.3-1ubun
 0020 74753529 20342e36 2e3300             tu5) 4.6.3.    
Contents of section .eh_frame:
 0000 14000000 00000000 017a5200 01781001  .........zR..x..
 0010 1b0c0708 90010000 1c000000 1c000000  ................
 0020 00000000 0b000000 00410e10 8602430d  .........A....C.
 0030 06460c07 08000000                    .F......    
No se que cojer... también he intentado con hexdump -S pero tampoco se que parte es.
He probado con el código de la web sin modificar y me sale una "violación de segmento core generado".
Además mi máquina es de 64bits, supongo que eso influye en los valores hexadecimales, no¿?
Alguna ayuda¿?
13  Seguridad Informática / WarZone / Hack-Web_Cross ? en: 4 Septiembre 2012, 12:24 pm
Por favor, ayúdenme en esta prueba. No se si pedir pistas o que me manden la respuesta por MP. Llevo intentándolo 2 días. He intentado meter scripts en todos los campos y eliminar el del protocolo pero o dan links inválidos o pasan los caracteres a hexadecimal y no puedo poner los "<>" por que me los pasa a hex o los pone con &lt.
He probado también con el Tamper Data a modificar los POST pero nada...
En fin, que no puedo y creo que merecería la pena saber directamente la respuesta y ver donde me he atrancado, o al menos, den pistas "explicitas".

PD: Llevo poco en el lío de seguridad web, me he leí la documentación de XSS, y todo eso... y creí que una buena forma de empezar era ir haciendo los retos de warzone como "complemento a la teoría", pero me minan la moral...
14  Seguridad Informática / Hacking / ¿Es posible...? en: 12 Agosto 2012, 20:36 pm
Buenas. La pregunta es: si me conecto a una red, hago un arp spoofing y empiezo a ver el tráfico cifrado (con ssl, ...) entre un ordenador y un servidor, se que no es posible descifrar ese tráfico y ver los credenciales o guardar los cookies... pero es posible imitar esa sesión, es decir... si capturo un paquete de un login en https://urlservidor.com/login.php no puedo ver los credenciales ni importar los cookies pero ¿puedo reenviar ese paquete y logearme como si fuese la víctima que ha ingresado sesión (enviar el paquete cifrado?

PD: No se si me explicado bien... perdonme si es así.
15  Programación / Programación C/C++ / Ayuda con sockets en C (bajo windows) en: 8 Agosto 2012, 17:23 pm
Buenas. Esta vez mi duda es como puedo utilizar una URL en una comunicación con sockets tcp/ip en windows en vez de la IP. Tengo este código:
Código
  1. #include <windows.h>
  2. #include <winsock2.h> //Para sockets
  3. #include <ws2tcpip.h> //Para sockets
  4.  
  5.  
  6. int main()
  7. {
  8. /*************************** DE LOS SOCKETS **************************/
  9. WSADATA wsa;
  10. int sock;
  11. struct sockaddr_in direccion;
  12.  
  13. WSAStartup(MAKEWORD(2,0),&wsa);
  14.  
  15. if((sock=socket(AF_INET,SOCK_STREAM,0))==-1 )
  16. {
  17. return -1;
  18. }
  19.  
  20. direccion.sin_family=AF_INET;
  21. direccion.sin_port=htons(5000);
  22. direccion.sin_addr.s_addr=inet_addr("192.168.1.35");  
  23.  
  24. if(connect(sock,(struct sockaddr*)&direccion,sizeof(direccion))==-1)
  25. {
  26. return -1;
  27. }
  28. /***********  ....va pa largo......   ************/
  29.  
Es decir, cambiar el 192.168.1.35 por algo como "miurl.com".
Utilizo mingw.
Gracias.
16  Programación / Programación C/C++ / ¿Esto se puede en C? en: 27 Julio 2012, 10:18 am
Buenas. Me pregunto si en C hay alguna forma de asignar a una variable el valor de otra como nombre, por ejemplo, si tengo una cadena (introducida por el usuario o no) que contiene "var1", puedo crear una variable que se llame var1; o si se puede acceder a una variable llamada var2, a través de una cadena como "var2".
-> He buscado en google pero...
-> Gracias.
17  Programación / Programación C/C++ / Juego de Ping-Pong hecho en C. en: 1 Julio 2012, 19:24 pm
Buenas, aquí tienen el código de un juego de ping-pong hecho en C, el famoso pong, pero con un solo jugador. No se si calificarlo como aporte o no así que, porfavor, decidme errores y mejoras (como los tics esos que parece que tiene aveces). Para compilarlo: gcc -o pong pong.c -lncurses -lpthread
(Es para Linux y se ejecuta en una terminal, utiliza ncurses)

**Un video:


Código
  1. /*
  2. -----Creado por neob
  3. -----Juego de ping-pong.
  4. -----Compilar con gcc -o pong pong.c -lncurses -lpthread .
  5. -----Controles:
  6. -- W - Mover la paleta hacia arriba.
  7. -- S - Mover la paleta hacia abajo.
  8. -- A - Mover la paleta hacia la izquierda.
  9. -- D - Mover la paleta hacia la derecha.
  10. */
  11.  
  12.  
  13. #include <stdio.h> //Simple constumbre....
  14. #include <ncurses.h> //Utilizar ncurses.
  15. #include <math.h> //Funciones para la obtención de números aleatorios ( rand() ).
  16. #include <pthread.h> //Ejecución con varios hilos.
  17. #include <time.h> //Proporciona time() que nos devuelve la hora.
  18.  
  19. /*******************************/
  20. int salir_ncurses(); //Cierra el modo ncurses.
  21. void dibujar_marco(); //Dibuja el marco.
  22. void *hiloposiciones(); //Se encarga de mover la paleta y dibujar la paleta y la pelota.
  23. void *hilomoverpelota(); //Se encarga de mover la pelota.
  24. void dibujar_pelota(); //Dibuja la pelota en una posición aleatoria (la primera vez).
  25. void pintar_paleta(); //Dibuja la paleta (la primera vez).
  26. void direc_aleatoria(); //Una dirección aleatoria para la bola (la primera vez).
  27. void escojer_dificultad(); //Se encarga de la dificultad del juego.
  28. /*******************************/
  29.  
  30.  
  31. /******   VARIABLES   *******/
  32. int x_pelota, y_pelota, x_paleta, y_paleta, dpx_pelota, dpy_pelota, dificultad;
  33. char key; //Guarda la tecla que pulsamos.
  34. /*** Variables para los hilos ***/
  35. pthread_t idhiloposiciones; //Identificador del hilo hiloposiciones
  36. pthread_t idhilomoverpelota; //Identificador del hilo hilomoverpelota.
  37. int error_hilo1, error_hilo2; //Para comprobar que no ha habido errores en los hilos.
  38. /****************************/
  39.  
  40.  
  41. int main()
  42. {
  43. initscr(); //Entramos en ncurses.
  44. noecho(); //Que no salgan las teclas pulsadas.
  45.  
  46.        dibujar_marco(); //Dibujamos las paredes.
  47. pintar_paleta(); //Pintamos la paleta.
  48.        dibujar_pelota();  //Dibujamos la pelota.
  49. direc_aleatoria(); //Para que se mueva la pelota por primera vez (Solo la llamamos aquí).
  50. escojer_dificultad(); //Le preguntamos al jugador la dificultad que quiere que tenga el juego (irá en función de la velocidad de la bola).
  51.  
  52. srand( time(NULL) ); //Cambiamos la semilla de rand.
  53.  
  54. error_hilo1 = pthread_create(&idhiloposiciones, NULL, hiloposiciones, NULL); //Lo creamos.
  55. error_hilo2 = pthread_create(&idhilomoverpelota, NULL, hilomoverpelota, NULL); //Lo creamos.
  56.  
  57. if (error_hilo1 != 0 && error_hilo2 != 0) //Si ha habido error, no podemos seguir adelante.
  58. {
  59. clear();
  60. move(LINES/2,COLS/2);
  61. printw("ERROR AL CREAR HILOS DE EJECUCIÓN.");
  62. return -1;
  63. }
  64.  
  65. while( key != 'e' && key != 'E' )//Si pulsamos E, nos vamos.
  66. {
  67. key = getch();
  68. if (key == 'w' || key == 'W') { x_paleta = x_paleta - 1; }
  69. if (key == 's' || key == 'S') { x_paleta = x_paleta + 1; }
  70. if (key == 'a' || key == 'A') { y_paleta = y_paleta - 1; }
  71. if (key == 'd' || key == 'D') { y_paleta = y_paleta + 1; }
  72. }
  73.  
  74. salir_ncurses(); kill(&idhiloposiciones); kill(&hilomoverpelota); return 0; //Hemos salido pulsando E, salimos de ncurses, matamos los hilos y nos vamos.
  75.  
  76. }
  77.  
  78. void *hiloposiciones()
  79. {
  80. for(;;)
  81. {
  82.    int i; //Para contar.
  83.  
  84.    clear(); //Borramos la pantalla para renovar todas las posiciones.
  85.    dibujar_marco(); //Volvemos a dibujar el marco.
  86.  
  87.            /*************** PALETAS ***********/
  88.            if (y_paleta != 0 && y_paleta <= COLS -1 && x_paleta != 0 && (x_paleta - 3) != LINES - 1) //No vas a atravesar el marco, no¿?
  89.    {
  90.     for( i=0; i<4; i++ )
  91.        {
  92. move(x_paleta + i, y_paleta);
  93. printw("#");
  94.        }
  95.    } else
  96.     {
  97.                   if (y_paleta <= 0)
  98.   {
  99. y_paleta = 1; //Volvemos a ajustarla a 1 (para que no pueda salir del marco por la izquierda).
  100.   for( i=0; i<4; i++ )
  101.                {
  102. move(x_paleta + i, y_paleta);
  103. printw("#");
  104.           }
  105.   }
  106.  
  107.               if (y_paleta >= COLS - 1)
  108.   {
  109.   y_paleta = COLS - 2; //Volvemos a ajustarla a COLS - 2 (para que no pueda salir del marco, pero esta vez por la derecha).
  110.   for( i=0; i<4; i++ )
  111.               {
  112. move(x_paleta + i, y_paleta);
  113. printw("#");
  114.           }
  115.   }
  116.  
  117.               if (x_paleta <= 0) //Para que no se salga por arriba.
  118.   {
  119.   x_paleta = 1;
  120.   for( i=0; i<4; i++ )
  121.               {
  122. move(x_paleta + i, y_paleta);
  123. printw("#");
  124.           }
  125.   }
  126.  
  127.   if ( (x_paleta + 3) >= LINES - 1) //Para que no se salga por debajo.
  128.   {
  129.   x_paleta = LINES - 4;
  130.   for( i=0; i<4; i++ )
  131.               {
  132. move(x_paleta + i, y_paleta);
  133. printw("#");
  134.           }
  135.   }
  136.      }
  137.  
  138.     /***************** PELOTA ******************/
  139.     move(x_pelota, y_pelota); //Segun las posiciones marcadas por el hilo hilomoverpelota...
  140.     printw("O"); // ...pintamos las pelota.
  141.  
  142. /*     //----LO UTILIZO PARA VER LOS ERRORES EN LAS VARIABLES Y EN LAS POSICIONES.
  143.     move(3,3);
  144.     printw("-DEBUG: dpx_pelota=%d; dpy_pelota=%d; x_pelota=%d; y_pelota=%d; x_paleta=%d; y_paleta=%d;", dpx_pelota, dpy_pelota, x_pelota, y_pelota, x_paleta, y_paleta); //DEBUG
  145. */
  146.  
  147.     if (y_pelota <= 0) //Significa que no ha parado la pelota, se acaba el juego.
  148.     {
  149.      kill(idhiloposiciones); kill(idhilomoverpelota);
  150.    clear();
  151.      move(LINES/2,COLS/2);
  152.      printw("FIN DEL JUEGO!");
  153.     }
  154.  
  155.     if ( (y_pelota == y_paleta) && ((x_pelota == x_paleta) || (x_pelota == x_paleta + 1) || (x_pelota == x_paleta + 2)  || (x_pelota == x_paleta + 3)) )
  156.     {
  157.         dpy_pelota = - dpy_pelota; //Si rebota contra la pala, tenemos que cambiar su sentido.
  158.       y_pelota = y_pelota + dpy_pelota; //Después de cambiar su sentido hay que volver a actualizar la posición de la pelota.
  159.     }
  160.  
  161.     usleep(20*1000); //sleep() trabaja con segundos, por eso usamos usleep(), que trabaja con milisegundos.
  162.     refresh(); //Mostramos los cambios en las posiciones.
  163.  
  164. }
  165. }
  166.  
  167. /*************************** MOVIMIENTO PELOTA ***************************/
  168. void *hilomoverpelota()
  169. {
  170. for(;;)
  171. {
  172.     if (!( (y_pelota == y_paleta) && ((x_pelota == x_paleta) || (x_pelota == x_paleta + 1) || (x_pelota == x_paleta + 2)  || (x_pelota == x_paleta + 3))) )
  173.     {  
  174.                     x_pelota = x_pelota + dpx_pelota; //Si no está rebotando con la pala, tiene que continuar su camino, por lo que sigue por su camino.
  175.     y_pelota = y_pelota + dpy_pelota;
  176.     }
  177.  
  178.     if (x_pelota <= 1) //Para que la pelota rebote contra la pared.
  179.     {
  180.     dpx_pelota = - dpx_pelota;
  181.     }
  182.  
  183.     if (x_pelota >= LINES - 1) //Para que la pelota rebote contra la pared.
  184.     {
  185.     dpx_pelota = - dpx_pelota;    
  186.     }
  187.  
  188.     if (y_pelota >= COLS - 1) //Para que la pelota rebote contra la pared.
  189.     {
  190.     dpy_pelota = - dpy_pelota;    
  191.     }
  192.  
  193.     usleep( dificultad*1000 );
  194. }
  195. }
  196.  
  197.  
  198.  
  199.  
  200.  
  201. /************ Funciones secundarias como dibujar objetos, salir de ncurses, ... ******************/
  202.  
  203. int salir_ncurses()
  204. {
  205. endwin();
  206. return 0;
  207. }
  208.  
  209. void dibujar_marco()
  210. {
  211. int i;
  212.        for(i=0;i<LINES;i++) //Pintamos las paredes: LINES indica el numero de lineas de la terminal y COLS el de columnas (proporcionados por la librería ncurses).
  213.        {
  214.         move(i,0);
  215.         printw("|");
  216.         move(i,COLS - 1);
  217.         printw("|");
  218.        }
  219.  
  220. for(i=0;i<COLS-1;i++)
  221. {
  222. move(0,i);
  223. printw("_");
  224. move(LINES -1,i);
  225. printw("_");
  226. }
  227. }
  228.  
  229. void dibujar_pelota() //Dibujamos la pelota (en una posicion aleatoria dentro de un margen).
  230. {
  231. x_pelota = (int) ( rand() % ((LINES/2+4)-(LINES/2-4)+1) + (LINES/2 - 4) ); //Escojemos un numero aleatorio con rand().
  232. y_pelota = (int) ( rand() % ( (((COLS-1) - COLS/9) + 4)-(((COLS-1) - COLS/9) - 4)+1 ) + (((COLS-1) - COLS/9) - 4) );
  233. move(x_pelota, y_pelota);
  234. printw("O");
  235. }
  236.  
  237.  
  238. void pintar_paleta() //Pintamos la paleta.
  239. {
  240. int i;
  241. y_paleta = 3; // Eje y > columnas
  242. x_paleta = LINES/2 - 3; // Eje x >> líneas
  243.  
  244. for( i=0; i<4; i++ )
  245. {
  246. move(x_paleta + i, y_paleta);
  247. printw("#");
  248. }
  249. }
  250.  
  251. void direc_aleatoria() //Elejimos una primera dirección aleatoria para la pelota.
  252. {
  253. dpx_pelota = ( rand() % (+1 - (-1) +1) + (-1) );
  254. dpy_pelota = -1;
  255.  
  256. }
  257.  
  258.  
  259. void escojer_dificultad() //Escojemos la dificultad del juego.
  260. {
  261. char d;
  262. clear();
  263. move(3,3);
  264. printw("\n-Creado por Juan Escudero Pedrosa.\n"
  265.       "-Indique el nivel de dificultad:\n"
  266.       "\t1 - Fácil.\n"
  267.       "\t2 - Medio.\n"
  268.       "\t3 - Difícil.\n\n"
  269.       "\t(Los controles son W,S,A y D)");
  270. d = getch();
  271. switch(d)
  272. {
  273. case '1': dificultad = 200; break;
  274. case '2': dificultad = 100; break;
  275. case '3': dificultad = 50; break;
  276. default:
  277. clear();
  278. move(3,3);
  279. printw("No se ha seleccionado ningún nivel de dificultad, se tomará por defecto el nivel 2 (Medio). Pulse una tecla para continuar.");
  280.                dificultad = 100;
  281. getch();
  282. break;
  283. }
  284.  
  285. }
  286.  
18  Programación / Programación C/C++ / Ayuda en C. Unir char a char[] SOLUCIONADO en: 9 Abril 2012, 22:40 pm
Buenas, tengo un problema que no consigo resolver en C, y espero que puedan ayudarme.
Quiero unir un char (ejemplo '9') a una cadena (ejemplo "6533") de forma que luego imprima la cadena y sea "65339".
He googleado bastante y veo que con strcat() puedo unir dos cadenas, pero yo quiero unir una cadena y un carácter, y al intentarlo con strcat() me da error.
¿Hay alguna función que lo haga? ¿De que manera puedo hacerlo? Gracias.
19  Programación / PHP / Ayuda al crear archivo en servidor! en: 26 Febrero 2012, 18:23 pm
Tengo este código en un archivo .php en /var/www y quiero que me cree un archivo y que escriba Hola!! pero no me funciona. Tengo este código:
Código
  1. <?php
  2. $file=fopen("texto.txt","r");
  3. fwrite($file, "Hola!!!");
  4. fclose($file);
  5. ?>
  6.  
El servidor es apache 2.x con php5  en linux.
Quiero que al visitar la página se me cree el archivo en el mismo directorio en el que está alojado con nombre "texto.txt" pero luego hao un "ls" en el servidor y todo sigue igual, no se crea nada. ¿Pueden ayudarme porfavor?
20  Programación / Programación C/C++ / Ayuda a mejorar código. C sobre Linux. en: 12 Febrero 2012, 18:02 pm
Buenas, he estado esta última semana dándole vueltas a la idea de hacer un bruteforce en C, para que ya estoy aprendiendo, animarme un poco. Una de las utilidades de este por ejemplo, sería logearse en un ftp remoto, pero me va MUY LENTO (incluso cuando me intento logear en localhost), y no se que hacer para mejorarlo (ya os he dicho que estoy aprendiendo). ¿Alguna idea? Antes de dejar el código os digo como va: Por ejemplo cuando te pide un comando yo le meto:
Código
  1. lftp ftp://localhost/ -u usuario,
  2.  
--Aquí va el código que llevo:
Código
  1. /*
  2.   *Nombre: COMB.
  3.  
  4.   *Autor: NeoB
  5.  
  6.   *Descrpición: Genera una lista de palabras (con o sin sentido)
  7.     combinando las letras del abecedario, en mayusculas, minúsculas, y números;
  8.     además permite usar esas combinaciones con un comando.
  9.     Para modificar esta lista se puede modificar la variable "abc" (global).
  10.  
  11. */
  12.  
  13. /***LAS LIBRERÍAS***/
  14. #include <stdio.h>
  15. #include <string.h>
  16.  
  17.  
  18. /***VARIABLES GLOBALES****/
  19. char *abc = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; //El abecedario (los caracteres que hay son los que se usarán).
  20. int i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20; //Contadores que usaremos para apuntar a las diferentes posiciones de "abc".
  21. char command[500];
  22. int yescommand;
  23. int tamcommand;
  24.  
  25.  
  26. /*******************EL MAIN() Y LAS FUNCIONES DE CONTROL.*********************/
  27. int main()
  28. {
  29.  char option1, option2; int optiontam;  //Para almacenar las opciones que escojamos.  
  30.  
  31.  printf("\E[0;1m"
  32.         "     ======================================\n"
  33.         "     || COMB - Generador de diccionarios.||\n"
  34.         "     ||     By Juan Escudero Pedrosa.    ||\n"
  35.         "     ======================================\n"
  36.         "Set the length of the strings used:\n"
  37.         "1) use a progressive increase of the string's lenght.\n"
  38.         "2) fixed lenght.\n"
  39.         "3) use range of values for string's lenght.\n"
  40.         "What option has you selected? (1-3):  "
  41.         "\E[00m");
  42.  option1 = getchar(); //Cogemos la opción.
  43.  getchar();  //Es para borrar el stdin, NO SE DEBE DE HACER, pero funciona.
  44.  
  45.  printf("\E[0;1m"
  46.         "Do you want to use a command with the strings generated? (y/n)  "
  47.         "\E[00m");
  48.  option2 = getchar(); //Cogemos la opción.
  49.  getchar();  //Es para borrar el stdin, NO SE DEBE DE HACER, pero funciona.
  50.  
  51.  if(option2=='y')
  52.  {
  53.    printf("\E[0;1m"
  54.           "What command do you want to use? (Remember that the word generated will join to the end of the command):  "
  55.           "\E[00m");
  56.    yescommand = 1; //Si yescommand es 1 siginifica que hemos elegido meter comandos.
  57. /*********************************COJEMOS LA CADENA QUE METE***********************************************************/
  58.    fgets(command,500,stdin); //Almacenamos la cadena con un máximo de 500 caracteres.
  59.    char *buscar_n; //La utilizamos para buscar un fin de línea por que queremos cojer solo una línea.
  60.    buscar_n = strchr (command, '\n'); //Buscamos el fin de linea (\n) en command.
  61.    if (buscar_n) //Si lo hay... (no necesita corchetes ('{' y '}') por que solo hacemos una cosa.
  62.    *buscar_n = '\0'; //Lo sustituimos por un final de cadena (\0).
  63. /**********************************************************************************************************************/
  64.    tamcommand = strlen(command); //Lo usamos luego, ya veréis.
  65.  }
  66.  
  67.  switch(option1)  //Para los valores de lo primero que se nos da a elegir...
  68.  {
  69.    case '1':  //Si elegimos progresiva, vamos llamando. Podemos por ejemplo, cambiar el orden y ponerlo en dos ordenadores.
  70.      cero();
  71.      one();
  72.      two();
  73.      three();
  74.      four();
  75.      five();
  76.    break;
  77.  
  78.    case '2': //Si elegimos un tamaño predeterminado...
  79.      printf("\E[0;1m"
  80.             "What lenght do you want to use? (0-20):  "
  81.             "\E[00m");
  82.      scanf("%d",&optiontam); //Cojemos el tamaño.
  83.      switch(optiontam)
  84.      {
  85.        case 0: cero(); break;  //Lamamos a cero() (para 0 caracetres):
  86.        case 1: one(); break;  //Llamamos a one() (para 1 caracter)
  87.        case 2: two(); break;  //Llamamos a two() (para 2 caracteres)
  88.        case 3: three(); break;
  89.        case 4: four(); break;
  90.        case 5: five(); break;
  91.        case 6:  break;  //Todavia no lo he puesto...
  92.        case 7:  break;  //Todavia no lo he puesto...
  93.        case 8:  break;  //Todavia no lo he puesto...
  94.        case 9:  break;  //Todavia no lo he puesto...
  95.        case 10: break;  //Todavia no lo he puesto...
  96.        case 11: break;  //Todavia no lo he puesto...
  97.        case 12: break;  //Todavia no lo he puesto...
  98.        case 13: break;  //Todavia no lo he puesto...
  99.        case 14: break;  //Todavia no lo he puesto...
  100.        case 15: break;  //Todavia no lo he puesto...
  101.        case 16: break;  //Todavia no lo he puesto...
  102.        case 17: break;  //Todavia no lo he puesto...
  103.        case 18: break;  //Todavia no lo he puesto...
  104.        case 19: break;  //Todavia no lo he puesto...
  105.        case 20: break;  //Todavia no lo he puesto...
  106.        default: break;  //Todavia no lo he puesto...
  107.      }
  108.    break;
  109.  
  110.    case '3': //Si hemos elegido utilizar un rango de valores...
  111.      setvalues();
  112.    break;
  113.  
  114.    default:
  115.      printf("\E[0;1m"
  116.             "Unknow option.\n"
  117.             "\E[00m");
  118.      return -1;
  119.    break;
  120.  }
  121.  return 0;
  122. }
  123.  
  124.  
  125. int setvalues()
  126. {
  127.  /***EN CONSTRUCCIÓN****/
  128.  return 0;
  129. }
  130.  
  131.  
  132.  
  133. /*
  134. ***************HA ESTAS FUNCIONES LAS LLAMAMOS PARA GENERAR LAS PALABRAS********************
  135. ***Explico como lo genera en "three()" y en "four()" (para longitudes 3 y 4 respectivamente).
  136. */
  137.  
  138. int cero()
  139. {
  140.  char *toexecute;
  141.  char nada = '\0';  //Por si tenemos la p**a suerte de que la password, o para lo que lo utilizemos está en blanco.
  142.  printf("%c\n",nada); //Utilizamos la cadena vacía.
  143.  if(yescommand==1)
  144.  {
  145.    toexecute = command;
  146.    toexecute[tamcommand] = nada;
  147.    system(toexecute);
  148.  }
  149.  return 0;
  150. }
  151.  
  152.  
  153. int one()
  154. {
  155.  char *toexecute;
  156.  for (i1=0; i1<=61; i1++)
  157.  {
  158.    char caracter1 = abc[i1];
  159.    printf("%c\n",caracter1);
  160.    if(yescommand==1)
  161.    {
  162.     toexecute = command;
  163.     toexecute[tamcommand] = caracter1;
  164.     system(toexecute);
  165.    }
  166.  }
  167.  return 0;
  168. }
  169.  
  170.  
  171. int two()
  172. {
  173.  char *toexecute;
  174.  for (i1=0; i1<=61; i1++)
  175.  {
  176.    char caracter1 = abc[i1];
  177.    for(i2=0; i2<=61; i2++)
  178.    {
  179.      char caracter2 = abc[i2];
  180.      printf("%c%c\n",caracter1,caracter2);
  181.      if(yescommand==1)
  182.      {
  183.          toexecute = command;
  184.          toexecute[tamcommand] = caracter1;
  185.          toexecute[tamcommand + 1] = caracter2;
  186.          system(toexecute);
  187.      }
  188.    }
  189.  }
  190.  return 0;
  191. }
  192.  
  193.  
  194. int three()  //Para generar combinaciones de 3 caracteres de longitud.
  195. {
  196.  char *toexecute; //Donde guardamos el comando introducido + las combinaciones generadas.
  197.  for (i1=0; i1<=61; i1++) //Este sería el que más lento cambia de los 3 caracteres.
  198.  {
  199.    char caracter1 = abc[i1]; //"caracter1" apunta primero a "a", luego a "b", luego a "c", etc (ver la variable abc).
  200.    for(i2=0; i2<=61; i2++)
  201.    {
  202.      char caracter2 = abc[i2];
  203.      for(i3=0; i3<=61; i3++) //Este ni lo veríamos pasar de lo rápido que es, pero solo si elegimos no comandos (esto es lo que quiero solucionar).
  204.      {
  205.        char caracter3 = abc[i3];
  206.        printf("%c%c%c\n",caracter1,caracter2,caracter3); //Imprimimos los caracteres, que van variando.
  207.        if(yescommand==1) //Si hemos elegido utilizar un comando...
  208.        {
  209.          toexecute = command; //Ponemos toexecute igual que command, ya que command tiene el comando, pero le tenemos que agregar las palabras generadas.
  210.          toexecute[tamcommand] = caracter1;  //Le vamos agregando las combinaciones (el primer caracter)...
  211.          toexecute[tamcommand + 1] = caracter2;  //Le vamos agregando las combinaciones (el segundo caracter)...
  212.          toexecute[tamcommand + 2] = caracter3;  //Le vamos agregando las combinaciones (el tercer caracter)...
  213.          system(toexecute);  //Ejecutamos "toexecute".
  214.        }
  215.      }
  216.    }
  217.  }
  218.  return 0; //Decimos al main() que todo ha ido bien.
  219. }
  220.  
  221.  
  222. int four()
  223. {
  224.  char *toexecute;
  225.  for (i1=0; i1<=61; i1++)
  226.  {
  227.    char caracter1 = abc[i1];
  228.    for(i2=0; i2<=61; i2++)
  229.    {
  230.      char caracter2 = abc[i2];
  231.      for(i3=0; i3<=61; i3++)
  232.      {
  233.        char caracter3 = abc[i3];
  234.        for(i4=0; i4<=61; i4++)
  235.        {
  236.          char caracter4 = abc[i4];
  237.          printf("%c%c%c%c\n",caracter1,caracter2,caracter3,caracter4);
  238.          if(yescommand==1) //Si hemos elegido utilizar un comando...
  239.          {
  240.            toexecute = command; //Ponemos toexecute igual que command.
  241.            toexecute[tamcommand] = caracter1;  //Le vamos agregando las combinaciones (el primer caracter)...
  242.            toexecute[tamcommand + 1] = caracter2;  //Le vamos agregando las combinaciones (el segundo caracter)...
  243.            toexecute[tamcommand + 2] = caracter3;  //Le vamos agregando las combinaciones (el tercer caracter)...
  244.            toexecute[tamcommand + 3] = caracter4;  //Le vamos agregando las combinaciones (el cuarto caracter)...
  245.            system(toexecute);  //Ejecutamos "toexecute".
  246.          }
  247.        }
  248.      }
  249.    }
  250.  }
  251.  return 0;
  252. }
  253.  
  254.  
  255. int five()
  256. {
  257.  char *toexecute;
  258.  for (i1=0; i1<=61; i1++)
  259.  {
  260.    char caracter1 = abc[i1];
  261.    for(i2=0; i2<=61; i2++)
  262.    {
  263.      char caracter2 = abc[i2];
  264.      for(i3=0; i3<=61; i3++)
  265.      {
  266.        char caracter3 = abc[i3];
  267.        for(i4=0; i4<=61; i4++)
  268.        {
  269.          char caracter4 = abc[i4];
  270.          for(i5=0; i5<=61; i5++)
  271.          {
  272.            char caracter5 = abc[i5];
  273.            printf("%c%c%c%c%c\n",caracter1,caracter2,caracter3,caracter4,caracter5);
  274.            if(yescommand==1)
  275.            {
  276.            toexecute = command;
  277.            toexecute[tamcommand] = caracter1;
  278.            toexecute[tamcommand + 1] = caracter2;
  279.            toexecute[tamcommand + 2] = caracter3;
  280.            toexecute[tamcommand + 3] = caracter4;
  281.            toexecute[tamcommand + 4] = caracter5;
  282.            system(toexecute);
  283.            }
  284.          }
  285.        }
  286.      }
  287.    }
  288.  }
  289.  return 0;
  290. }
  291.  
  292.  

No tengo mucho tiempo para mejorarlo por eso de estudiar, y cuando tengo, no veo que cambiar (detalles importantes, y lo único que he hecho es conseguir logearme en localhost con esta "aaaad" en la opción fijo con 5 caracteres).
He de decir que va muy rápido cuando lo hago sin introducir comandos, pero va al ritmo de 1 por segundo cuando es con comando (porejemplo cuando pongo:  "lftp http://ftp://localhost/ -u user,". Gracias por adelantado.
(El http:ftp://localhost/ ese sale solo) :o
Páginas: 1 [2] 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines