La historia:
Hace una cierta hora la primera "víbora llamada Modchip" de Gamecube de los mundos fue lanzada, para que la escena del desarrollo del homebrew permita básicamente que la gente comience sus usos directamente en energi'a-en de la CROMATOGRAFÍA GASEOSA. Bastante rápido un uso llamó la "cobra" conseguida disponible para él, que permite que la gente patee su DVD-Rs en el gamecube. El comenzar de la versión 0.2 este uso alcanzó la versión 0.4 hasta que ahora, funcionando el establo bonito en todas las impulsiones disponibles de la CROMATOGRAFÍA GASEOSA (04, 06 y 0Tranquilo. Este uso utiliza una característica especial, indocumentada en el Modchip que la ata "firmemente" a la víbora. Siendo seguros que la posibilidad de patear DVD-Rs no es algo especial de la víbora decidíamos descubrir qué se está encendiendo dentro de este uso de la cobra. Y aquí está el resultado - presentado a usted como abrir-fuente para permitir que la comunidad explore y utilice los possibilies sin usar - en nuestros ojos - modchip demasiado costoso.
La materia:
El fichero incluido "Anaconda04.S" es una fuente documentada completa del uso que da lugar a una base funcionar-capaz para el booting DVD-Rs. Los pasos que se realiza son como sigue:
- inicialice el diskdrive en un estado del reajuste (fijando el registro cc003024 de HW)
- abren las impulsiones eliminan errores de la característica enviando dos comandos especiales nombrados "FF 01 MATSHITA 02 00" y "FF 00 DVD-GAME 03 00"
- enviando un cierto codeblock pequeño en la memoria de las impulsiones usando un comando nombrado "FE 01 01 00"
- comenzando este codeblock enganchándolo en una llamada del sistema dentro de la impulsión dando por resultado (?) los estados sabidos del bootphase de Cobra04 (el laser apagado, viaja en automóvili apagado, retrasa para intercambiar, viaja en automóvili encendido, laser encendido)
- abriendo la impulsión realizando un comando de ReadDiscID (A8000040) de ser capaz de leer sectores
- permita fluir audio dependiendo de la disposición del DiscID
- lectura, analizando y comenzando el apploader del disco intercambiado, dando por resultado patear el uso en él
Como se declaró anteriormente, éste es un hecho en casa completo recodifica apenas de la base del cargador, ningún videooutput o los mensajes se entregan durante el funcionamiento. Excepto de los datos derivados dentro del "DriveCode" tabule este código no es afiliado con el código original Cobra04. Decidíamos utilizar los datos en su estado original, pues el equipo alrededor de Mentalcube (los diseñadores del uso de la cobra) hizo un trabajo bien mientras que elegía los remiendos neccesary dentro de la impulsión. El patchcode es genérico para todas las versiones de la impulsión, así que ninguna necesidad de diversas tablas. Lo dejamos a la comunidad para crear un poco de GUI de la suposición para él si desean, como acabamos de hacerlo para el prueba-de-concepto y terminar las discusiones incontables alrededor de qué va encendido dentro de la cobra y de la víbora. Somos no familiares uniforme con las herramientas como PSOLoad, SDLoad o cualquiera-Carga pues estamos utilizando nuestra propia técnica para ejecutar código en nuestro GCs, pero debido al simplyness del código no debe haber problema en todos para funcionar este snippet con esas cosas.
La instrucción de hacer:
Para montar el código usted puede utilizar el DevkitPPC libre y extensamente disponible. Realice simplemente esos pasos para generar un archivo ejecutable del bin:
- powerpc-elf-gcc.exe -Wl,-Ttext,0x81700000 -o Anaconda04.elf Anaconda04.S
- powerpc-elf-strip.exe --strip-debug --strip-all --discard-all
-o Anaconda04r.elf -F elf32-powerpc Anaconda04.elf
- powerpc-elf-objcopy.exe -I elf32-powerpc -O binary Anaconda04r.elf
Anaconda04.bin
Un archivo del bin del ejemplo montó ya con esas herramientas es incluido dentro de este paquete. Upload este archivo a 0x81700000 y salte a esta dirección. Otras direcciones pueden ser utilizadas fácilmente cambiando el parámetro a powerpc-duende-GCC. Tenga por favor presente que usted tiene que puentear su lidswitch de una cierta manera (e.g. rubberband) de hacer el trabajo del código correctamente.
El hablar final y el embromar:
Y ahora algunas palabras al equipo de Mentalcube (y las que están interesadas en un cierto techstuff): ¡Al principio, "arqueamos abajo" del infront de usted! Usted hizo un trabajo bien, cualquiera descubriendo todos los pasos neccessary y el ofcourse para todo el crypting puesto en ejecucio'n y ofuscar en ambos lados, la CROMATOGRAFÍA GASEOSA y la impulsión 8]. Crear un cargador remendando código corriente dentro de la impulsión, que entonces carga otro cargador a 0x8226 que finalmente cargue el patchcode a 0x8502 compensando octetos dentro de los soportes lógico inalterable es realmente una idea agradable para la ofuscación. Y por supuesto usted utilizó el efecto secundario que los comandos de la impulsión están interpretados bitwise, así que usted podría ocultarlos fácilmente poniendo el alot de la basura interior y alrededor de ellos. Incluso la idea de ocultar los dos abre comandos por un valor al reve's-dado vuelta - el statemachine era bastante genious. ¿Oh, y usted descubrió la funcionalidad del registro de la rotura 0 para remendar los soportes lógico inalterable en sus el propios, o usted justo leyó el paso derecho dentro del manual de CPUs'?
Finalmente, usted hizo algunos "unluckily" defectos a los estados pasados de su codificación que permitieron que presentáramos este lanzamiento hoy:
- la idea de la prohibición para leer detrás memoria de la impulsión debe haber sido el interior hecho uno de los cargadores y no enviando comandos compensados directos del memorypatch que nos está permitidos de leer la memoria entera mientras que camina con los comandos enviados.
- los 8 thingie del vipercommand bytes-from-expanded-(71)-inquiry-to-D4 y xor-stream-from-D8 eran aseados y pensamos que esto será una cosa hellish a invertir... pero como usted cifra enviar de las compensaciones usted tuvo que hacerlo al revés en el segundo cargador que acabamos de recodificar - o aún mejore - NOP fuera del xoring en el cargador - voila - la tabla enviada pasada damos básicamente lo que a (0x)BABE desea.
Aparte de esto que decimos otra vez, esto estaba un trabajo realmente agradable hecho por Mentalcube. Demasiado malo intentaron atarlo a la víbora y todavía el didnt abre su código después de este período del tiempo. Y apenas deseamos clarificar un punto importante: No tomamos ni desear cualquier crédito para la posibilidad de patear DVD-Rs en la CROMATOGRAFÍA GASEOSA, éste fue hecho enteramente por el equipo de Mentalcube - acabamos de abrir esto en los miembros de la comunidad que no tienen una víbora alrededor (por cualesquiera razones) de-ofusca'ndola y recodificando en este pedazo del código fácil de utilizar. Decidíamos ahora lanzar este código porque pensamos que su tiempo que pueblan vea cuál es el misterio detrás del código de la cobra y dar la ocasión de instalar algunos proyectos agradables basados en esto, como nosotros están pensando de una cierta clase de DVD-Jugador para la CROMATOGRAFÍA GASEOSA u otras cosas.
¡Tenga por favor presente que jugar copias de juegos que usted no lo hace el propios no es altamente ilegal y de manera alguna significada como función superior de este código!
Utilice este código en su propio riesgo, ninguna responsabilidad se toma para su funcionalidad en su lugar o exploded/fucked encima de GCs, de las impulsiones, de las víboras, de los usuarios, de las computadoras, de DVDs, de los hámsteres, de los gatos, de los perros, de los wifes perdidos y de todo que puedan suceder...
Usted puede utilizar este código libremente en cualquier manera que usted tenga gusto mientras usted guarda algunos créditos adentro a Mentalcube y a Utopía.
Aki esta + o -
Saludos