Formato de partición Wii

Bueno, después de un rato de programar por fin he conseguido hacer un programa que extrae y descifra los datos de las ISO de Wii (como el WiiED que venia incluido con las WiiTools).

Ahora tengo los datos de la partición descifrados, pero no he encontrado ninguna documentación acerca del formato de la partición descifrada. Mi objetivo ahora seria hacer un programa tipo "WiiSO", que a partir de la partición descifrada, extrae los archivos.

Por lo que veo, el WiiSO primero lee los archivos del sistema (aplicación, sistema de archivos, etc.) de la primera parte de la partición, supongo que luego a partir de estos archivos obtiene suficiente información como para extraer el resto.
[quote="GameZelda"]Bueno, después de un rato de programar por fin he conseguido hacer un programa que extrae y descifra los datos de las ISO de Wii (como el WiiED que venia incluido con las WiiTools).

Ahora tengo los datos de la partición descifrados, pero no he encontrado ninguna documentación acerca del formato de la partición descifrada. Mi objetivo ahora seria hacer un programa tipo "WiiSO", que a partir de la partición descifrada, extrae los archivos.

Por lo que veo, el WiiSO primero lee los archivos del sistema (aplicación, sistema de archivos, etc.) de la primera parte de la partición, supongo que luego a partir de estos archivos obtiene suficiente información como para extraer el resto.[/quote

Enas, concretamente la info del resto de ficheros se consigue del fst.bin.

Si quieres, con mas tiempo te explico todo lo que necesites saber..

Salu2.
Bueno si puedes explícamelo, pero tampoco es muy importante, esto solo lo hago para pasar el rato [360º]

Tengo otra duda, esta supongo que es más fácil. Estoy mirando las tablas SHA-1 de cada clúster, y no me quedan claras las dos segundas tablas.

Veo que la primera tiene 31 hashes, uno para cada bloque de 0x400. Esta queda claro.

Luego la segunda tiene 8 hashes, el primer hash es el hash de toda la tabla de arriba, pero luego los otros por más que leo en Wiibrew no lo entiendo [buuuaaaa] [buuuaaaa]

La tercera igual, el primer hash es el de la toda segunda tabla, los otros ni idea.
GameZelda escribió:Bueno si puedes explícamelo, pero tampoco es muy importante, esto solo lo hago para pasar el rato [360º]

Tengo otra duda, esta supongo que es más fácil. Estoy mirando las tablas SHA-1 de cada clúster, y no me quedan claras las dos segundas tablas.

Veo que la primera tiene 31 hashes, uno para cada bloque de 0x400. Esta queda claro.

Luego la segunda tiene 8 hashes, el primer hash es el hash de toda la tabla de arriba, pero luego los otros por más que leo en Wiibrew no lo entiendo [buuuaaaa] [buuuaaaa]

La tercera igual, el primer hash es el de la toda segunda tabla, los otros ni idea.


Sí, es un poco lioso :

cluster = 1024 bytes
sub grupo = (cluster*32) * 8 = 262144 bytes
grupo = sub grupo *8 = 2097152 bytes.

1º calcular sha1 para clusters- 2097152/1024 = 2048 hash.
2º dividir los 2048 hash en grupos de 32 hash = a 64 conjuntos de 32 hash. Cada conjunto de 32 es h0
3º aplicar sha1 a cada conjunto, = 64 hash, dividir en 8 conjuntos de hash, cada conjunto resultante será h1.
4º aplicar sha1 a cada conjunto de 8 hash de h1 = 64/8 = 8 hash, este será h2.
5º aplicar sha1 sobre h2 esto nos da h3.
6º por último aplicar sha1 sobre h3, esto nos da h4.

En una partición grande tendremos tantos h3 como "tamaño de la particion dividido entre 2097152", h4 siempre será el resultado de hacer sha1 sobre la totalidad de hash en h3, E.j. una particion de 8 megas tendrá 4 hash h3 y siempre 1-h4.

Espero que lo entiendas.
Salu2.
EDIT: Encontré información de la GC (que parece ser la misma que en Wii)!

http://dolwin.emulation64.com/index.php?page=documents
http://dolwin.emulation64.com/docs/Apploader.txt

http://sourceforge.net/project/showfile ... _id=174991 (en la carpeta include viene la spec. del disco)

---------

Bueno aun no me he mirado lo de los hash, cuando puedo lo miro.

Lo que si he mirado es lo de los archivos del sistema, de momento tengo esto, pero no tengo ni idea de si está bien, alguien me lo podria mirar y corregir?

boot.bin
Siempre 1088 bytes.

En verdad son dos cosas, una cabecera del disco como la de la Wii (con el hasheado y signado desactivado) de 1024 bytes y una

de 64 bytes con el siguiente formato:

4 bytes: Offset del main.dol
4 bytes: Tamaño del main.dol (offset del fsb.bin en las particiones de actualización?, en las que siempre tiene un tamaño de 320 bytes?)
4 bytes: Tamaño del fst.bin
4 bytes: Tamaño del fst.bin
4 bytes: Desconocido (extraño)
4 bytes: Desconocido (offset?)
4 bytes: Desconocido (extraño)
4 bytes: Reservado

bi2.bin
8192 bytes siempre

apploader.bin
Antes viene una cabecera de 32 bytes (no sé si también es parte del apploader.bin)

16 bytes: Fecha AAAA/MM/DD (ASCII), 10 caracteres usados
4 bytes: Constante? (0x81200294)
4 bytes: Tamaño sección 1
4 bytes: Tamaño sección 2
4 bytes: Reservado?

Tamaño después de la cabecera = Tamaño sección 1 + Tamaño sección 2

main.dol
Ver boot.bin.

fst.bin
Ver boot.bin.[/code]
4 respuestas