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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con archivo binario, por favor.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con archivo binario, por favor.  (Leído 7,347 veces)
Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: Ayuda con archivo binario, por favor.
« Respuesta #10 en: 23 Abril 2011, 10:25 am »

Lo que te pase no debería de comerse ningún numero, si lo dices por la salida por pantalla, es el printf el que no los muestra
Código
  1. printf("Numero %08X Invertido %08X\n",Numero,Invertido);
  2.  
Con esta modificacion muestra tambien los 0 de arriba, pero que no los mostrara no significa que no los invierta. Ese trozo lo puse para que vieras el resultado

Este code esta filtrando en grupos de 2bytes (16bits)
Código
  1. if ( addr & 0x2 )  data = (data>>16)&0xffff ;
  2.  else               data = (data&0x0000ffff) ;
  3.  


En línea

carlosguay

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: Ayuda con archivo binario, por favor.
« Respuesta #11 en: 24 Abril 2011, 15:45 pm »

Pues tengo novedades.

Desde que me dijiste lo de litte-endian, le e estado dando vueltas, ya que yo quiero usar el programa en cualquier pc, la idea de invertir los bytes, creo que no era buena, ya que en un pc big-endian, tambien invertiria los bytes y entonces seguiria estando mal.
He buscado la forma de invertir los datos recogidos, pero solo si el pc, es little, y creo que con esto lo e conseguido.

Código
  1. data = ((i&0xff)<<24)+((i&0xff00)<<8)+((i&0xff0000)>>8)+((i>>24)&0xff);
  2. fwrite( (unsigned char*) &data, 1, sizeof(data), fd);




Solo me faltaria confirmar, que en un pc big-endian, funcionaria bien.

Pero como los problemas nunca vienen solos, pues lo que te comente del codigo para invertir los bytes, osea que se comia bytes, me referia al archivo y no a la salida de consola, el resultado que con este proceso, tambien me cambia algunos bytes.




Como ves, el archivo sacado com el programa que te comente y el sacado com mi programa, esto creo que va a ser mas dificil de solucionar, xd.

Perdonar por tantas imagenes, pero siempre e creido, que mas vale una imagen que mil palabras.


En línea

Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: Ayuda con archivo binario, por favor.
« Respuesta #12 en: 25 Abril 2011, 13:53 pm »

ese code que pones yo no lo veo dar problemas, lo que dudo es que no los invierta si es Big-endian. Para invertirlos segun sea Big-endian o no yo averiguaría si estas en un PC big-endian o litte-endian
Pon el code completo porque sino me parece que no vamos a encontrar nada

Lo que me muestras, tienen en común el bit de signo, el numero 8 si manejas bytes o el 31 en caso de grupos de 4 bytes, pero como lo inviertes se queda en el numero 8.
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Listar archivo binario
Programación C/C++
Teby45 0 2,042 Último mensaje 17 Septiembre 2010, 21:31 pm
por Teby45
Ayuda con programa en C (archivo binario)
Programación C/C++
anaceci21 0 1,535 Último mensaje 28 Mayo 2013, 23:08 pm
por anaceci21
Archivo txt codificado !!! por favor ayuda
Seguridad
LUCKYLUCK1 3 5,208 Último mensaje 11 Diciembre 2017, 17:50 pm
por Serapis
Ayuda - Archivo binario
Programación C/C++
Cero++ 8 2,327 Último mensaje 28 Enero 2019, 00:16 am
por Cero++
Ayuda por favor Como editar un archivo con extensión .A2
Hacking
tomgar1965 2 3,572 Último mensaje 15 Enero 2022, 07:25 am
por Kyouma
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines