Formato de archivos de datos de Yu Gi Oh! Power of Chaos

http://yugiohextractor.sourceforge.net

El documento establece la nomenclatura 0xXX para indicar un número hexagesimal, por ejemplo 0xF3, a menos que se indique explícitamente. Como editor hexagesimal recomiendo el Hex Workshop o el UltraEdit 32.


* Cabecera del archivo que contiene el sistema virtual de archivos.

Offset Bytes Descripción
0x00000000 8 Los caracteres ASCII:  KCEJYUGI (C# byte[8] )
0x00000008 4 Número de archivos contenidos (C# uint)

* Descripción de archivo. (Existe una descripción por cada archivo contenido)

Offset Bytes Descripción
0x000000C 256 Nombre de archivo encriptado.  (lo que sobra se llena con 0x0) (C# byte[256])
0x000010C 4 Offset de donde comienza el archivo, basado en el inicio del archivo contenedor. (C# uint)
0x0000110 4 Tamaño del archivo. (C# uint)
0x0000114 4 Tamaño del archivo (al parecer siempre igual que el anterior dato) (C# uint)

El nombre del archivo es ilegible ya que invierten los 4 primeros bits con los 4 últimos bits de cada caracter, o se puede describir como una rotación de 4 bits hacia la izquierda o lo mismo una rotación de 1 bit, 4 veces hacia la izquierda. Para hacerlo legible debe hacerse el proceso inverso y rotar los bits 4 veces hacia la derecha. Por ejemplo si tenemos el byte 0x4A (01001010) al rotarlo 4 veces a la derecha quedaría 0xA4(10100100).

Paso por paso quedaría así: (0x4A)01001010 -> 00100101 -> 10010010 -> 01001001 -> 10100100(0xA4)

Inmediatamente después de terminadas todas las descripciones de archivo, siguen los datos de cada uno de los archivos.


Ejemplo: Digamos que en un archivo llamado ejemplo.dat tenemos guardados tres archivos:

Nombre Nombre ASCII Desencriptado (Hex) Nombre ASCII encriptado (Hex) Tamaño del archivo
foto.bmp 66 6F 74 6F 2E 62 6D 70 66 F6 47 F6 E2 26 D6 07 1000 (0x03E8) bytes
sonido.wav 73 6F 6E 69 64 6F 2E 77 61 76 37 F6 E6 96 46 F6 E2 77 16 67 2000 (0x07D0) bytes
texto.txt 74 65 78 74 6F 2E 74 78 74 47 56 87 47 F6 E2 47 87 47 500 (0x01F4) bytes
En el siguiente tabla se debe tomar en cuenta que el nombre de archivo debe llenarse con 0x0 hasta llegar a 256 bytes pero eso se sobrentiende y no se pondrá. Por ejemplo como foto.bmp esta conformado por 8 caracteres ASCII es decir 8 bytes entonces se deben agregar 248 bytes en 0x0.
Offset Descripción Contenido
0x0000 Cabecera KCEJYUGI, 0x0003
0x000C Descripción foto.bmp 66 F6 47 F6 E2 26 D6 07, 0x0330, 0x03E8
0x0118 Descripción sonido.wav 37 F6 E6 96 46 F6 E2 77 16 67, 0x0718, 0x07D0
0x0224 Descripción texto.txt 47 56 87 47 F6 E2 47 87 47, 0x0EE8, 0x01F4
0x0330 Datos de foto.bmp 1000 bytes de datos.
0x0718 Datos de sonido.wav 2000 bytes de datos.
0x0EE8 Datos de texto.txt 500 bytes de datos
0x10DC Fin del archivo  

SourceForge.net Logo   Ernesto Gutiérrez Arrázola  2005 - Bogotá - Colombia