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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18
111  Seguridad Informática / Bugs y Exploits / FreeBSD sendmsg local root exploit en: 20 Mayo 2016, 01:58 am
Hace 2 dias que vi un boletin de seguridad de freebsd.

al aplicacion afectada es sendmsg

https://www.freebsd.org/security/advisories/FreeBSD-SA-16:19.sendmsg.asc

cita:

Código:
Malicious local user may crash kernel or execute arbitrary code in the kernel,
potentially gaining superuser privileges.

Segun vi en mi cuenta de twitter hablaban de un root-exploit...

¿Alguien tendra algun PoC?

ya saben con fines de investigacion... :silbar: :silbar: :silbar:
112  Programación / Programación C/C++ / Depurar la asignacion de memoria. en: 18 Mayo 2016, 23:54 pm
La idea es depurar la asignacion de momeria.

Tengo un programa algo grande que necestito depurar. El programa usa memoria dinamica todo el tiempo y en general el programa funciona bien.

Sin embargo segun mis calculos el programa esa usando mas memoria de la que necesita. Algunos megas de mas  :laugh: :laugh:

Reemplace las llamadas a free, malloc y calloc por unas funciones para ir depurando cada que se reserva o libera memoria.

¿Alguno de ustedes ha hecho algo parecido?

¿Alguna sugerencia algun cambio?

Tengo el siguiente codigo:

Código
  1.  
  2. char **punteros;
  3. size_t *contador_size;
  4. size_t offset_contador = 0;
  5. size_t contador_memoria = 0;
  6.  
  7. void _free_( char *ptr) {
  8. remove_contador(ptr);
  9. free(ptr);
  10. }
  11.  
  12. char *_calloc_(size_t nmemb, size_t size) {
  13. char *ptr;
  14. ptr = calloc(nmemb,size);
  15. add_contador(ptr,nmemb*size);
  16. return ptr;
  17. }
  18. void add_contador(char *ptr,size_t size) {
  19. printf("add_contador: %u [0x%x] %u + %u bytes\n",offset_contador,ptr,contador_memoria,size);
  20. punteros = realloc(punteros,(offset_contador+1)*sizeof(char*));
  21. contador_size = realloc(contador_size,(offset_contador+1)*sizeof(size_t));
  22. punteros[offset_contador] = ptr;
  23. contador_size[offset_contador] = size;
  24. contador_memoria+=size;
  25. offset_contador++;
  26. }
  27.  
  28. void remove_contador(char *ptr) {
  29. size_t i = 0;
  30. while(punteros[i] != ptr && i < offset_contador) {
  31. i++;
  32. }
  33. printf("remove_contador: %u [0x%x]\n",i,ptr);
  34. contador_memoria-=contador_size[i];
  35. while(i < offset_contador-1) {
  36. punteros[i] = punteros[i+1];
  37. contador_size[i] = contador_size[i+1];
  38. i++;
  39. }
  40. punteros[i] = NULL;
  41. contador_size[i] = 0;
  42. offset_contador--;
  43. }

Al final solo tenemos que validar la variable contador_memoria para saber cuantos bytes quedan y offset_contador para saber cuantos apuntadore quedan.

Saludos
113  Programación / Programación C/C++ / Suma byte a byte con acarreo en variable de 2 bytes en: 18 Mayo 2016, 15:39 pm
A ver tengo mi ejemplo de numeros de longitud variable o mejor conocidos como BigInt... (Implementacion propia) en C.

Estoy sumando byte a byte y el resultado lo guardo en una variable de 2 bytes por ejemplo cuando sumo 255 + 255 el primer byte del resultado tiene 255 y lo demas esta en el segundo byte el cual posterior al ciclo lo sumo al siguiente byte de la cadena en caso de no existir lo anexo al final y todo bien.

El detalle que al final si sumo una larga serie de 255 continuos  byte a byte llegara un momento en el que la variable se desborda...

Cual es la mejor solucion para esto? Guardar el resultado en una variable de 4 bytes y validar si existe acarreo en los bytes 3 y 4?

Que pasara cuando la variable de 4 bytes no sea suficiente...

Saludos
114  Programación / .NET (C#, VB.NET, ASP) / Error: is not allowed here because it does not extend class System.Web.UI.Page en: 16 Mayo 2016, 21:09 pm
Estoy haciendo un sistema de tickets.

Todo funcionada bien pero ahora sale el error y estoy con que no he movido nada.

Código:
Parser Error Message: 'sistetma.tickets' is not allowed here because it does not extend class 'System.Web.UI.Page'.

La pagina .aspx tiene la siguiente primera linea.

Código
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="tickets.aspx.cs" Inherits="sistetma.tickets" %>

Y el codigo en el aspx.cs tiene:

Código
  1. using System;
  2.  
  3. namespace sistema
  4. {
  5.    public partial class tickets : System.Web.UI.Page
  6.    {
  7.        protected void Page_Load(object sender, EventArgs e)
  8.        {
  9. ...
  10.        }
  11.    }
  12. }

No veo el problema..
115  Foros Generales / Foro Libre / ¿Es malo no ver Television por los ultimos 10 años? en: 16 Mayo 2016, 17:50 pm
Esa es la pregunta ¿Es malo, bueno, tiene ventajas, desventajas?

Aun que no he visto television local en mucho tiempo tal vez mas de 10 años, disfruto de ver peliculas en el Cine y tambien disfruto de ver algunas Series en Netflix.

Y la ventajas que veo en lo que hago son

  • Veo lo que me gusta ver
  • Lo veo cuando lo quiero ver
  • Lo disfruto sin comerciales

La siguiente es una lista de por que no veo Television Local.

  • Tiene comerciales, muchos comerciales
  • Tu no elijes el contenido (Claro puedes buscar un canal que te guste)
  • Contenido de poca o nula calidad (Hay excepciones pero muy rara vez)

Aqui en mexico hay muy pocos canales y tenemos un duopolio televisivo que dicta lo que ve la mayoria de los mexicanos, que en la mayoria de las ocasiones no pasa de novelas y o programas de baja calida, peliculas repetidas de hace 10 años etc..

En fin

Otra de las razones por las que abro este tema es que muchas veces me siento mal por no poder seguir una conversacion con mis amigos cuando el tema es algo del momento de lo cual solo te enteras en programas de chismes televisivos.

Por ejemplo hoy me dicen por el grupo de Telegram que tenemos.

-Ya vieron que se murio fulanito.

A lo que contesto ¿Quien es fulanito?. Y me contestan

No puede ser que no lo conozcas, si a salido asi y alla... (Exclusivamente television local)

Y replico, realmente no lo conozco.


Y no es la primera vez que pasa, algunas veces hablan de cosas que pasan (En television) y yo me quedo ... de que hablan, por que hablan de esas cosas. ¿Podriamos volver al tema de computacion y/o matematicas o minimo hablar de las ultimas canciones de rock del grupo que nos gusta?

Siempre me han conocido por saber de muchos temas menos de television, y aun que se entraria en el tema de Conocimiento General, realmente no creo que los chismes de television deban entrar en la categoria de Conocimiento General incluso no creo que deban de ser considerado conocimiento

¿Que opinan ustedes?
116  Programación / Programación C/C++ / ¿Algoritmo alterno a itoa? en: 15 Mayo 2016, 00:18 am
Muy buen dia.

Tengo entre manos el siguiente problema.

Tengo en memoria un buffer que contiene números de gran longitud, puedo sumarlos, restarlos, dividirlos etc.

Ahora necesito imprimirlos en formato decimal, actualmente solo tengo forma de visualizarlos en formado hexadecimal.

ejemplo:

Código:
numero 1: 0000000000000020a7c0a09f032703
numero 2: 00000000000000000000000000000021a45141d6351f
numero 3: 00000000000000001ed31c62dfa50b
numero 4: 00000000000000000000000000000044b5f2b7695b70
numero 5: 00000000000000000040ab08571d224107
numero 6: 000000000000000000000000000000003ac807630f6218
numero 7: 00000000000000000000000072b11568f28c2a
numero 8: 000000000000000000000000000000000000607fe65ec43bdf

Numeros en Little Endian.


Lo anterior lo hago solo imprimiendo byte a byte en hexadecimal.

La pregunta aqui es.. ¿debo de busca el algoritmo ya hecho para convertir de entero a "Cadena Decimal" usado por itoa?

O recomiendan algun otro algoritmo que sea mas adecuado para números largos, repito el numero ya lo tengo en memoria y es de N cantidad de bits

El algoritmo itoa es el siguiente:

http://opensource.apple.com//source/groff/groff-10/groff/libgroff/itoa.c

y al aprecer no funciona para numeros como el que tengo.

Código
  1. #define INT_DIGITS 19 /* enough for 64 bit integer */
  2.  
  3. char *itoa(i)
  4.     int i;
  5. {
  6.  /* Room for INT_DIGITS digits, - and '\0' */
  7.  static char buf[INT_DIGITS + 2];
  8.  char *p = buf + INT_DIGITS + 1; /* points to terminating '\0' */
  9.  if (i >= 0) {
  10.    do {
  11.      *--p = '0' + (i % 10);
  12.      i /= 10;
  13.    } while (i != 0);
  14.    return p;
  15.  }
  16.  else { /* i < 0 */
  17.    do {
  18.      *--p = '0' - (i % 10);
  19.      i /= 10;
  20.    } while (i != 0);
  21.    *--p = '-';
  22.  }
  23.  return p;
  24. }
  25.  

Saludos
117  Seguridad Informática / Criptografía / Archivos con numeros Utiles en: 13 Mayo 2016, 20:31 pm
Dejare una lista de números útiles y sus respectivos archivos:

Tabla de Numeros enteros y sus respectivos cuadrados.


Lista de Números primos:

  • Números primos de un byte del 2 al 251 en total 54 : 1
  • Números primos de dos bytes del 257 al  65521 en total  6488 : 2
  • Numeros primos de tres bytes del 65537 al  16777213 en total  1071329: 3

Seguiré subiendo los archivos mientras los compruebo que no tengan errores.

Los números anteriores están en formato Litte Endian y solo necesitan la cantidad de bytes que indica el archivo.

También agregare el código necesario para búsqueda / leerlos a memoria y lo que se necesite.


Saludos
118  Foros Generales / Foro Libre / Acertijo - ¿Que contiene este archivo? en: 12 Mayo 2016, 22:42 pm
Pues eso cual es el contenido de este archivo.

- c
119  Programación / Programación General / Numeros Primos en: 10 Mayo 2016, 02:11 am
Muy buen dia.

Busco un metodo 100% seguro para deterinar si un numero dado es primo o no.

Es el metodo que estoy usanfo como lo indica wikipedia es dividir el numero dado entre todos los numeros primos que ya tengo guardados que sean menores o iguales a la raiz del numero dado y si en algun momento el resto de la divicion es 0 entonces el numero no es primo.

Para hacer mas eficiente el trabajo tengo guardadas los cuadrados n^2 en una tabla y cuando pregunto por un numero N solo hago una busqueda binaria y retorno el numero n mas cercano.

Cabe mencionar que ahorita apenas llevo numeros de hasta 7 bytes.

La pregunta aqui es.

¿Hay uno que sea mas rapido y con la misma certeza?
120  Programación / Programación C/C++ / Problema al escribir archivo - 0D le precede a 0A (Solucionado) en: 9 Mayo 2016, 06:06 am
Problema al escribir archivo...

Realmente estoy rompiéndome la cabeza desde hace unos 2 dias...  :silbar: :silbar: :silbar:

Al momento de guardar datos en un archivo escribo los datos de 2 bytes en 2 bytes.

Todo bien pero llega un momento en que el programa no guarda la información que debe de guardar, sin embargo si mando a imprimir lo que esta guardando esta información si es correcta, pero no la que se guarda en el archivo.

Código
  1. file = fopen(nombre,"a+");
  2. if(file) {
  3. debug("-primos[%i]",primos[offset]->valor,primos[offset]->bytes,offset);
  4. fwrite(primos[offset]->valor,primos[offset]->bytes,1,file);
  5. fclose(file);
  6. }
  7.  

Mando a llamar a una función debug para ver que es lo que se esta guardando, esta función me imprime el contenido de la memoria sin afectarlo...

Código
  1. void debug(char *s,unsigned char *ptr,unsigned int l,...) {
  2. va_list args;
  3. int i = 0;
  4. int len = strlen(s)*20;
  5. char *buffer;
  6. buffer = calloc(len,sizeof(char));
  7. va_start(args, l);
  8. vsprintf(buffer,s, args);
  9. printf("%s: 0x%x ",buffer,ptr);
  10. while(ptr && i < l) {
  11. printf("%.2x",ptr[i++]);
  12. }
  13. printf("\n");
  14. va_end(args);
  15. memset(buffer,0,len);
  16. free(buffer);
  17. }

Aquí lo importante es notar que llamo a fwrite para escribir en el archivo abierto con la opcion "a+"

Código
  1. debug("-primos[%i]",primos[offset]->valor,primos[offset]->bytes,offset);
  2. fwrite(primos[offset]->valor,primos[offset]->bytes,1,file);

La posición de memoria que se guarda es: primos[offset]->valor y la cantidad de bytes que se guardan con fwrite y se imprimen con debug es primos[offset]->bytes que para el ejemplo dado vale 2

La salida del programa va mas o menos asi...

Código:
-primos[54]: 0x567fd0 0101
-primos[55]: 0x567ef0 0701
-primos[56]: 0x567f10 0d01
-primos[57]: 0x567ff0 0f01
-primos[58]: 0x567f60 1501
-primos[59]: 0x567e60 1901
-primos[60]: 0x568000 1b01
-primos[61]: 0x567f20 2501
-primos[62]: 0x567f90 3301
-primos[63]: 0x568010 3701
-primos[64]: 0x568020 3901
-primos[65]: 0x567e80 3d01
-primos[66]: 0x567f40 4b01
-primos[67]: 0x567f50 5101
-primos[68]: 0x568030 5b01
...

y donde se presenta el problema es la siguiente:

Código:
-primos[372]: 0x568520 f509
-primos[373]: 0x568560 f709
-primos[374]: 0x5682c0 fd09
-primos[375]: 0x5683f0 130a
-primos[376]: 0x5682b0 1f0a
-primos[377]: 0x568570 210a
-primos[378]: 0x5681e0 310a
-primos[379]: 0x568390 390a
-primos[380]: 0x5683e0 3d0a
-primos[381]: 0x5681f0 490a
-primos[382]: 0x568330 570a
-primos[383]: 0x5683a0 610a
...


¿Nada anormal? Claro esa salida esta bien, el problema esta al guardar el archivo en ese ultimo segmento queda asi (Salida hexadecimal)

Código:
F509F709FD09130D0A1F0D0A210D0A310D0A390D0A3D0D0A490D0A570D0A610D0A630D0A670D0A6F0D0A750D0A7B0D0A7F0D0A810D0A850D0A8B0D0A930D0A970D0A990D0A9F0D0AA90D0AAB0D0AB50D0ABD0D0AC10D0ACF0D0AD90D0AE50D0AE70D0AED0D0AF10D0AF30D0A030B110B150B1B0B

Ahora que lo veo Noto un recurrente 0D y no tengo ni idea de donde sale, el detalle no veo error en donde se guarda el archivo repito:

Código
  1. debug("-primos[%i]",primos[offset]->valor,primos[offset]->bytes,offset);
  2. fwrite(primos[offset]->valor,primos[offset]->bytes,1,file);

En teoría lo que se muestra en la salida estándar y en el archivo creado debería de ser lo mismo primos[offset]->valor

Si a alguien le a pasado algo similar o de plano ve un error que yo no veo por favor avíseme.

No creo que sa detalle del sistema, el error se me presenta tanto en FreeBSD y en Windows
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines