Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: _Slash_ en 5 Enero 2016, 04:41 am



Título: ¿Codificación hex?
Publicado por: _Slash_ en 5 Enero 2016, 04:41 am
Me encontré con algunos códigos por la red que tienen este tipo de codificación (imagino que es hex).

Código
  1. unsigned char table[] = {
  2.        0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
  3.        0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
  4.        0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
  5.        0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
  6.        0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
  7.        0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
  8.        0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
  9.        0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
  10.        0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
  11.        0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
  12.        0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
  13.        0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
  14.        0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
  15.        0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
  16.        0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
  17.        0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
  18.        0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
  19.        0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
  20.        0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
  21.        0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
  22.        0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
  23.        0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
  24.        0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
  25.        0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
  26.        0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
  27.        0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
  28.        0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
  29.        0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
  30.        0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
  31.        0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
  32.        0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
  33.        0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff,
  34.    };

¿Alguien sabe como puedo convertirlo a código entendible?


Título: Re: ¿Codificación hex?
Publicado por: 0xFer en 5 Enero 2016, 04:53 am
¿Pero como para qué son todos esos datos? Primero descubre para qué son y luego vas a poder entender su significado.
Aqui tienes un convertidor por si te sirve; https://www.branah.com/ascii-converter

Un saludo.


Título: Re: ¿Codificación hex?
Publicado por: crack81 en 5 Enero 2016, 05:25 am
Parece una shellcode te dejo esta informacion
http://wiki.elhacker.net/bugs-y-exploits/overflows-y-shellcodes/shellcode
saludos..


Título: Re: ¿Codificación hex?
Publicado por: MAFUS en 5 Enero 2016, 07:12 am
No, es otra cosa. Convirtiéndolo a binario,  así al vuelo, se distingue un patrón
 Parece que va cambiando ciertos bits de un código a otro, como un bit pattern para el checkeo de memorias.


Título: Re: ¿Codificación hex?
Publicado por: Eternal Idol en 5 Enero 2016, 13:00 pm
Eso no es codigo, es una tabla de busqueda para "revertir" bits.


Título: Re: ¿Codificación hex?
Publicado por: MAFUS en 5 Enero 2016, 13:36 pm
Muy buena Eternal Idol  ;-)


Título: Re: ¿Codificación hex?
Publicado por: mester en 5 Enero 2016, 14:06 pm
Eso no es codigo, es una tabla de busqueda para "revertir" bits.

¿Cómo lo has sabido? ¿Que has hecho para saberlo? xd


Título: Re: ¿Codificación hex?
Publicado por: Eternal Idol en 5 Enero 2016, 14:32 pm
¿Cómo lo has sabido? ¿Que has hecho para saberlo? xd

Simplemente consulte al oraculo moderno (tambien conocido como Google) ...


Título: Re: ¿Codificación hex?
Publicado por: _Slash_ en 5 Enero 2016, 18:45 pm
Efectivamente Eternal Idol es una tabla de búsqueda, pero la idea era poder leer el código original para ver como lo hace y después como hace la conversión a esa codificación.


Título: Re: ¿Codificación hex?
Publicado por: Eternal Idol en 5 Enero 2016, 20:08 pm
Efectivamente Eternal Idol es una tabla de búsqueda, pero la idea era poder leer el código original para ver como lo hace y después como hace la conversión a esa codificación.

Si, la idea era errada, no hay ningun codigo en este hilo asi que no se puede leer ni ver que hace algo que no esta. No se puede deducir un codigo partiendo de una una tabla por arte de magia, esa misma tabla se podria usar para cualquier otra cosa, no son mas que un conjunto de bytes en notacion hexadecimal.


Título: Re: ¿Codificación hex?
Publicado por: ivancea96 en 5 Enero 2016, 21:27 pm
Si no me equivoco, el inverso de tu número que se encuentra en el índice N, es el del índice 255-N.


Título: Re: ¿Codificación hex?
Publicado por: Eternal Idol en 5 Enero 2016, 22:37 pm
Si no me equivoco, el inverso de tu número que se encuentra en el índice N, es el del índice 255-N.

No es una tabla de inversos, el inverso de 0x1 es 0xFE (y viceversa) y no 0x7F (ni 0x80) por ejemplo. La idea no es invertir los bits (para lo cual una tabla sobra, el operador bit a bit NOT lo hace) sino "revertir" el orden de los bits y el indice es el propio byte.

Ejemplos:
0x01 = 0000 0001 y "revertido"  1000 0000 = 0x80 = table[1]
0xCC = 1100 1100 y "revertido" 0011 0011 = 0x33 = table[0xCC]


Título: Re: ¿Codificación hex?
Publicado por: ivancea96 en 5 Enero 2016, 23:19 pm
Bueno, me refería a:
Código
  1. (table[n] | table[255-n]) == 255
Que efectivamente se cumple. Sí, no tiene sentido una tabla de este tipo, pero coincidió xD