Breve estudio sobre el trucha signer

Bueno, veo mucha gente haciendo pruebas cambiando texturas y cosas así pero nadie viendo lo que realmente hace el programa.

Los pasos que he dado: He abierto una iso tal cual, y la he "truchado" sin tocar nada, así mantengo los hash y la minima diferencia apreciable.

Que he averiguado ? El trucha realiza una modificación sobre los TMD, algo que me imagine desde el principio, por su tamaño 520 bytes y algo relacionado con segher XD

Que cosas cambia ? La signature, por una común (se repite en todas las trucha firmadas sin excepcion hasta donde he podido comprobar), no se si realmente el fallo reside ahí o es combinación de lo siguiente.

El hash, obvio... supongo :S

Y un par de bytes, de un magnifico campo que en wiibrew describen como "reserved" (aunque ocupa 62 bytes, solo modifica los dos primeros hasta donde he podido ver). Lo que hace con esos dos bytes no lo tengo claro aún, asi que seguiré mirando.

La pregunta es, esos dos bytes con que estan relacionados ? A falta de un detalle mas concreto del bug, solo me queda seguir mirando XD
Lo malo es que estos datos lo aproveche nintendo al estilo Micro$oft, y , ban!
ddf escribió:Y un par de bytes, de un magnifico campo que en wiibrew describen como "reserved" (aunque ocupa 62 bytes, solo modifica los dos primeros hasta donde he podido ver). Lo que hace con esos dos bytes no lo tengo claro aún, asi que seguiré mirando.


En mi caso lo mismo... modifica 2 bytes y vete a saber para que XD
Realmente no modifca dos bytes, ya estoy más cerca de saber lo que hace.

Realiza el SHA1 sobre una region varias veces, y esos "2 bytes" realmente lo que es, es un contador, de que ? No lo sé aún... pero puede que no tenga relación con el "bug" y simplemente sea para llevar una cuenta...

Cuando consiga algunos dvds probaré a grabar modificando esos bytes y así puedo verificar si influyen o no...
ddf escribió:Realmente no modifca dos bytes, ya estoy más cerca de saber lo que hace.

Realiza el SHA1 sobre una region varias veces, y esos "2 bytes" realmente lo que es, es un contador, de que ? No lo sé aún... pero puede que no tenga relación con el "bug" y simplemente sea para llevar una cuenta...

Cuando consiga algunos dvds probaré a grabar modificando esos bytes y así puedo verificar si influyen o no...


Vas por buen camino ;-)

salu2.
La comparación de imagenes es muy buena. La idea es hacer a esta herramienta provicional, y luego desarrollar una que deje la firma de las ISOS tal cual.
Pifia escribió:
Vas por buen camino ;-)

salu2.


Que sabes que yo no ? XD
ddf escribió:
Que sabes que yo no ? XD

De momento lo mismo que tú, pero como soy tan vago, no he probado a quemar un dvd cambiando esos 2 bytes a pj. 00 a ver si funciona. Lo que si me he dado cuenta es que el valor cambia en función de lo que tarda en salir 00 en uno de de esos hash que crea cuando hace sha a esos datos que aun no sabemos que son. Pj. he cambiado un byte de en fichero, una "F" la he puesto como una "a" y se ha tirado $fe01 la he cambiao por una "f" y se ha tiardo $2701 hasta que salio el 00, es curioso, tambien si te fijas estos valores -1 son divisibles por 8 lo que indica que no es un contador al azar.

salu2.
Pifia escribió:De momento lo mismo que tú, pero como soy tan vago, no he probado a quemar un dvd cambiando esos 2 bytes a pj. 00 a ver si funciona. Lo que si me he dado cuenta es que el valor cambia en función de lo que tarda en salir 00 en uno de de esos hash que crea cuando hace sha a esos datos que aun no sabemos que son. Pj. he cambiado un byte de en fichero, una "F" la he puesto como una "a" y se ha tirado $fe01 la he cambiao por una "f" y se ha tiardo $2701 hasta que salio el 00, es curioso, tambien si te fijas estos valores -1 son divisibles por 8 lo que indica que no es un contador al azar.

salu2.


Al principio lo que me desconcerto bastante es que hacia un hash sobre un trozo de la memoria, y sabia que solo leia 520 bytes, pero lo raro es que hacia el primer hash sobre 18000, eso es porque ese trozo parece tenerlo ya en memoria con los hash de las particiones actualizados y demas, y el hash del tmd es por decirlo así el "hash" de los hash's... Así que esa parte creo que queda descartada, porque la veo bastante normal.

Luego los otros hash, hablo de memoria, pero más o menos, inicializa una variable a 0, entra en un bucle que comprueba que no haya llegado a FFFE (si es así, salta a un mensaje de que no se puede firmar, así que si va tener alguna relacion si xD y además esto puede indicar que exista algun disco que no permita ser firmado con cierta combinación de causas)

El hash lo realiza sobre la zona del tmd mas 320 bytes, osease sobre los 200 ultimos :S (me acabo de levantar y no tengo el codigo delante puede ser raro o yo estoy dormido), y nada, sigue sigue hasta que tiene un 0 en el primer byte del hash.

Luego copia el certificado chungo que tiene hardcodeado por ahí, y escribe y listo.

Edito: de certificado nada, FIRMA, LA FIRMA

Que he sacado en claro ? NADA. Osease, vale he reconstruido lo que hace pero no llego a una conclusión de porque lo hace. El que programo la parte de los certificados se dejo algo que no se debia haber dejado ? No se...


xt5, te invocamos!

P.D: Lo de que sean divisibles entre 8, puede tener o no relación, porque se recorre todos los hash y en ningun momento suma más que uno :S
A ver si mas o menos voy por el buen camino XD

Por lo que he visto el Trucha Signer modifica el TMD y la lista global de hashes (tabla H3).

En el TMD reemplaza la firma de Nintendo por la firma trucha RSA de 2048 bits (hay algun juego que tenga una firma de 4096 bits?). Ademas reemplaza el hash sha-1 que hay al final del TMD que corresponde al hash de la tabla H3. Los bytes que reemplaza en el campo "reserved" todavia no tengo claro para que sirven.

En la tabla H3 sencillamente lo que hace es modificar los hashes (tambien en sha-1) debido a la modificacion de los clusters.

¿Me he equivocado en algo? XD
Waninkoko escribió:A ver si mas o menos voy por el buen camino XD

Por lo que he visto el Trucha Signer modifica el TMD y la lista global de hashes (tabla H3).

En el TMD reemplaza la firma de Nintendo por la firma trucha RSA de 2048 bits (hay algun juego que tenga una firma de 4096 bits?). Ademas reemplaza el hash sha-1 que hay al final del TMD que corresponde al hash de la tabla H3. Los bytes que reemplaza en el campo "reserved" todavia no tengo claro para que sirven.

En la tabla H3 sencillamente lo que hace es modificar los hashes (tambien en sha-1) debido a la modificacion de los clusters.

¿Me he equivocado en algo? XD

No, pero te has dejado algo, te explico : h3 se consigue de la tabla que se crea de h1 y h2. Nada mas, si cambias algo, cambiara H1, H2 y H3.

Para DDF: ahora mismo ando un pelín liado con el DesWad en breve le hecharé un ojo a eso que dices. La firma, puede ser que no este ahí por que si, puede que se cree a partir de la clave pública, pero esto es una hipótesis nada más, que venga Xt5 y nos eche un caldero de agua hirviendo sobre los ojos para aclararnos las ideas... [carcajad]

Salu2.
bueno, el programa hace lo que dice ddf, no encierra mayor misterio.

la firma trucha es especial, prueben modificar un simple byte de ella: no pasara la autenticacion...

la idea de los H0, H1 H2, H3, H4 es simplemente genial, te permite firmar gigas de informacion y a la vez te permite accesos aleatorios a trozos pequeños de datos chequeando facilmente su integridad. este esquema tiene un poco de overhead, pero en alguna otra aplicacion se podria implementar 100% por hard :)

esta cadena de seguridad al parecer no tiene bugs, H4 debe ser correcto, y no es posible colisonar hashes sha1 como para explotarla.

existe la posibilidad (mediante flags) de deshabilitar la encriptacion/hashing pero no funciona (al menos no, sin tener acceso al PPC).

el bug explotado es demasiado ridiculo y esta en la parte mas critica del codigo de autenticacion, pero no les dire cual es porque les arruinaria la diversion (seria como contar el final de una pelicula) :)

edit:

alguno de ustedes tiene como restaurar la NAND de su wii facilmente??
xt5 escribió:edit:

alguno de ustedes tiene como restaurar la NAND de su wii facilmente??


Grazie por el resto de la info.... sobre esto, más o menos... pero ahora no tengo tiempo para ponerme a soldar lo que necesito xD

Recordar que el infectus tenia un modo para hacer esto mismo, o por lo menos leerla, que ya es mucho...

Estamos buscando repuestos para la NAND de wii, si alguien sabe de donde sacarlos y que funcionen fielmente, que hable ahora... (o calle para siempre). Seria muy util empezar a jugar con el boot2 y tener varias maneras de atacar la NAND.

Como imagine, el truco andaba por la firma, ahora que podemos ejecutar codigo lo suyo seria extraer el firm y mirarlo para saber por donde van los tiros. Demasiado tentador... pero es que la falta de tiempo es terrible en estos casos... AIS...
ddf escribió:
Grazie por el resto de la info.... sobre esto, más o menos... pero ahora no tengo tiempo para ponerme a soldar lo que necesito xD

Recordar que el infectus tenia un modo para hacer esto mismo, o por lo menos leerla, que ya es mucho...

Estamos buscando repuestos para la NAND de wii, si alguien sabe de donde sacarlos y que funcionen fielmente, que hable ahora... (o calle para siempre). Seria muy util empezar a jugar con el boot2 y tener varias maneras de atacar la NAND.

Como imagine, el truco andaba por la firma, ahora que podemos ejecutar codigo lo suyo seria extraer el firm y mirarlo para saber por donde van los tiros. Demasiado tentador... pero es que la falta de tiempo es terrible en estos casos... AIS...


Bueno si, parece que entonces esta claro. El fallo esta en el sistema de comprobar la firma, la firma trucha es un ingenio que consigue que el sistema de verificación de firmas de la wii de por bueno el contenido fimado.

En cuanto a lo de la Nand, yo en este caso si que me planto, ya tube suficiente con soldar el 2dckey [jaja] .

Sobre lo de extraer el firm, voy a lanzar una pregunta tonta... ¿Los Wads no contienen el firm o por lo menos parte de él? Si es así, se le podría pasar el desbichador a ver que se le saca en claro. Pero imagino que no vale un desbichador cualquiera ... mmm tal vez el .. no me acuerdo del nombre, cachis lo tengo en el ordenador de sobremesa...

Yo también estoy sin tiempo, es mas ahora mismo estoy "trabajando" [666]

Salu2.
Pifia escribió:
Bueno si, parece que entonces esta claro. El fallo esta en el sistema de comprobar la firma, la firma trucha es un ingenio que consigue que el sistema de verificación de firmas de la wii de por bueno el contenido fimado.

En cuanto a lo de la Nand, yo en este caso si que me planto, ya tube suficiente con soldar el 2dckey [jaja] .

Sobre lo de extraer el firm, voy a lanzar una pregunta tonta... ¿Los Wads no contienen el firm o por lo menos parte de él? Si es así, se le podría pasar el desbichador a ver que se le saca en claro. Pero imagino que no vale un desbichador cualquiera ... mmm tal vez el .. no me acuerdo del nombre, cachis lo tengo en el ordenador de sobremesa...

Yo también estoy sin tiempo, es mas ahora mismo estoy "trabajando" [666]

Salu2.


Pues no se ahora mismo donde andara el firmware completo, pero en alguna actualización debe estar ...
ddf escribió:
Pues no se ahora mismo donde andara el firmware completo, pero en alguna actualización debe estar ...


No hya actualizaciones completas :-S, son actualizaciones "por partes", como el sistema usado en los P2P o los PPATCHERs. Se divide los archivos entrozos y se les asigna unos CRCs a cada parte del archivo. Si te das cuenta en las ISOs que incluyen actualizaciones hay unos archivos con nombres muy parecidos y con versiones diferentes. Es porque el firmware de una Wii tendrá una versión, y tendrá que ir incrementándola versión a versión. Además actualiza "por partes", cuando se conectaba a internet con el firmware 1.0 se veía perfectaemnte que el sistema descargaba las partes del firmware que habían sido editadas u obsoletas. Por lo que el firmware original sólo está en las consolas.

El SMG tiene más archivos de actualizaciones que ningún otro juego. Son los trozos para actualizar cualquier Wii a la versión 3.0
ArangeL escribió:
No hya actualizaciones completas :-S, son actualizaciones "por partes", como el sistema usado en los P2P o los PPATCHERs. Se divide los archivos entrozos y se les asigna unos CRCs a cada parte del archivo. Si te das cuenta en las ISOs que incluyen actualizaciones hay unos archivos con nombres muy parecidos y con versiones diferentes. Es porque el firmware de una Wii tendrá una versión, y tendrá que ir incrementándola versión a versión. Además actualiza "por partes", cuando se conectaba a internet con el firmware 1.0 se veía perfectaemnte que el sistema descargaba las partes del firmware que habían sido editadas u obsoletas. Por lo que el firmware original sólo está en las consolas.

El SMG tiene más archivos de actualizaciones que ningún otro juego. Son los trozos para actualizar cualquier Wii a la versión 3.0


Resumiendo...
No tenemos ningun firmware completo, solo tenemos upgrades XD.
Espero no decir una tonteria.

Y recopilando partes podria conseguirse un firm ver.?
bueno.. en realidad si esta disponible el firmware completo.. ya que hay varios dumps del nand.. incluso hay dumps de nands brickeados...

http://www.openwii.org/forums/viewtopic.php?p=1241#1241
jesica667 escribió:bueno.. en realidad si esta disponible el firmware completo.. ya que hay varios dumps del nand.. incluso hay dumps de nands brickeados...

http://www.openwii.org/forums/viewtopic.php?p=1241#1241


No hace falta la nand key ? XD
19 respuestas