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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 22
21  Programación / Programación C/C++ / Re: Problemas con printf(); en: 20 Octubre 2015, 00:22 am
Gracias por la ayuda, pero no me funciona...incluso lo del strcpy...

probe a sustituir:
Citar
listaPalabras[posListaPalabras]=palabra;
por esto:
Citar
strncpy(listaPalabras[posListaPalabras],palabra,strlen(palabra));

Y esto compila de maravilla pero cuando ejecuto el programa me da fallo de segmentacion...

listaPalabras la tengo declarada asi: char* listaPalabras[1000000];
y palabra la tengo declarada asi: char palabra[100]="";

He probado a inicializar listaPalabras con un bucle:
Código
  1. for(i=0;i<longListaPalabras;i++) { listaPalabras[i]=""; }
  y compila pero tampoco funciona....

no se porque strncpy() me da fallo de segmentacion...¿Alguna idea?
22  Programación / Programación C/C++ / Problemas con printf(); en: 19 Octubre 2015, 04:36 am
¡Buenas a todos!

Estoy haciendo un pequeño "compilador". Lo que debe hacer es traducir de mi lenguaje a lenguaje C para linux. El caso es que al cargar las palabras en un arrayList de char* lo carga bien dentro de la funcion cargaListaPalabras(codigoTraductor,listaPalabras); e imprime correctamente las palabras de listaPalabras, pero cuando  intento imprimir las palabras de listaPalabras fuera de cargaListaPalabras(); no imprime nada....

Este es el codigo de cargaListaPalabras que funciona correctamente:
Código
  1. void cargaListaPalabras(char* codigo,char* listaPalabras[]){
  2.  
  3.  char palabra[100]="";
  4.  int posPalab=0;
  5.  int posCodigo=0;
  6.  int posListaPalabras=0;
  7.  
  8.  
  9.  printf("codigo: %s\n",codigo);
  10.  
  11.  while(posCodigo<strlen(codigo)){
  12.    while( ((esLetra(codigo[posCodigo])>0) || (esNumero(codigo[posCodigo])>0)) && (codigo[posCodigo]!='\0')){
  13.      //lee letras y numeros hasta formar una palabra
  14.      palabra[posPalab]=codigo[posCodigo];
  15.      posPalab++;
  16.      posCodigo++;
  17.    }
  18.    palabra[posPalab]='\0';                                    //finaliza la palabra
  19.    listaPalabras[posListaPalabras]=palabra;        //guarda palabra en listaPalabra
  20.    printf("%s\n",listaPalabras[posListaPalabras]);   //imprime bien
  21.    posListaPalabras++;
  22.    posPalab=0;
  23.  
  24.    while( (esLetra(codigo[posCodigo])==0) && (codigo[posCodigo]!='\0') ){
  25.      //lee caracteres (comillas, puntos, coma) para guardarlos como una palabra individualmente
  26.      palabra[posPalab]=codigo[posCodigo];
  27.      palabra[posPalab+1]='\0';
  28.      posCodigo++;
  29.      posPalab=0;
  30.      listaPalabras[posListaPalabras]=palabra;   //guarda el caracter en listaPalabras
  31.      printf("%s\n",listaPalabras[posListaPalabras]);   //imprime bien
  32.      posListaPalabras++;
  33.    }
  34.  
  35.  }
  36.  listaPalabras[posListaPalabras]="@fin@";  //palabra de fin de codigo.
  37.  printf("%s\n",listaPalabras[posListaPalabras]);   //imprime bien
  38. }
  39.  

Los printf() de la funcion anterior imprimen el codigo correctamente. Pero cuando en la funcion main() escribo lo siguiente y no funciona el printf() y saca un salto de linea por palabra...

Código
  1.   char* listaPalabras[1000000];
  2.   int posListaPalabras=0;  
  3.  
  4.  cargaListaPalabras(codigoTraductor,listaPalabras);
  5.  
  6.  while(strcmp(listaPalabras[posListaPalabras],"@fin@")!=0){
  7.  
  8.    printf("%s\n",listaPalabras[posListaPalabras]);   //imprime mal....
  9.    posListaPalabras++;
  10.  
  11.  }
  12.  

¿porque el printf() del bucle while() no me imprime lo mismo que los printf() de la funcion cargaListaPalabras()?

Gracias por las respuestas.
23  Programación / Programación C/C++ / return array char en C en: 29 Septiembre 2015, 02:58 am
Buenas a todos!

Tengo problemas para declarar una funcion que retorna un array de caracters.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. const int maxCharPalab=100;
  6. typedef char palabra[maxCharPalab];
  7.  
  8. const int maxCharInstruc=1000;
  9. typedef char instruccion[maxCharInstruc];
  10.  
  11. palabra leePalabras(instruccion instruc){
  12.  
  13.     palabra palab;
  14.  
  15.    //codigo...
  16.  
  17.    retrurn palab;
  18.  
  19. }
  20.  
  21.  

¿como debo declarar la funcion para que funcione correctamente con arrays?


Gracias, un saludo.
24  Programación / Programación C/C++ / Re: implemente un codigo que pida 6 datos a 5 personas pero no hace la busqueda bien en: 6 Diciembre 2014, 09:40 am
Buenas a.9471!

No he compilado tu codigo...pero a primera vista creo que si pide los 6 datos pero no ha 5 personas porque la void capturar() no esta dentro de un bucle para que se ejecute 5 veces.

Tambien veo que no usas bien los if() else()...

si pones:
Código
  1. if(condicion1) instruccion1;
  2. else instruccion2;
  3. instruccion3;

se ejecutaran instrcion1 y 3 o instrucion  2 y 3

