Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: otroWeyMas.nasm en 2 Febrero 2022, 05:47 am



Título: fread me muestra algunos hexadecimales de forma incorrecta
Publicado por: otroWeyMas.nasm en 2 Febrero 2022, 05:47 am
Hola

Dos preguntas, cuando intento sacar los hexadecimales de un binario, utilizando fopen y fseek, me aparecen unos de forma extraña, por ejemplo:

0xaf 0x3c 0xffffffa9 0x4c.... 0xbc 0xaf 0xffffff4c...etc.

¿A que se debe esto?

Citar
0xffffffa9 .... 0xffffff4c

¿hay alguna forma de evitarlo?

en el printf utilizo, "%02x", pero no entiendo porque me aparecen algunos hexadecimales de esa forma, incluso uso antes memset para dejar el buffer de fread en '\0', pensando que podría algo interferir, pero no, sigue haciendo lo mismo.

También lo verifique con un editor de hexadecimal y si me aparecen los hexadecimales correctos, pero a diferencia del editor, a mi me salen de la forma rara que explique arriba.

Espero me puedan explicar.

Saludos.



Título: Re: fread me muestra algunos hexadecimales de forma incorrecta
Publicado por: Eternal Idol en 2 Febrero 2022, 09:55 am
Me imagino que estas usando char como tipo de dato, x trabaja con int y seguramente te este pasando esto:
https://en.wikipedia.org/wiki/Sign_extension

Ejemplo crudo:
Código
  1. ; 6    : for (int x = 0; x < sizeof(numeros); ++x)
  2. ; 7    : printf("%02x\r\n", numeros[x]);
  3.  
  4. movsx eax, BYTE PTR _numeros$[ebp+esi]
  5. push eax
  6. push OFFSET ??_C@_06HMDBCJFL@?$CF02x?$AN?6@
  7. call _printf

https://www.felixcloutier.com/x86/movsx:movsxd

Código
  1. ; 6    : for (int x = 0; x < sizeof(numeros); ++x)
  2. ; 7    : printf("%02x\r\n", (unsigned char)numeros[x]);
  3.  
  4. movzx eax, BYTE PTR _numeros$[ebp+esi]
  5. push eax
  6. push OFFSET ??_C@_06HMDBCJFL@?$CF02x?$AN?6@
  7. call _printf

https://www.felixcloutier.com/x86/movzx



https://www.cplusplus.com/reference/cstdio/printf/


Título: Re: fread me muestra algunos hexadecimales de forma incorrecta
Publicado por: otroWeyMas.nasm en 2 Febrero 2022, 18:37 pm
Vale, tienes razón, ya lo arreglé.

Gracias por los links.  ;D


Título: Re: fread me muestra algunos hexadecimales de forma incorrecta
Publicado por: Eternal Idol en 2 Febrero 2022, 19:31 pm
De nadas  ::)