ARCADE FOREVER

Encriptación juegos Naomi/Naomi2/Atomiswave

« Older   Newer »
  Share  
motu
view post Posted on 16/8/2010, 01:48     +1   -1




Abro topic para hacer consulta popular, haber si me podeis echar una mano. He logrado bajarme varios source en C++ del mame de la parte de emulación de Naomi, a través del MAWS después de multiples problemas, para ir analizando a base de código el tema de la encriptación de los cartuchos de Naomi, para lo que hablamos por telefono Dino; y analizando el código, me encuentro por fin con el prototipo de una función, bueno, mejor dicho, de la [b]única[/b] función implementada en C++, llamada [I]naomi_game_decrypt[/I], cuya definición va en el cuerpo de otra libreria, concretamente la "gdcrypt". Cuando me pongo a buscar dicha libreria no existe dicha referencia en MAME, es como si no estuviera a propósito dejando en un callejón sin salida. Algunos me dirán "pues bajate el mame a compilar", si, pero está precompilada y de poco me vale en código objeto o en "assembler". El caso es que necesitaría una mano para ver si alguien me pudiera ayudar a localizar el fichero "gdcrypt.c" que teoricamente estaría en el directorio "machine" del código fuente.

Como extra el prototipo de la función que ando buscando, es la siguiente:

CODE
extern void naomi_game_decrypt(running_machine* machine, UINT64 key, UINT8* region, int length);


Pues eso, a ver si alguno me pudiera echar un cable con este "pequeño" problema de transparencia por parte de la gente del MAME y solventar así mi curiosidad y necesidad de cacharreo :)

¡Un saludo!

 
Top
motu
view post Posted on 16/8/2010, 15:28     +1   -1




Ha estado escondido pero encontré el código en cuestión, me encanta la trasparencia de esta gente... pero bueno. Dejo aquí el código de la función, por si alguna otra persona lo ha buscado que pueda servirle para entender como sería el proceso de desencriptación del DES de la Naomi.

SPOILER (click to view)
CODE
void naomi_game_decrypt(running_machine* machine, UINT64 key, UINT8* region,

int length)
{
       int i;

       des_generate_subkeys (rev64(key), des_subkeys);

       #ifdef MAME_DEBUG
       /* save the original file */
       {
               FILE *fp;
               char filename[256];
               sprintf(filename,"encrypted %­s", machine->gamedrv->name);
               fp=fopen(filename, "w+b");
               if (fp)
               {
                       fwrite(region, length, 1, fp);
                       fclose(fp);
               }
       }
       #endif

       for(i=0;i<length;i+=8)
       {
               UINT64 ret;
               ret = read_to_qword(region+i);
               ret = rev64(ret);
               ret = des_encrypt_decrypt(1, ret);
               ret = rev64(ret);
               write_from_qword(region+i, ret);
       }

       #ifdef MAME_DEBUG
       /* save the decrypted file */
       {
               FILE *fp;
               char filename[256];
               sprintf(filename,"decrypted %­s", machine->gamedrv->name);
               fp=fopen(filename, "w+b");
               if (fp)
               {
                       fwrite(region, length, 1, fp);
                       fclose(fp);
               }
       }
       #endif
}


¡Un saludo!
 
Top
erb77
view post Posted on 31/10/2010, 22:47     +1   -1




Hola Motu,

Como veo que controlas el tema de la encriptación, tengo unas dudas que igual me podrías aclarar.
Entiendo (y por favor corrigeme si me equivoco) que para desencriptar una rom de Naomi se necesita tener el DES key que se puede obtener de la pagina de GURU para utilizar el DEScrypt.exe con ese key y asi poder ejecutarlo en la Naomi a traves de netboot.
Sin embargo hay roms que aparecen en verde pero que sin embargo no tienen niguna clave DES. ¿Que valor se debe introducir en el DEScrypt.exe?
He probado a desencriptar el virtua striker los power stone y el zombie revenge poniendo un valor de 0000000000000000 (supongo que ahi esta el error) pero no me funciona ninguno. ¿Podrías echarme una mano? ¿Estoy seguro que no soy el único que lo agradecera? ¿Has conseguido hacer funcionar alguno de los juegos que he comentado?

Muchas Gracias.

Un Saludo.
 
Top
2 replies since 16/8/2010, 01:48   515 views
  Share