te lo digo por estas lineas:
Citar
int buscar(int x)
{
     int nl,b=0,pos;                                      
     if(x==4)  p("\n Dame el Numero de lista a eliminar:");                                                                                                                                                                                                  
     else if(x==5)
                p("Introduce el numero de lista a modificar:");                                                                                                                                                                                            
     else
          p("introduce el numero de lista a buscar:");
      s("%d",&nl);


Esta linea se ejecuta
Citar
s("%d",&nl);
aunque no deberia ejecutarse si no entra en el else;

Para ello usa los corchetes:

Código
  1. if(condicion1){
  2.     instruccion11;
  3.     instruccion12;
  4. }
  5. else if(condicion2){
  6.     instruccion21;
  7.     instruccion22;
  8. }
  9. else{
  10.     instruccion31;
  11.     instruccion32;
  12. }
  13.  

Y para hacer tu programa mas legible alinea correctamente las funciones() y los void()
Tal y como lo tienes escrito todos las funciones() y los void() deberian estar alineados a la izquierda ya que no tienes funciones dentro de funciones

Utiliza este estilo (de corchetes)que hace mas facil la lectura.

Código:
void 1(){

     //codigo....
     //codigo....
     //codigo....
}

void 2(){

     //codigo....
     //codigo....
     //codigo....

     if(condicion){
            //codigo....
            //codigo....
     }
     else{
            //codigo....
            //codigo....

     }
}

Es una buena practica de programacion para facilitar la lectura
25  Programación / Programación C/C++ / Http gzip encoding en: 19 Septiembre 2013, 17:34 pm
¡Buenas a todos!

Estoy haciendo un pequeño navegador web y tengo problemas con los datos codificados con gzip.
Me gustaria saber si hay alguna libreria en C para linux para decodifcar los datos HTTP con codificacion gzip. En caso de que no hubiera libreria...donde puedo encontrar la especificacion para programar manualmente el algoritmo de decodificacion?

Por ahora en internet solo he encontrado info sobre compresion y descompresion con gzip....y creo que no es lo que busco aun que tenga el mismo  nombre....

Alguien sabe como decodificar los HTTP que tienen Content-Encoding: gzip  ??

Gracias un saludo.
26  Comunicaciones / Redes / Re: Reensamblado TCP en: 11 Junio 2013, 20:39 pm
Bueno, sigo sin dar con la respuesta....asi que voy a reformular mi pregunta a ver si alguien me puede ayudar mejor.

Tengo una aplicacion que recibe 10 segmentos TCP y se de antemano que los 10 segmentos forman parte de 2 paquetes enviados por una aplicacion. ¿como puedo saber que segmentos son del primer paquete y que segmentos son del 2º paquete? porque podrian ser los 4 primeros segmentos  para el primer paquete y los 6 siguientes para el segundo...ó....podrian ser los 7 primeros segmentos para el primer paquete y los 3 ultimos para el segundo....

¿alguna idea sobre como tcp identifica un segmento para hacer el reensamblado?
27  Comunicaciones / Redes / Reensamblado TCP en: 10 Junio 2013, 23:39 pm
¡Buenas a todos!

Tengo una dudilla....

Estoy haciendo un programa que usa raw socket, y estoy recibiendo paquetes TCP por el socket y necesito saber cuando debo reemblar un segmento y cuando no. Mi pregunta es...¿Que campo de la cabecera me proporciona dicha informacion?

Estoy usando wireshark para capturar datos de una conexion cualquiera y no por mas que miro las cabeceras TCP no veo nada que me diga que un paquete esta completo o si es un segmento de un paquete mas grande....Lo que si veo es que todos los segmentos llevan el flag ACK a 1 y luego llevan datos y que cuando llega el ultimo segmento lleva el flag ACK a 1 el PUSH a 1 y datos tambien.

¿Debo entender que todo paquete TCP con el flag ACK a 1 y que lleva datos es un segmento?

¿alguna idea sobre el tema?

Gracias, un saludo
28  Seguridad Informática / Hacking / problema con iptables SNAT en: 29 Noviembre 2012, 01:22 am
¡Buenas a todos!

la siguiente linea me da error y no se porque:
Citar
iptables -t nat -A PRE_DONAT -p tcp -s 192.168.1.128 --sport 22 -j SNAT --to-source 192.168.1.128:2022

Lo que pretendo es hacer nat para que todo el trafico que reciba de la maquina 192.168.1.128 desde el puerto 22 lo cambie por el puerto 2022....

iptables me da pone: "invalid argument" y no especifica nada mas.......

¿alguna idea?, gracias.
29  Seguridad Informática / Hacking / Re: problemas al inyectar paquetes con scapy en una conexion UDP en: 22 Noviembre 2012, 23:42 pm
¡Buenas ameise_1987!

Creo que tu problema esta en esta linea:
Citar
send(capa_ip/capa_udp/datos)

Por lo que he leido en esta web: http://crysol.org/es/node/540 la funcion send() envia paquetes de la capa de transporte, y deberias usar la funcion sendp() para enviar los datos de la capa de enlace.

Un saludo.
30  Seguridad Informática / Hacking / Re: Conectar con OpenVpn en: 22 Noviembre 2012, 10:05 am
Bueno, aun sigo dandole vueltas al tema.....

Ahora estoy pensando en que puede ser el router el que no reenvie mis paquetes...asi que os explico...

Tengo un router con un rango de ips privadas de 192.168.1.1-192.168.1.255, si mi pc tiene una interfaz de red tun0 con ip 5.5.7.8 el router va a reenviar mis pquetes??

El problema esta en que no se en que parte del iptables del router se mira esto....creo que es en el OUTPUT, al fin y al cabo es trafico que intenta salir de la subred no? o deberia mirar el FORWARD??

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