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 |
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 |