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


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 23
51  Programación / Programación C/C++ / Re: Romper ejecucion de un bucle en: 30 Octubre 2012, 09:26 am
Pufff ando atascado....la verdad es que no sa casi nada de hilos....

He probado esto....
Código
  1. #include <stdio.h>
  2. #include <pthread.h>
  3. #include <string.h>
  4.  
  5. void * pararBucle();
  6.  
  7. char * c="a";
  8.  
  9. int main(){
  10.  
  11.        pthread_t hilo;
  12.        pthread_create(&hilo,NULL, pararBucle,NULL);
  13.  
  14.        printf("Iniciando bucle infinito\n");
  15.        while(strcmp(c,"q")){
  16.  
  17.        }
  18.  
  19.        return 0;
  20. }
  21.  
  22. void * pararBucle(){
  23.  
  24.        char * aux="a";
  25.        while(strcmp(aux,"q"))
  26.                fgets(aux,1,stdin);
  27.  
  28.        printf("Presionaste q\n");
  29.        c="q";
  30.        return (void *)"q";
  31. }

Pero me da fallo de segmentacion....

¿Alguna sugerencia?
52  Programación / Programación C/C++ / Romper ejecucion de un bucle en: 30 Octubre 2012, 07:57 am
¡Buenas a todos!

Estoy haciendo un programa que tiene un bucle el cual quiero parar cuando el usuario presione la tecla 'q'. El problema esta en que con funciones como getch() y demas, el bucle para su ejecucion y espera a que el usuario presione una tecla y esto es lo que no quiero. La idea es que el bucle funcione en todo momento y que cuando el usuario presione 'q' se finalice el bucle.

He probado varias ideas que no me han salido bien....como por ejemplo usar hilos de tal forma que un hilo tiene el bucle y el otro hilo el getch()....tambien he probado ha hacer lo mismo pero con procesos y tampoco me ha salido bien....

Asi que como estoy un poco atascado, cansado y deseperado....creo que lo que me queda es hacer polling al teclado....el problema es que sé que esta tecnica va a funcionar seguro pero no se implementarlo....Imagino que sera con alguna funcion que lea el stdin o algo asi...

¿Alguien sabe como hacer polling al teclado para leer la pulsacion de una tecla?

NOTA: estoy programando en C para linux

Gracias, un saludo.
53  Programación / Programación C/C++ / Re: Sobre los Cast en: 26 Octubre 2012, 06:20 am
¡Buenas BlackZeroX (Astaroth)!

Bueno, por lo que veo los errores de compilacion que tienes son por pasar una variable a una funcion del tipo incorrecto. Evidentemente eso se soluciona con un cast. Los cast son necesarios en casi cualquier programa ya que a menudo se necesita cambiar el tipo de una variable para operar con ella. Asi que no hay problema por usar un cast. Lo unico ha tener en cuenta es que si necesitas que tu programa sea muy rapido, los cast llevan tiempo y no deberias hacer cast muy amenudo, esto restaria eficiencia a tu programa.

Un ejemplo tipico del uso del cast es cuando lees un numero del teclado y lo guardas en un char* para evitar que el programa explote si el usuario mete un caracter. Este mecanismo de proteccion te obliga a hacer un atoi(var); (que es un cast de char* a int) para poder operar aritmeticamente con la variable leida. Asi que yo no veo ningun problema con los cast salvo el uso abusivo que reduce la eficiencia del programa.

En cuanto a los typedef...efectivamente solo sirven para abreviar y que el codigo sea mas legible, no le veo mas utilidad.

Sobre compilar con -std=c99....esto hace que no compiles con /usr/bin/gcc lo que hace es que compilas con /usr/bin/c99 que es otro compilador de C, pero no se que ventajas o inconvenientes tiene sobre gcc.

Y con gcc -w, creo que esta opcion desabilita los warnings....porque he probado a compilar un programa con un warning y con gcc -Wall si veo el warning y con gcc -w no. Asi que gcc -w no te losuciona los problemas solo te los aculta.

