IOS HAX

Despues de ver el primer hack publico de IOS (el de la restriccion de La lectura sin encrypcion)

hilo_wiidiscdumper_1053531

Hay q aclarar q antes el team twiizers ya habian usado IOS modificados para hacer que el wii escupiera las claves.

Aqui se encuentra un articulo de bushing sobre este tema

http://hackmii.com/2008/07/ios-hax/

y aqui el ultimo articulo escrito por marcan

http://www.entuwii.net/foro/viewtopic.php?f=7&t=49

Esto les va a interesar a las personas que quieren toquetear el IOS.. este codigo que bushing amablemente hizo publico bajo GPL.. accede al server de nintendo baja el IOS37.. lo guarda en la nand en una carpeta temporal (alli se puede ver el uso del ISFS (manejo de archivos de nand) asi como el Es y cosas bastante interesantes.. aun si no tienen intenciones de toquetear los IOS.. ) y le quita la comprobacion trucha modificada.. segun comenta bushing marcan tambien ha trabajado en un software para cargar el menu del sistema con un IOS modificado..

este codigo esta muy interesante.. se puede modificar para bajar cualquier IOS.. y hacerle los cambios que se quieran... lo de quitarle la restriccion al IOS37 solamente es una especie de demo... y bushing espera q salgan mejores hacks apartir de este codigo [360º] otra ves.. creo q tenemos q agradecerle estos regalos que le hace a la scene XD

Aqui esta el codigo
http://code.google.com/p/patchmii-core/ ... mii_core.c
y aqui esta el articulo completo
http://hackmii.com/2008/07/patchmii/
solo quiero dar gracias a marcan por la exelente explicacion!!!

muchas gracias!!

salu2
eliglu
Wow todo esto es muy interesante, me encanta usar el Hacking cuando su fin es el de reparar algo que ya perdio soporte o su garantia. He utilizado herramientas Hackers para reparar xbox y psp y parece que ahora vamos por la Wii. Interesante y cada vez dan ganas de aportar mas.

Felicidades a todos los colaboradores de estos grande sproyectos
Me encantan esos analisis que hacen en hackmii y ese mensaje que puso marcan tambien esta genial... xD No se como habran llegado hasta alli pero han descubierto mucho xD, yo no hubiera descubierto ni la 16ava parte xD.
Esto les va a interesar a las personas que quieren toquetear el IOS.. este codigo que bushing amablemente hizo publico bajo GPL.. accede al server de nintendo baja el IOS37.. lo guarda en la nand en una carpeta temporal (alli se puede ver el uso del ISFS (manejo de archivos de nand) asi como el Es y cosas bastante interesantes.. aun si no tienen intenciones de toquetear los IOS.. ) y le quita la comprobacion trucha modificada.. segun comenta bushing marcan tambien ha trabajado en un software para cargar el menu del sistema con un IOS modificado..

este codigo esta muy interesante.. se puede modificar para bajar cualquier IOS.. y hacerle los cambios que se quieran... lo de quitarle la restriccion al IOS37 solamente es una especie de demo... y bushing espera q salgan mejores hacks apartir de este codigo [360º] otra ves.. creo q tenemos q agradecerle estos regalos que le hace a la scene XD

Aqui esta el codigo
http://code.google.com/p/patchmii-core/ ... mii_core.c
y aqui esta el articulo completo
http://hackmii.com/2008/07/patchmii/
Muy interesante desde luego. Aunque echo en falta el "haxx_certs.h" y "debug.h", que no están en el repositorio. ¿Se sabe si están disponibles?
Creo que haxx_certs solamente incluye un array con los certificados que vienen en los WAD.

De todos modos se puede obtener de la siguiente manera:

static u8 buf[0x280] ATTRIBUTE_ALIGN(32);
s32 fd;

fd = IOS_Open("/sys/certs.sys", 1);
IOS_Read(fd, buf, 0x280);
IOS_Close(fd);
Muchas gracias. Por el nombre lo había asociado a la cadena de certificados del HBC. Además, como venía en un include pensé que quizá contenía otras definiciones. Sin embargo el código que has propuesto puede ser muy útil.

Sigo teniendo problemas tontos para acceder al ISFS, en concreto no consigo que la función ISFS_ReadDir me devuelva nada. Por ejemplo intento acceder al contenido de la carpeta de HBC pero siempre me devuelve un error tipo -101, -102, -106. Desde luego, he inicializado el ISFS, pero me temo que eso no sea suficiente. Intuyo que lo que pasa es que no tengo permisos adecuados para acceder a la carpeta. ¿Tengo que usar algún tipo de llamada previa a funciones de identificación del título, p.e. ES_Identify? Es que se me hace raro que no tenga acceso ni siquiera a ver el contenido de la carpeta...
Por defecto no tienes acceso a casi nada de ISFS, solo al SYSCONF y algunas cosas de /shared2 y /tmp. Realmente no necesitas acceso a mas, a no ser que quieras hacer una de las siguientes cosas:
- Guardar datos bajo tu directorio de save (no recomendado para homebrew, que para esto está la SD - no lo usamos ni para el canal homebrew. El problema de esto es que tienes que incluir un TMD trucha cuando te identificas, y ese TMD termina en la NAND, y no es plan llenar la NAND de TMDs trucheados y directorios de save)
- Trastear con saves de otras aplicaciones (necesitas identificarte como el menú del sistema, y luego ES_SetUid con el TitleID de cada titulo cuyos saves quieras modificar, antes de hacerlo)
- Parchear aplicaciones directamente en la NAND (esto es bastante bestia, mucho mas seguro usar ES)
- Dumpear juegos de VC (no comment)

haxx_certs en realidad viene con el cetk y el tmd de la actualización online, aunque el patchmii use unos internos y ignore los que traen los archivos. Si te fijas, al bajarte TMD y CETK desde el servidor, el tmd y el ticket traen concatenados a ellos la cadena de certificados correspondiente (su signer y luego uno común). Simplemente puedes usar esos, y así no tienes que añadir unos fijos al programa. Lo de haxx_ es un mal nombre, supongo que vendrá de algún momento en el que se usaba para instalar el HBC, pero en realidad son comunes para todos los juegos y canales. Resumiendo: los primeros 0x2a4 bytes del ticket online son el ticket en sí, y el resto dos certificados. En el TMD es mas complicado, ya que su tamaño varía, pero puedes obtener su tamaño con SIGNED_TMD_SIZE((signed_blob*)stmd). Eso sería el tamaño del TMD en sí, y el resto sus dos certs. Para obtener los certs combinados del tmd y el ticket, basta con concatenarlos (hay uno que queda por duplicado, pero eso da igual).
Muchas gracias por las explicaciones tan detalladas, Marcan. Más que nada, estaba experimentando, pero tenía en mente el punto 1 tu lista. El problema que tengo es que todas las funciones están en libOGC, pero la documentación es muy escasa y hay que ir deduciendo y preguntado :p

Me releeré con calma todo lo que me has dicho, y a seguir experimentando, gracias de nuevo.
Sinceramente, yo creo que usar la NAND para homebrew no es buen camino, por las siguientes razones:

- Actualmente, todos los saves en NAND van como save de un título (como lo hace Nintendo)
- Dichos saves van con un TMD, es decir, van asociados a un título de la Wii que necesariamente debe de estar trucheado
- Igualmente, dichos saves están pensados para ir conjunto con un título de la Wii, es decir, un canal o disco (cosa que las aplicaciones homebrew no son, ya que son simples ejecutables)
- No tenemos un control total sobre la Wii todavia (ya que estamos expuestos a actualizaciones de Nintendo), con lo que cualquier dia pueden ir y jodernos por tener títulos trucheados (o simples saves!) en nuestro sistema
- Hay que reducir al mínimo el número de archivos trucheados en la Wii, al menos de momento, para que sea mas fácil de limpiar si llega la necesidad.

Por eso nosotros hemos hecho el canal homebrew y no consideramos buena idea la creación de canales para aplicaciones homebrew individuales - es todo mucho mas manejable si solo tocamos el sistema básico de la Wii para añadir un único punto de partida para la ejecución de homebrew, y todo lo demás se realiza en un sistema mucho mas flexible, simple, y estándar, como lo es la tarjeta SD. Si algún día tienes que mandar la Wii a reparar o lo que sea, sacas la SD y sabes que, te llegue la Wii como te llegue, siempre podrás reinstalar el canal homebrew si es necesario, meter la tarjeta SD, y vuelves a tener todas tus aplicaciones.

Y no me puedes negar que la SD es muchísimo mas práctica para guardar datos, tanto para hacer pruebas durante el desarrollo, como para hacer backups, mantener una estructura de directorios coherente (en lugar de un "save" opaco de cara al usuario), y permitir al usuario instalar skins, archivos de datos, o lo que sea. No tiene ni punto de comparación una tarjeta SD con esos "saves" de los que habla nintendo ;)
marcansoft escribió:Sinceramente, yo creo que usar la NAND para homebrew no es buen camino


Totalmente de acuerdo. Cuando en tu anterior mensaje comentaste que había que truchear, ya lo vi claro (lo podía haber pensado antes, pero viendo en libOGC las funciones de navegación por el FS pensé que sería transparente al usuario, pero no caí en que para eso se necesitaba trucha). Muchas gracias por tus aclaraciones y advertencias. Desde luego, mi Wii está limpia, sin chip, sin trucha y sólo con el HBC. Y eso sí, con una SD bastante llenita XD
12 respuestas