Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 23-11-2017
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 12
aguml Va por buen camino
A ver si me explico, este archivo es leido por la PS3 y es donde se guarda la partida de un juego en concreto. La empresa que ha creado el juego lo ha protegido con un checksum que por lo visto se llama DWADD que no es mas que ir sumando DWORDs del archivo uno detras de otro en un rango especifico y el valor obtenido es el checksum el cual lo guarda en otra parte del archivo para saber si ha sido modificado. El problema me lo encontré con que mi checksum no tenia nada que ver con el correcto y despues de muchas vueltas alguien me dijo que el modo en que se lee la memoria depende de la arquitectura del procesador y me dije ¿y si la ps3 lo hace al reves?
O sea, si miras en binario el archivo verias algo como
11 22 33 44 55 66 77 88
Si lees dos dwords obtendrias:
0x44332211
0x88776655
Al menos en mi pc es asi.
Pues bien, la suma al final si que era invirtiendolo con lo que quedarian como:
0x11223344
0x55667788
Lo he conseguido con esta pequeña funcion que me he creado para esto:
Código PHP:
int TForm1::InvertirValor(int valor)
{
    
union{
        
int valor;
        
unsigned char cadena[5];
    }
u;
    
int aux;

    
u.valor=valor;

    
aux u.cadena[0];
    
u.cadena[0]=u.cadena[3];
    
u.cadena[3]=aux;

    
aux=u.cadena[1];
    
u.cadena[1]=u.cadena[2];
    
u.cadena[2]=aux;

    return 
u.valor;
}
//--------------------------------------------------------------------------- 
Con eso consigo lo que quiero, primero invirtiendo cada DWORD que leo y luego, antes de guardar el checksum en el archivo invierto tambien el checksum para que se guarde correctamente y con eso va perfecto.
De todos modos soy todo oidos.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Leer CSV Willo Varios 4 04-04-2017 20:06:21
Leer XML chinchan C++ Builder 3 08-11-2012 23:45:24
Leer XML cmm07 Varios 4 02-02-2010 14:36:05
Leer *.res dmagui Varios 5 04-10-2005 22:40:32
Leer usb trex2000 Varios 1 14-03-2005 12:51:41


La franja horaria es GMT +2. Ahora son las 05:42:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi