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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  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 22 23
81  Programación / Programación C/C++ / Re: ¿Se puede añadir una funcion a string.h? en: 25 Diciembre 2015, 01:34 am
Muy buenas.

Pues hay unos cuantos bugs.
Línea 14, 16 y 20: debes cambiar la forma con que haces el incremento. No te interesa el valor que hay guardado en el puntero, solo incrementarlo. Eso es cambiar *var++ por var++.

Por otra parte cuándo la cadena original no tiene separador, el separador es el primer carácter, o hay pocos caracteres en la cadena apuntada por s hay basura en las cadenas s y t.

¿Qué diferencia hay entre *s++ y s++? Creo que en la primera incrementas la posición de la memoria en la que se encuentra *s, pero en la segunda no sé que haces.

¿Que os parece así? :D
Código
  1. int strssr(const char *arg /*Argumento que contiene los numeros*/,
  2.             char *s /*Puntero a since */,
  3.              char *t /*Puntero a to */,
  4.               char lim /*Limite de separacion */)
  5. {
  6.   if(arg == NULL||s == NULL||t==NULL)
  7.     return 1;
  8.   char *str = (char *)arg;
  9.   while(*str && (*s++ = *str) && !(*++str eq lim));
  10.   while(*str && (*t++ = *++str));
  11. }

Más resumido todo.
82  Programación / Programación C/C++ / Re: ¿Se puede añadir una funcion a string.h? en: 24 Diciembre 2015, 22:04 pm
¿Qué ocurre si el primer while sale por el conducto ordinario? (*str == 0)
Pues que se acabó la cadena y no s eha encontrado el delimitador.
Sin embargo, ignoras esa posibilidad, incrementas str, y te posiciones fuera de la cadena. Desde ahí, todo lo que hagas, puede dar lugar a error y es inesperado para el programador final.

E insisto, para incrementar un puntero, str++. El * sobra.

El compilador no me permite incrementar el puntero con str++. No sé si lo que me dices será en C++.
Y no sé, yo considero que así va bien. Lo pruebo con todas las posibilidades haciendo NULL todo y no devuelve violacion de segmento, para mí esto ya esta xd
El codigo ha quedado así:
Código
  1. int strssr(const char *arg /*Argumento que contiene los numeros*/,
  2.             char *s /*Puntero a since */,
  3.              char *t /*Puntero a to */,
  4.               char lim /*Limite de separacion */)
  5. {
  6.   if(arg == NULL || s == NULL || t == NULL)
  7.     return 1;
  8.   char *str = (char *)arg;
  9.   while(*str)
  10.   {
  11.     *s = *str++;
  12.     if(*str == lim)
  13.       break;
  14.     *s++;
  15.   }
  16.   *str++;
  17.   while(*str)
  18.   {
  19.     *t = *str++;
  20.     *t++;
  21.   }
  22. return 0;
  23. }

¿Alguna recomendación o mejora?

Gracias
83  Programación / Programación C/C++ / Re: ¿Se puede añadir una funcion a string.h? en: 24 Diciembre 2015, 20:33 pm
Pero eso no soluciona ninguno de los problemas.

En la línea *str++;. Incrementas sin comprobar si llegaste a un caracter nulo. No sabes si saliste del bucle por caracter nulo, o si saliste por haber encontrado el delimitador.
Y a todo esto, no necesita el *str++.

Si no incremento *str++ la segunda cadena es :8080 en vez de 8080 y si llega a carácter nulo no entrará en el segundo while, es decir, que se queda con la primera cadena.

Código
  1. int strssr(const char *arg /*Argumento que contiene los numeros*/,
  2.             char *s /*Puntero a since */,
  3.              char *t /*Puntero a to */,
  4.               char lim /*Limite de separacion */)
  5. {
  6.   if(s == NULL||t == NULL)
  7.     return 1;
  8.   char *str = (char *)arg;
  9.   while(*str)
  10.   {
  11.     *s = *str++;
  12.     if(*str == lim)
  13.       break;
  14.     *s++;
  15.   }
  16.   *str++;
  17.   while(*str)
  18.   {
  19.     *t = *str++;
  20.     *t++;
  21.   }
  22. return 0;
  23. }

¿Así? Compruebo los argumentos, a excepción de lim, que es cosa del usuario, digo yo.
84  Programación / Programación C/C++ / Re: ¿Se puede añadir una funcion a string.h? en: 24 Diciembre 2015, 20:15 pm
Ten en cuenta que existe la función strtok.

A parte, en esa función das por hecho que el segundo y tercer argumento estarán llenos de caracteres nulos.
Además, utilizas como límite uint8_t. ¿Por qué? Son char*, no uint8_t*, tenlo en cuenta.
Luego, ¿qué ocurre si no encuentra el delimitador? Sin comprobar nada, incrementas el puntero, y empiezas a leer memoria que tal vez no te pertenezca.

Hicise la función pensando en el mejor de los casos. Piensa también en el peor de los casos (en cualqueira de ellos).

