Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - soyloqbuskas

#21
Hacking / problema con iptables SNAT
29 Noviembre 2012, 01:22 AM
¡Buenas a todos!

la siguiente linea me da error y no se porque:
Citariptables -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.
#22
¡Buenas ameise_1987!

Creo que tu problema esta en esta linea:
Citarsend(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.
#23
Hacking / Re: Conectar con OpenVpn
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??

#24
Hacking / Re: Conectar con OpenVpn
20 Noviembre 2012, 23:50 PM
He hecho unas capturas con wireshark a la interfaz tun0 y los paqutes que envio son de resolucion dns con srcIp=5.5.6.7 y dstIp=ipGoogle.com

Es posible, que como mis paquetes se envian con esa ip...mi ISP no los reenvia? es decir, que mi proveedor de internet no reenvia mis paquetes porque le llegan con una ip de origen extraña, ¿es posible esto?
#25
Hacking / Conectar con OpenVpn
20 Noviembre 2012, 18:33 PM
¡Buenas a todos!

Me he creado una cuenta vpn y tengo problemas para navegar y no se por que.....
Para conectar, abro una shell y tecleo openvpn --config fichero.ovpn
El fichero.opvn me le ha enviado mi proveedor de servicios vpn....Una vez ejecutado openvpn me pide el user y el pass, lo introduzco y conecto perfectamente. Pero cuando abro el navegador, no soy capaz de visitar webs y tampoco puedo hacer ping con estas web.

Si hago un ifconfig, veo que se me ha creado una nueva interfaz de red....(tun0). Imagino que los datos ahora deben enviarse por tun0 y no por wlan0 no?

La verdad es que estoy perdido....¿alguna idea?

Gracias, un saludo.
#26
¡Buenas retsam07!

El problema esta en el scanf() que hace un salto de linea cada vez que lee....pero el problema real es de diseño. En un tpv (Terminal de Punto de Venta) en el cual se anotan los datos de un pedido y luego se imprime la factura, la factura no se genera a medida que vamos introduciendo los datos. Primero el usuario introduce todos los datos del pedido, y por ultimo imprime la factura.

Algoritmo:

Citarimprimir("introduce el numbre del cliente")
leer(nombreCliente)
imprimir("introduce la direcion del cliente")
leer(direccionCliente)
imprimir("introducir nombre del articulo")
leer(nombArticulo)

imprimir(factura)

en imprimir factura debes usar todos los printf() que sean necesarios. Para imprimir en una sola linea el nombre y la fecha, hazlo asi:

printf("Nombre: %s\tDireccion: %s\n",nombreCliente, direccionCliente);

Un saludo.

#27
Programación C/C++ / Re: Error en malloc()
10 Noviembre 2012, 05:24 AM
Creo que ya se el problema....mi funcion que crea el malloc() es llamada por un bucle infinito....y aun que en el bucle hago el free() del malloc()....el hacer muchos malloc() y free() debe de dar problema....Por lo que he leido....(no se si me he enterado bien, estaba la info en ingles...) hacer un malloc() hace reserva dinamica de la memoria pero ha veces esa reserva la intenta hacer sobre direcciones de memoria no permitidas.....y si hago malloc() dentro de un bucle infinito, solo es cuestion de tiempo que acabe intentando reservar memoria en una zona no permitia por el SO.....lo que voy a probar es a hacer el malloc() fuera del bucle y parsarle la varible con el malloc() a la funcion que lo usa....Seguramente asi lo solucione.....
#28
Programación C/C++ / Re: Error en malloc()
9 Noviembre 2012, 03:54 AM
Eso es porque he copiado mal....
El codigo es:
char* funcion(int sizeMalloc){
     char* buffer=(char*)malloc(sizeMalloc);
     return buffer;
}


Y mi error no es de compilacion es un fallo de segmentacion....Estoy debugeando el programa porque los malloc() en general me dan este error y no se porque....

¿Alguien sabe sobre bugs del malloc() o de alguna funcion que me permita reservar memoria y que no de errores?

Gracias, un saludo.
#29
Programación C/C++ / Error en malloc()
9 Noviembre 2012, 03:39 AM
¡Buenas a todos!

Tengo un problema con la funcion malloc() porque me da fallo de segmentacion....el codigo es como este...


char* funcion(int sizeMalloc){
     char* buffer=(char*)malloc(sizeMalloc)
     return buffer;
}


El error que me da es este:
Citarmalloc.c:2451: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed

Y la pila es esta:
Citar(gdb) bt
#0  0x00132416 in __kernel_vsyscall ()
#1  0x001611df in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0x00164825 in __GI_abort () at abort.c:91
#3  0x001a8469 in __malloc_assert (assertion=<optimized out>, file=<optimized out>, line=2451, function=0x29518a "sYSMALLOc") at malloc.c:300
#4  0x001ab293 in sYSMALLOc (av=0x2d9440, nb=40) at malloc.c:2448
#5  _int_malloc (av=0x2d9440, bytes=35) at malloc.c:3892
#6  0x001acddc in __GI___libc_malloc (bytes=35) at malloc.c:2924

¿Cual es el problema? ¿Como lo soluciono?

Gracias, un saludo.
#30
¡Buenas SonaArtica!

No he ejecutado tu programa pero creo que tiene un par de fallos...

1) el bucle se ejecuta 59 veces cuando deberia ser 60. El array va desde 0 hasta 59 y tu bucle va desde 1 hasta 59. Asi que el bucle escribelo asi:
for(i=0;i<60;i++){
//codigo
}