Espero haberte ayudado, un saludo.
54  Programación / Programación C/C++ / Re: Bucle infinito y hilos en C en: 24 Octubre 2012, 22:12 pm
Uups ya me di cuenta del fallo...tenia un corchete de mas...pero ahora tengo otros....resulta que no estoy incluyendo la libreria pthread.h y no se porque.....

code:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <pthread.h>
  5.  
  6. void *salir( void *ptr );
  7.  
  8. int main()
  9. {
  10.     pthread_t thread1;
  11.     char *salida = "";
  12.  
  13.     pthread_create( &thread1, NULL, salir, (void*) salida);
  14.     pthread_join( thread1, NULL);
  15.  
  16.     printf("bucle infinito\nPresione q para salir\n");
  17.        while(strcmp(salida,"q")){
  18.  
  19.        }
  20.     return 0;
  21. }
  22.  
  23. void *salir( void *ptr )
  24. {
  25.     char out='0';
  26.        while(out!='q')
  27.                out=(char)fgetc(stdin);
  28.     ptr=(void *)"q";
  29.     printf("presionaste q\n");
  30.     return ptr;
  31. }
  32.  
Compilador:
Citar
/tmp/cceoP4ms.o: In function `main':
funcion.c:(.text+0x33): undefined reference to `pthread_create'
funcion.c:(.text+0x47): undefined reference to `pthread_join'
collect2: ld returned 1 exit status

¿Que falla?

Un saludo.
55  Programación / Programación C/C++ / Bucle infinito y hilos en C en: 24 Octubre 2012, 21:56 pm
¡Buenas a todos!

Estoy haciendo un programa en C para linux y tengo problemas con los hilos...

Mi programa tiene un bucle que se cierra cuando el usuario presione "q". Pero claro si uso una funcion como getchar() dentro del bucle el bucle se parará y no quiero que pare el bucle. Asi que he pensado lanzar un hilo y que sea el hilo el que se quede parado para leer del teclado y que cuando el getchar() del hilo lea una 'q' modifique una varible que cierre el bucle.

Aqui os pongo el codigo que tengo....pero meda un par de errores de compilacion...

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <pthread.h>
  5.  
  6. void *salir( void *ptr );
  7.  
  8. int main()
  9. {
  10.     pthread_t thread1;
  11.     char *salida = "";
  12.  
  13.     pthread_create( &thread1, NULL, salir, (void*) salida);
  14.     pthread_join( thread1, NULL);
  15.  
  16.     printf("bucle infinito\nPresione q para salir\n");
  17.        while(strcmp(salida,"q")){
  18.  
  19.        }
  20.     return 0;
  21. }
  22.  
  23. void *salir( void *ptr )
  24. {
  25.     char out='0';
  26.        while(out!='q'){
  27.                out=(char)fgetc(stdin);
  28.     ptr=(void *)"q";
  29.     printf("presionaste q\n");
  30. }

Y los errores de compilacion son estos:
Citar
funcion.c: In function ‘salir’:
funcion.c:30:1: error: expected declaration or statement at end of input
funcion.c:30:1: warning: control reaches end of non-void function [-Wreturn-type]

¿Alguien sabe como solucionarlos?

Un saludo.
56  Seguridad Informática / Hacking / wireshark "bytes in flight" en: 24 Octubre 2012, 20:02 pm
¡Buenas a todos!

Estoy haciendo un programa que v envia paquetes HTTP, pero tengo un problema.
Wireshark no me detecta mis paquetes como paquetes HTTP. Me los detecta como un TCP segment of a reassemble PDU. Ademas detecta el campo de datos del packete TCP como bytes in flight.

¿Que estoy poniendo mal en mis packetes para que wireshark no los detecte como packetes HTTP?

Un saludo.
57  Seguridad Informática / Hacking / Re: dudas sobre el uso de una vpn al momento de hacer un ataque en: 18 Octubre 2012, 14:06 pm
¡Buenas Zion!

Tienes razon, la victima no tiene forma de averiguar que el atacante eres tu porque a la victima le estan llegando tus paquetes con la source Ip del servirdor VPN. Pero desde tu PC hasta el VPN los paquetes se enrutan con tu ip de origen y esto es inevitable puesto que para mantener la conexion con el servidor vpn necesitas que el vpn sepa tu ip. Por tanto tu ISP puede saber que te has conectado al vpn.

La solucion mas sencilla es....no conectarte al servidor VPN desde tu casa....vete a un ciber create una cuenta VPN y usala solo desde un ciber y nunca desde tu casa....
Tambien puedes robarle el wifi a un vecino y encasquetarle el marron a el.... :P

Un saludo.
58  Programación / Programación C/C++ / Pasar constante a una funcion de C en: 18 Octubre 2012, 13:25 pm
¡Buenas a todos!

Tengo un problemilla con las constantes...Tengo lo siguiente..:

Código
  1. #define longPacket 16384
  2. #define maxNumPacket 20
  3.  
  4. //declaracion de interfaces a funciones
  5. void initArrayPacket(char * arrayPacket[maxNumPacket], int  maxNumPacket, int longPacket);
  6.  
  7. // resto del codigo...
  8.  
  9. void initArrayPacket(char * arrayPacket[maxNumPacket], int  maxNumPacket, int longPacket){
  10.        for(i=0;i<maxNumPacket;i++){
  11.                arrayPacket[i]=(char *)malloc(longPacket);
  12.        }
  13. }
  14.  
Y me da estos errores al compilar...
Citar
server.c:42:61: error: expected ‘;’, ‘,’ or ‘)’ before numeric constant
server.c: In function ‘server’:
server.c:63:2: warning: implicit declaration of function ‘initArrayPacket’ [-Wimplicit-function-declaration]
server.c: At top level:
server.c:283:61: error: expected ‘;’, ‘,’ or ‘)’ before numeric constant

El error de la linea 42 esta en la declaracion de la interfaz de la funcion initArrayPacket();
El error de la linea 63 esta en una llamada a la funcion initArrayPacket();
Y el error de la linea 283 esta en la implementacion de la funcion...

¿Como puedo definir una constante y pasarla por parametro a una funcion?

Gracias, un saludo.
59  Seguridad Informática / Hacking / Sql injection y hacking web training en: 16 Octubre 2012, 18:06 pm
¡Buenas a todos!

He oido hablar de un "programa" que sirve para practicar los diferentes ataques webs que hay. Este supuesto programa te instala un servidor el cual tu configuras que version de php quieres usar  y demas para que luego puedas hacer un ataquete con un exploit php de la version que has configurado....

¿Alguien conoce alguna aplicacion del estilo?

Un saludo.
60  Programación / Programación C/C++ / Re: Interfaz de red activa en C en: 14 Octubre 2012, 23:18 pm
Bueno, creo que ya he dado con la respuesta....

Código
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<sys/ioctl.h>
  4. #include<sys/types.h>
  5. #include<sys/socket.h>
  6. #include<unistd.h>
  7. #include <netinet/in.h>
  8. #include <arpa/inet.h>
  9. #include <net/if.h>
  10.  
  11. int main(int argc, char ** argv)
  12. {
  13.    int fd;
  14.    struct ifreq ifr;
  15.        int result=0;
  16.    char * iface ="";
  17.        iface= argv[1];
  18.  
  19.    fd = socket(AF_INET, SOCK_DGRAM, 0);
  20.  
  21.    ifr.ifr_addr.sa_family = AF_INET;
  22.  
  23.    strncpy(ifr.ifr_name , iface , IFNAMSIZ-1);
  24.  
  25.    if(ioctl(fd, SIOCGIFADDR, &ifr)==0){
  26.  
  27.             printf("Interfaz: %s -IP: %s\n" , iface , inet_ntoa(( (struct sockaddr_in *)&ifr.ifr_addr )->sin_addr) );
  28.    }
  29.    else printf("La interfaz no esta lista\n");
  30.    close(fd);
  31.    return 0;
  32. }
  33.  

Un saludo.
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 23
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines