Asunto de las keys

Bueno viendo como anda el tema y que hay gente que ya le ha metido mano a esto, vamos allá:

Alguien tiene claro como encontrar la SD-K*Y y la IV-K*Y ?

La IV en teoria hay un ligero "concepto" de como encontrarla, pero la SD no aparece información por más que se busca. Y obviamente el md5 blanquer este, ya ni te cuento, aunque presupongo para que sirve.

Lo comento porque seria interesante poder abrir el save del zelda en algún momento y ver que va trayendo...

(Basicamente una importante diferencia entre el save original y el hack es que el hack trae dos archivos y el original solo uno)

P.D: A grandes rasgos, y siento las palabras, me la pela volver a firmar el save game, no quiero meterlo otra vez en la wii modificando nada, solo quiero VER.
ddf escribió:Bueno viendo como anda el tema y que hay gente que ya le ha metido mano a esto, vamos allá:

Alguien tiene claro como encontrar la SD-K*Y y la IV-K*Y ?

La IV en teoria hay un ligero "concepto" de como encontrarla, pero la SD no aparece información por más que se busca. Y obviamente el md5 blanquer este, ya ni te cuento, aunque presupongo para que sirve.

Lo comento porque seria interesante poder abrir el save del zelda en algún momento y ver que va trayendo...

(Basicamente una importante diferencia entre el save original y el hack es que el hack trae dos archivos y el original solo uno)

P.D: A grandes rasgos, y siento las palabras, me la pela volver a firmar el save game, no quiero meterlo otra vez en la wii modificando nada, solo quiero VER.


bueno la manera con que el 98% de la gente ha encontrado las key es muy simple:

alguna vez segher posteo los md5 de las keys en el canal de IRC, creo que eso es facil de encontrar...

entonces tenemos:
-los md5 de la IV y el MD5 blanker.
-los .wad de las actualizaciones desencriptados.
-sabemos que un IV de AES128 son 128bits y un MD5 tambien son 128bits. o sea 16bytes.

por lo que encontrar esas key se reducen a lo siguiente

para i de 0 hasta largo_de_archivo-16
....si md5(contenido_archivo+i, 16)==md5_de_la_key
......vuelca "la key es "+contenido_archivo+i


la SD key, al igual commonkey estan en el codigo del Viper (starlet), y el SD IV y el blanker estan en el "wiisystemmenu" (que es PPC).

para buscarlas con ingenieria inversa y no con los MD5 de las keys, como corresponde, es cosa de desasemblar el codigo buscar las constantes del algoritmo de MD5 y hacer trace y llegas facilemente a como se genera el savegame ;)

hace algunas semanas estuve depurando el Zelda TP de GC y probe algunas maneras de explotarlo, una de ellas es poner un nombre largo para epona (ya que no chequea desbordes) y otra manera MUY simple es la siguiente:
este juego guarda algunos punteros en el archivo savegame, perezosamente ya que deberia guardar solo indices como deberia, muchas de las direcciones apuntan a estructuras que en alguno de sus mienbros corresponden a funciones y como conocemos en que direccion fija de memoria se aloja el sabe game, es cosa de modificar los punteros a "estructuras" dentro de nuestro save que apuntan a nuestro codigo...

no se como sera en el Zelda TP de Wii, me imagino que lo mismo debido a que el juego es simplemente un port de la version GC.

si hay suficiente gente interesada y sepa como usar el gecko, podria colgar algun mini tutorial de debugging.

pero la verdad no creo que valga la pena mirar como funciona el hack del Zelda TP ;)
xt5 escribió:
bueno la manera con que el 98% de la gente ha encontrado las key es muy simple:

alguna vez segher posteo los md5 de las keys en el canal de IRC, creo que eso es facil de encontrar...

entonces tenemos:
-los md5 de la IV y el MD5 blanker.
-los .wad de las actualizaciones desencriptados.
-sabemos que un IV de AES128 son 128bits y un MD5 tambien son 128bits. o sea 16bytes.

por lo que encontrar esas key se reducen a lo siguiente

para i de 0 hasta largo_de_archivo-16
....si md5(contenido_archivo+i, 16)==md5_de_la_key
......vuelca "la key es "+contenido_archivo+i


la SD key, al igual commonkey estan en el codigo del Viper (starlet), y el SD IV y el blanker estan en el "wiisystemmenu" (que es PPC).

para buscarlas con ingenieria inversa y no con los MD5 de las keys, como corresponde, es cosa de desasemblar el codigo buscar las constantes del algoritmo de MD5 y hacer trace y llegas facilemente a como se genera el savegame ;)

hace algunas semanas estuve depurando el Zelda TP de GC y probe algunas maneras de explotarlo, una de ellas es poner un nombre largo para epona (ya que no chequea desbordes) y otra manera MUY simple es la siguiente:
este juego guarda algunos punteros en el archivo savegame, perezosamente ya que deberia guardar solo indices como deberia, muchas de las direcciones apuntan a estructuras que en alguno de sus mienbros corresponden a funciones y como conocemos en que direccion fija de memoria se aloja el sabe game, es cosa de modificar los punteros a "estructuras" dentro de nuestro save que apuntan a nuestro codigo...

no se como sera en el Zelda TP de Wii, me imagino que lo mismo debido a que el juego es simplemente un port de la version GC.

si hay suficiente gente interesada y sepa como usar el gecko, podria colgar algun mini tutorial de debugging.

pero la verdad no creo que valga la pena mirar como funciona el hack del Zelda TP ;)



Bien vale, y alguien tiene, aunque solo sea el md5 de la sd-key para empezar?

Porque de poco sirve que lo pusieran unos dias o meses atras.

Salu2.
Gracias xt5, aun así tendre que buscar las md5 pero supongo que sera mas facil.

A todo esto, no necesitamos el blanker ni el IV para los archivos (si para la cabecera pero eso es otro archivo)

De momento lo que tengo son los dos archivos cifrados con el AES-128CBC, uno que se llama loader.bin (hacer una busqueda en ASCII), y otro zelda. Basicamente el zelda tiene el mismo tamaño que su homonimo original, a salvedad que un bit de permisos cambia (no se bien porque y tendre que mirarlo).

El registro IV de inicialización (el que esta en la cabecera del fichero) del zelda(original) y el zelda(exploit) cambian, por lo que no se pueden comparar ni si quiera cifrados...

Me imagine que la clave sd-key iba por los wad, de las otras no tenia ni idea.

Aún así si diera con los md5, lo que haria sería deescriptar un wad y hacerme algo que probara con todos los bits del wad y no todas las combinaciones posibles. Que creo que es más rápido, si es que la información esta ahí.

Y la verdad, el que me interesa, no es el exploit en si del zelda, sino el loader.bin :D
xt5 escribió:
la SD key, al igual commonkey estan en el codigo del Viper (starlet), y el SD IV y el blanker estan en el "wiisystemmenu" (que es PPC).



La common se saca facilmente del fichero boot2..wad , que se encuantran en el directorio _sys de la particion 1 de cualquier iso, así que no solo está en el Starlet, si es que está en el.

Solo hay que descifrar el fichero WAD y buscarla con un editor HEX, ya que la ckey es la que todos conocemos y usamos.


Salu2.
Pifia escribió:
La common se saca facilmente del fichero boot2..wad , que se encuantran en el directorio _sys de la particion 1 de cualquier iso, así que no solo está en el Starlet, si es que está en el.

Solo hay que descifrar el fichero WAD y buscarla con un editor HEX, ya que la ckey es la que todos conocemos y usamos.


Salu2.


Mucho más facil, tengo una pista de cuales son los 8 primeros y ultimos bit de la clave. Ahora estoy descifrando el wad...
Alguien podria traducir esto?? no me entero mucho, es algo que ha escrito uno de los creadores del hack del zelda.


bushing escribió:When you copy a savegame from your Wii system memory to an SD card (in "Data Management"), it encrypts it with an AES key known to all consoles (SD-key). This is just to keep prying eyes from reading a savegame file.

The encrypted data is then signed with the private (ECC) key for your console. This is to prevent anyone from modifying the save file.

If I then give you a copy of my savefile, your Wii can decrypt it because it knows the shared secret. However, it has no way of checking this signature, because it doesn't know who I am nor my console's public key. To solve this problem, the savegame also contains a copy of the public half of my ECC key.

Now your Wii can verify that I signed it, but it has no way of knowing whether it was really a Wii that signed it, or if I just made up a new random ECC key to try to fool it. To solve this problem, the copy of my Wii's public key stored inside of the savegame is then signed with Nintendo's private key. So, the console now knows that the savegame came from a Wii, using a key that was assigned by Nintendo.

We solved the chicken-and-egg problem with our original memory-dumping hack. We got the private key from that Wii. Since any Wii can read any savefile, we only need to have one key -- it doesn't need to be re-encrypted / re-signed every time.

Jbom escribió:Alguien podria traducir esto?? no me entero mucho, es algo que ha escrito uno de los creadores del hack del zelda.




A grosso modo , dice que las partidas grabadas están cifradas con una clave común para todas las consolas (SD-KEY) y que estan firmadas para que no se puedan modificar. La firma esta echa a partir de la clave privada de cada consola y que esto permite conocer a que consola pertenece. Lo que han descubierto es la forma en que la consola crea la firma y la manera de firmar los saves para que esta firma sea común y valida para todas las consolas.

Salu2.
Pifia escribió:
La common se saca facilmente del fichero boot2..wad , que se encuantran en el directorio _sys de la particion 1 de cualquier iso, así que no solo está en el Starlet, si es que está en el.

Solo hay que descifrar el fichero WAD y buscarla con un editor HEX, ya que la ckey es la que todos conocemos y usamos.


Salu2.

el boot2.wad es del Viper (startlet), me refiero a que es codigo del Viper, no que tengas que sacarlo desde del Viper directamente...
pero no entiendo porque querrias desempaquetar un wad y buscar con un editor hexadecimal una clave que YA TIENES!!, la idea es buscar las que no tienes y teniendo los MD5 la unica manera que existe es escanearlas como explico en el primer post (a no ser que quieras hacer ingenieria inversa)


md5 del md5 blanker: 4582417d623c81fca07a46a570c8969e
md5 del sd-iv: d9f2b2e045d22d3805a67fe0c340ccd2
md5 del sd-key: ef33e224e45c8d8c35ce32d8a810b603


ddf chequea PMs
Bueno, gracias a xt5, y la info que me dio esta mañana, y toda la noche de ayer estudiando el tema...

Ya hemos sacado el sd-key del IOS, además de los archivos del exploit y el zelda...

Se ve claramente por donde revientan el save, y las diferencias, ya daré más información esta tarde.

Muchas gracias a xt5 por la inestimable ayuda :D

Wii ELF Loader v0.1-alpha1    Copyright (C) 2003,2004,2008  tmbinc, segher, bushing   Cleaning up environment OK. Slot A:     SD card detected    SD card not detected    Slot B:     USBGecko serial interface detected  USBGecko serial interface not detected 
xt5 escribió:el boot2.wad es del Viper (startlet), me refiero a que es codigo del Viper, no que tengas que sacarlo desde del Viper directamente...
pero no entiendo porque querrias desempaquetar un wad y buscar con un editor hexadecimal una clave que YA TIENES!!, la idea es buscar las que no tienes y teniendo los MD5 la unica manera que existe es escanearlas como explico en el primer post (a no ser que quieras hacer ingenieria inversa)


md5 del md5 blanker: 4582417d623c81fca07a46a570c8969e
md5 del sd-iv: d9f2b2e045d22d3805a67fe0c340ccd2
md5 del sd-key: ef33e224e45c8d8c35ce32d8a810b603


ddf chequea PMs


Pues sencillo , por que tengo un programa para localizar claves, si lo he hecho yo y es basicamente parecido a lo que tu has puesto, pero, digamos de otra manera, el problema es que solo encontró la Common y se conmentó que también estaba la SD-KEY. La cuestión es: Mi código para desempaquetar el wad es correcto?, Mi código para buscar llaves es correcto? para allar la sd-key hay que pasarle la common key?. Ahora con el MD5 saldré de dudas.
Pifia escribió:
Pues sencillo , por que tengo un programa para localizar claves, si lo he hecho yo y es basicamente parecido a lo que tu has puesto, pero, digamos de otra manera, el problema es que solo encontró la Common y se conmentó que también estaba la SD-KEY. La cuestión es: Mi código para desempaquetar el wad es correcto?, Mi código para buscar llaves es correcto? para allar la sd-key hay que pasarle la common key?. Ahora con el MD5 saldré de dudas.


Luego comento el asunto completo, pero te digo, la clave empieza por AB y termina en 5D (16 bytes en total), esta contenida en el IOS (no el boot2, sino el IOS), con las herramientas de segher es posible abrir el IOS y sacar esta clave...

Aparecen 3 coincidencias, la primera es la buena, las demas dan mierda en los saves.
xt5 escribió:hace algunas semanas estuve depurando el Zelda TP de GC y probe algunas maneras de explotarlo, una de ellas es poner un nombre largo para epona (ya que no chequea desbordes) y otra manera MUY simple es la siguiente:
este juego guarda algunos punteros en el archivo savegame, perezosamente ya que deberia guardar solo indices como deberia, muchas de las direcciones apuntan a estructuras que en alguno de sus mienbros corresponden a funciones y como conocemos en que direccion fija de memoria se aloja el sabe game, es cosa de modificar los punteros a "estructuras" dentro de nuestro save que apuntan a nuestro codigo...

no se como sera en el Zelda TP de Wii, me imagino que lo mismo debido a que el juego es simplemente un port de la version GC.

si hay suficiente gente interesada y sepa como usar el gecko, podria colgar algun mini tutorial de debugging.

pero la verdad no creo que valga la pena mirar como funciona el hack del Zelda TP ;)


Aunque muchos no podamos hacer mucha cosa, por aqui somos muy curiosos y nos gustaria intentar saber como funcionan los xploits.

Por ejemplo en este pdf hay mucha informacion sobre la GameCube

http://www.hackerz.ir/e-books/208%20GameCube%20Hacking.pdf

Podrias aclarar si el sistema de seguridad de wii pricipalmente ha caido a causa de la key que se utiliza con el wiitools y si hay documentacion de como lo consiguieron. Lo que creo recordar es que mediante algun analizador logico y modificaciones en la placa alteraron a volutad el estado de la controladora para cambiar el modo wii a gamecube puidiendo asi leer la clave.

Un saludo.
Esta claro que nos gusto a todos mucho más este logo que el elegido:

Imagen

:D
ddf escribió:Bueno, gracias a xt5, y la info que me dio esta mañana, y toda la noche de ayer estudiando el tema...

Ya hemos sacado el sd-key del IOS, además de los archivos del exploit y el zelda...

Se ve claramente por donde revientan el save, y las diferencias, ya daré más información esta tarde.

Muchas gracias a xt5 por la inestimable ayuda :D

Wii ELF Loader v0.1-alpha1    Copyright (C) 2003,2004,2008  tmbinc, segher, bushing   Cleaning up environment OK. Slot A:     SD card detected    SD card not detected    Slot B:     USBGecko serial interface detected  USBGecko serial interface not detected 


Yo también tengo que agredacerle la ayuda, ya he averiguado cual era el problema. El código para sacar los wad estaba mal, tomaba incorrectamente la dirección de la iv del fichero, los primeros 16 bytes descifrados salen corruptos, por otro lado el programa para sacar las claves tomaba como base claves que empezaran por $00 y que acabaran por $00, por este motivo con la sd no daban núnca aun estando bien descomprimido el wad. Ahora trabajaré para solucionarlo.

Gracias y Salu2.
se pueden descifrar con esas claves archivos que no sean wads?
creo que no he pillado muy bien esto XD
ddf, podrias hacer un mini tuto o mini explicacion de lo que hay que hacer para investigar los saves?

Han comentado que se puede jugar bien con los otros archivos del hack, por lo que lo de hacer un modificador de saves para insertar el hack si que seria posible no?
Veamos vayamos por partes:

Para sacar SOLO los archivos, solo necesitamos la SD-IV, que esta en el IOS (en la partición uno de cualquier juego tenemos el IOS-blabla.wad).

Que ocurre, el IOS va cifrado, así que se necesita para abrirlo ? La common-key (que esa si esta por inet). Eso y las tools de segher, si no teneis mucha idea de esto, preguntarlo, porque la verdad que estan complicadas sacarlas "medio limpias" (me refiero a encontrarlas por hay porque estan en un server publico pero hay que sacar un snapshot y tal y es un rollo).

Una vez tenemos el wad y la common key, vamos a descrifarlo, una de las tools del segher hace esto sin problemas, teneis el IOS en una carpeta llamada 00101000011000 o parecido (XDDD), hay dos archivos uno de 1KB y otro de 1500 y pico KB, bien, el de 1500 contiene la IOS guay y la clave sd-key...

La sd-key teneis dos maneras, una es tirando de escanear el archivo y el md5 (buscar todas las posibles combinaciones de 16 bytes y tirar del md5), y otra, es con la pista que di XD empieza por AB y termina por 5D osease AB X XX XX XX XX XX XX XX XX XX XX XX XX XX 5D (ya es muy facil chicos xD)

Vale, con la sd-key, podeis descifrar los archivos de los saves, PERO no la cabecera (donde va la imagen y el icono con el texto que modifique yo en la imagen de arriba).

Lo que ocurre basicamente, sin dar muchos detalles porque en wiibrew ta mucho mejor explicado de lo que yo puedo explicarlo, es que el header va cifrado con la sd-iv (la de inicializacion), sd-key (la que ya tenemos que tener todos), y el md5 blanker unicamente sirve para comprobar el md5 del header es corrector (no lo necesitar para ver, pero si para volver a cifrar).

Ahora el Bk-header (aka Backup header) y los file header, van en plain text, y llevan su propia iv, que la puede sacar sin problemas el programa usando la sd-key, se puede sacar los archivos con toda la información, aunque ya están por hay posteaditos y tal y no hay mucho rollo que ver dentro al menos que seas un crack de PPC ....

Lo más interesante, son los md5-blanker y el sd-iv, pero eso es otra historia mucho más larga... mucho mucho más larga XD

Lo gracioso, es que con las 3 claves, puedes tocar el header (que no va firmado), pero no puedes modificar nada del save, porque sencillamente va todo firmadito, y aunque el cifrado es bueno, la firma que generes no lo sera ( necesitas una clave de una wii y eso creo que solo la tiene 3 personas contadas :( ), el famoso root certificate...

Ahora, un medio estudio, el save peta por lo de epona, hacer un desbordamiento y salta (un pelín de codigo na más) al loader rapidamente. El loader hace una limpia de registros, flags y todo lo demás muy seria y ya comienza su carga... pero vamos, que poco podemos hacer más, es una pena...

Esperemos tener noticias pronto de cosas buenas, porque se auguran buenos tiempos para investigar :D
En resumen, podemos modificar el Header, y ... esperar porque el firmado solo lo pueden hacer nintendo y los twiizers xD

Gracias por las aclaraciones =33~~
pho escribió:En resumen, podemos modificar el Header, y ... esperar porque el firmado solo lo pueden hacer nintendo y los twiizers xD

Gracias por las aclaraciones =33~~


El firmado, lo puede hacer cualquier wii (ahí esta lo gracioso XD), el problema es que necesitamos la clave de una wii y eso se hace como dicen ellos "con el primer hack-dump de memoria" que hicieron.

Puede que esto para volcar desde GC abra alguna puerta, pero no lo se :S, si la wii limpia todo cuando pasa a GC no hay muchas posibilidades...
Bueno yo creo que alli nos estamos confundiendo.. yo creo que si podemos FIRMAR los saves (como lo mencione antes en el hilo de Twilight hack...) cada wii tiene su propia clave, pero esto NO IMPORTA ya que esta clave de la wii.. no hay forma de comprobar si es verdadera o no, (ej. mi wii no va a saber si la clave de la wii de mi vecino es verdadera o se la invento mi vecino) para hacer esta comprobacion de veracidad esta clave "unica de wii" esta clave se firma con la common-key de nintendo (q ya tenemos).

Por lo cual SI podemos firmar saves, con inventarse una clave de wii y aplicarle la common key (que obtuvieron con el twiizer attack) la cual de la misma forma usan los programas para leer los isos

si estoy diciendo cosas q no son haganmelo saber, pero esto que digo lo estoy sacando directamente de los comentarios de Bushing
Ya te conteste en el otro hilo, pero lo curioso es que copies lo mismo en los dos XDD

Por cierto, esta probado ya y no se puede hacer .... XD
Gracias... lo que pasa esq lo escribi en los 2 lados (aqui para que me aclararan.. y alla para que lo modificaran en el Faq si es q yo estaba en lo correcto)

pero de la misma forma gracias por la aclaracion y cuentame entonces si entendi mal el comentario de bushing en maxconsoles.. entonces si se pueden firmar los saves con la informacion publica que existe (sd-key, y demas keys q se pueden sacar del IOS, y el key que sacaron del dump de memoria?) o con esta informacion solo se pueden modificar iconos (como lo has hecho tu ddf?) o si se puede recrear por completo un save? la common key que usan los programas para desenciptar isos es la misma private key que habla bushing? es la que sacaron del dump? perdon por plantear tantas preguntas pero al parecer en algun momento me perdi bastante en este tema..

bushing escribió:When you copy a savegame from your Wii system memory to an SD card (in "Data Management"), it encrypts it with an AES key known to all consoles (SD-key). This is just to keep prying eyes from reading a savegame file.

The encrypted data is then signed with the private (ECC) key for your console. This is to prevent anyone from modifying the save file.

If I then give you a copy of my savefile, your Wii can decrypt it because it knows the shared secret. However, it has no way of checking this signature, because it doesn't know who I am nor my console's public key. To solve this problem, the savegame also contains a copy of the public half of my ECC key.

Now your Wii can verify that I signed it, but it has no way of knowing whether it was really a Wii that signed it, or if I just made up a new random ECC key to try to fool it. To solve this problem, the copy of my Wii's public key stored inside of the savegame is then signed with Nintendo's private key. So, the console now knows that the savegame came from a Wii, using a key that was assigned by Nintendo.

We solved the chicken-and-egg problem with our original memory-dumping hack. We got the private key from that Wii. Since any Wii can read any savefile, we only need to have one key -- it doesn't need to be re-encrypted / re-signed every time.
jesica667 escribió:Gracias... lo que pasa esq lo escribi en los 2 lados (aqui para que me aclararan.. y alla para que lo modificaran en el Faq si es q yo estaba en lo correcto)

pero de la misma forma gracias por la aclaracion y cuentame entonces si entendi mal el comentario de bushing en maxconsoles.. entonces si se pueden firmar los saves con la informacion publica que existe (sd-key, y demas keys q se pueden sacar del IOS, y el key que sacaron del dump de memoria?) o con esta informacion solo se pueden modificar iconos (como lo has hecho tu ddf?) o si se puede recrear por completo un save? la common key que usan los programas para desenciptar isos es la misma private key que habla bushing? es la que sacaron del dump? perdon por plantear tantas preguntas pero al parecer en algun momento me perdi bastante en este tema..



Con la sd-key, el md5-blanker y el sd-iv, que estan por los archivos que tenemos ahora mismo a nuestra disposición. Se puede cifrar todo, header, archivos del save y lo que querais.

Ahora bien, firmarlo, para autenticar nuestro save, se necesita uno más que parece ser que esta en la memoria de la wii y no se saca tan facil. Y esta vale para firmar los ficheros que van en el save y por lo tanto no podemos modificarlos, excepto el header que este no va firmado. Todo Claro ?
y la foto que tienes con el icono cambiado como lo has logrado? solo cambiando el header? disculpa tanta preguntadera
jesica667 escribió:y la foto que tienes con el icono cambiado como lo has logrado? solo cambiando el header? disculpa tanta preguntadera


Si, es una tonteria, pero para divertirnos no estaba mal... no hace falta firmar el save con el header cambiado.
cual de todas las encriptaciones creeis que tendrán los archivos del contenido generado del Smash bros brawl? (fotos, replays, mapas...)
alguno ha probado a desencriptarlo a ver si sale algo coherente?
26 respuestas