2) y los if del bucle no son del todo correcto si te fijas, pones

                       if (i==1 || tiempo[i-1]<mejortiempo){
                                //codigo
                       }
                       if(i==1 || tiempo[i-1]>autoganador){
                                //codigo
                       }

Para el caso i==1 entras en ambos if y lo que hagas en el segundo puede anular lo que hayas hecho en el primero. Y ademas no calculas bien el perdedor.....(usa else para que tu programa sea mas eficiente)

Yo lo haria asi...:

#include <stdio.h>
#include <conio.h>
/* Se deben cargar en un vector los tiempos de clasificacion de 60 autos.
Los autos se identifican con numeros correlativos del 1 al 60.Se pide determinar:
     a)Numero de Auto que clasifico primero.
     b)Peor tiempo de clasificacion. */
main(){
      int tiempo[60];
      int autoganador=0;
      int i=0;
      float peortiempo,mejortiempo;

       //el primero es el mejor y el peor al mismo tiempo ya que es el unico
      printf("Ingrese Tiempo de auto %d \n",i);
      fflush(stdin);
      scanf(" %f",&tiempo[0]);
      peortiempo=tiempo[0];
     
      //pedimos que ingrese datos y comparamos
      for(i=1;i<60;i++){
                       printf("Ingrese Tiempo de auto %d \n",i);
                       fflush(stdin);
                       scanf(" %f",&tiempo[i]);
                       if (tiempo[i]<mejortiempo){
                           autoganador=i;
                           mejortiempo=tiempo[i];
                       }//Cierre del If que saca al auto ganador
                       else(tiempo[i]>peortiempo){//ESTA LINEA HA CAMBIADO!
                             peortiempo=tiempo[i]; 
                       }//Cierre del If que saca el peor tiempo
      }
      printf("El auto ganador es %d con el tiempo de %f \n",autoganador+1,mejortiempo);
      printf("El auto con peor tiempo fue de %f \n",peortiempo);
getch();
return 0;
}


En caso de empate  con mejor tiempo tanto tu programa como el mio imprimiran el primer coche....

NOTA: el codigo lo he hecho a ojo y no lo he compilado pero creo que es correcto el algoritmo.

Un saludo.