Las funciones de la librería estándar hacen exactamente lo que dicen. ¿Qué ocurriría si metieras esa función en la librería?

Está bien que quieras compartir tu librería, pero en ese caso, te recomendaría que publicases en, por ejemplo, github.
Si, ya he visto la función strtok, pero me parece más complicada de usar.

El while(*str) comprueba que str no sea '\0'.
Lo de uint8_t supongo que tienes razón, usaré un char.
85  Programación / Programación C/C++ / ¿Se puede añadir una funcion a string.h? en: 24 Diciembre 2015, 19:02 pm
Hola.

Resulta que he hecho una función que considero bastante útil para el uso popular:
Código
  1. void strssr(const char *arg /*Argumento que contiene los numeros*/,
  2.             char *s /*Puntero a since */,
  3.              char *t /*Puntero a to */,
  4.               uint8_t lim /*Limite de separacion */)
  5. {
  6.   char *str = (char *)arg;
  7.   while(*str)
  8.   {
  9.     *s = *str++;
  10.     if(*str == lim)
  11.       break;
  12.     *s++;
  13.   }
  14.   *str++;
  15.   while(*str)
  16.   {
  17.     *t = *str++;
  18.     *t++;
  19.   }
  20. }

Consiste en separar un argumento en dos a partir de una señal definida en el cuatro argumento, por ejemplo:
Código
  1. int main()
  2. {
  3.   char *ip = (char *)calloc(16,sizeof(char));
  4.   char *puerto = (char *)calloc(5,sizeof(char));
  5.   strssr("192.168.1.1:8080", ip, puerto, ':');
  6.   printf("%s\t%s\n", ip, puerto);
  7. return 0;
  8. }

Me gustaría saber si hay alguien que regule todo esto de las bibliotecas en C. ¿Tal vez el opengroup.org?
Es por el bien de la comunidad jeje.

Gracias por las respuestas.
86  Seguridad Informática / Hacking / Re: IP , pregunta muy neceraria en: 24 Diciembre 2015, 01:35 am
Hola , hay alguna manera de conseguir la IP privada de otra persona , de manera remota , sin cojer su Pc ?  :P , no se como puede ser que mis amigos puedan saber otras IP , pero os recuerdo la IP privada .

Una de todas esas formas de saberlo que te comentan es con cualquier programa, ya sea una backdoor o no, que te envíe la dirección privada de red.
87  Seguridad Informática / Hacking / Re: Diccionario para Hydra/Medusa??? en: 24 Diciembre 2015, 01:31 am
Buenas,

Estoy googleando todo el rato, y solo me aparece diccionarios para lo que es el router, es decir, la clave wireless. No la de login/user.

Alguien se sabe algun diccionario, o pagina web en donde esten este tipo de diccionarios?

He mirado como en unos 35 sitios. Y me salen solo para clave wireless. No la de  login/user.

Saludos.

Puedes usar crunch para generarte tus propios diccionarios.
88  Seguridad Informática / Hacking / Re: Qué software preferis para hacking? en: 24 Diciembre 2015, 01:29 am
Yo utilizo Kali Linux, principalmente porque contiene muchísimas herramientas preparadas para el hacking.
Tengo en una partición Debian, dedicado al uso personal, y Kali en otra para hacer el idiota un rato. Pero, personalmente, considero que no es necesaria una distribución como Kali. Con tener los programas necesarios y saber programar no necesitas ninguna distribución externa que esté guiada a la (in)seguridad informática.
89  Programación / Programación C/C++ / Re: Pequeña duda sobre punteros en: 24 Diciembre 2015, 01:25 am
Al menos en C, para hacer esto:
Código
  1. char *cadena = "Hola";

Antes debes reservar memoria con alguna función como malloc o calloc:
Código
  1. char *cadena = (char *)calloc(5,sizeof(char));
  2. strcpy(cadena,"Hola");

Y por último con strcpy asignar a cadena una frase.

90  Seguridad Informática / Hacking / Re: identificar el objetivo fuera de lan en: 24 Diciembre 2015, 01:17 am
Para poder escanear a la víctima siendo ésta ajena a tu red debe de estar en el DMZ de su red. El DMZ es la Zona Desmilitarizada, lo que quiere decir que el router no deniega ningún acceso al ordenador seleccionado, es decir, está totalmente expuesto a internet. Debe estar en el DMZ o tener el NAT activado hacia algún puerto.
Si está usando Windows XP y tú metasploit, supongo que querrás usar el puerto 445. En ese caso la víctima debería tener el puerto 445 del NAT apuntando hacia su IP interna.

Debemos partir de la idea de que los routers deniegan todo acceso ilegítimo a la red, es decir, no autorizado por ningún ordenador. Así que respecto a tu pregunta, solo hay dos posibilidades de darle respuesta:
1- Que el ordenador esté en el DMZ o tenga el NAT activado.
2- Que tú estés en la misma red.

Para más cuestiones, estaremos encantados de resolver tus dudas. Si tienes más preguntas podemos hablar.
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22 23
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines