Actualité Wii
logomodchip

Le code source du firmware CycloWiz dévoilé illégalement !!

par

Le code source du Firmware CycloWiz 3.0.b vient d'être illégalement mis en ligne sur les forums du site Elotrolado.

 

Un nouveau pas dans le hack Wii ?
En effet, le code source du firmware CycloWiz vient donc d'être mis en ligne par le site espagnol Elotrolado (ou plutôt sur ses forums) par Glicer.
Un ami d'un ami lui aurait donc donné ce code, pour le poster sur les forums du site... Pas très ingénieux de sa part. En tout cas, le voici en chaire et en os :

Le code :

"Miguel Tarascó Acuña - Tarako@gmail.com - 2007


CycloWiz Firmware Dumped from f10.exe
---------------------------------------


Zip
| Readme.txt
|
+---asm
| CycloWizLog_V3.0B_D2B_PAL.asm
|
---bin
CycloWizLog_V3.0B_D2B_JAP.bin
CycloWizLog_V3.0B_D2B_PAL.bin
CycloWizLog_V3.0B_D2B_USA.bin
CycloWizLog_V3.0B_DMS-D1A_JAP.bin
CycloWizLog_V3.0B_DMS-D1A_PAL.bin
CycloWizLog_V3.0B_DMS-D1A_USA.bin


+------------------------------------------------------------------------+
| Los firmwares estan extraidos del ejecutable pero no han sido probados |
+------------------------------------------------------------------------+


Si estas aburrido leete esto.

La aplicacion f10.exe the ofrece la posibilidad de reflashear un cyclowiz cuando se ha "roto" por una
mala actualizacion o similares, y como recientemente ha publicado ALEJO3R7 [1], la aplicacion es capaz
de programar un chip sx28 vacio creando un cyclowiz totalmente funcional, por lo que sabiendo esto rapidamente
se te viene a la cabeza "Si esto es posible, el firmware del cyclowiz ha de esta entero en el exe".


El primero intento logico de intentar obtener este firmware es por medio de un sniffer de RS232 pero debido
a que para programar un chip los datos se han de enviar de determinada manera por el puerto paralelo enviando
datos a mayores para habilitar estados internos del pic etc, esta no es la mejor manera de obtenerlo.

Entonces vamos a desensamblar el f10.exe y echar un vistazo, rapidamete puedes obtener los offsets de los
6 diferentes firmwares que supuestamente contiene (o que puede usar) mas un codigo comun que siempre se
manda antes de los firmwares especificos.

Una opcion es copiar y pegar directamente estos bloques del exe a fichero pero puede que el firm este cifrado
de algun modo por lo que es posible que lo que obtengamos no nos valga para nada entonces vuelve a ser una mala
opcion.


Ni sniffer de RS232 (hooks en las fuciones de escritura Out32() de la inpout32.dll tampoco valen) y tampoco
"copy&paste" de los bloques, entonces... Vamos a hookear funciones antes de las llamadas a Out32.dll, donde
cada byte del firm es enviado y justo antes de la escritura al puerto LPT

Se prepara una DLL para inyectarsela al f10.exe y en el DllMain() se hookea la funcion de escritura parcheando
el CALL [2] (WriteProcessMemory() escribiendo en 00401302 esto E8 79FD8A00 para obtener CALL DLLHookM.00CB1080) y en
0x00CB1080 [3] esta nuestra funcion con un fwrite() volcando los valores a fichero.

Ademas hace falta falsear los valores devuelto por la funcion encargada de detectar que la Wii esta conectada al
puerto [4] (algo trivial, si se devuelve un 1 se cree que esta conectado a una DMS y si es un 2 a una D2B)


Con estas cosas ejecutamos f10.exe y le inyectamos la DLL para parchear las llamadas de las funciones, seleccionas
tu firmware favorito y dale a continuar hasta que te diga que el chip esta programado y voila, tendras el firmware
en un fichero :)

Es gracioso ver en el codigo un par de Sleep() para hacer creer que esta haciendo algo cuando en realidad simplemente
esta esperando, al igual que los mensajes de borrado del chip y similares cuando en realidad no hace nada de nada



[1] http://www.elotrolado.net/hilo_-TUTORIAL---quot-nuevo-quot--modchip--wiimagic--por-menos-de-5-euros-_824270)


[2]
.text:004012FF push edx
.text:00401300 push eax
.text:00401301 push esi
.text:00401302 call MuchosWriteLPT // CALL DLLHookM.00CB1080


[3]
//---------------------------------------------------------------------------
// 0x00CB1080
#define Ruta "CycloWizLog.txt"

int __cdecl MiMuchosWriteLPT(int a1,int a2,byte CharDelFirm) {
FILE *f=fopen(Ruta,"a+b");
fwrite(&CharDelFirm,sizeof(byte),1,f);
fclose(f);
return(1);
}


[4]
.text:0040139B cmp al, 0C9h //
.text:0040139D setz cl // XOR EAX,EAX
.text:004013A0 mov eax, ecx // ADD EAX,2
.text:004013A2 pop ecx //
.text:004013A3 retn"

 

Comme le dit donc Miguel Tarascó Acuña, si vous n'avez que ça à faire, lisez les notes.
Les firmwares ont été extraits mais n'ont pas été testés par ce dernier, il est alors probable que des développeurs s'attaquent à ce code pour y apporter quelques modifications et voir la réaction de la team Cyclops. Affaire à suivre de près.

 

Source: Forum d'Elotrolado

Commenter 6 commentaires

ROMAnista
vous parliez il y a peu de temps d' "Un système de protection anti-puce sera-t-il dès à présent mis en place par Nintendo ?" le voilà!! quel con encore celui qui a fait ça!! ça me rappel un episode récent des CF sur psp où sony avait donc utilisé le code pour contrer les CF! mais pour vous rassurer peu de temps aprés tout était revenu en ordre grace a D-A!! donc no soucis!

;)
Signaler Citer
lincruste
Comme si Nintendo n'avait pas déjà dumpé et analysé le firmware de tous les modchips et linkers de la Terre... Ils n'ont pas besoin d'un pauvre reverse-engineer bénévole espagnol pour contrecarrer les pirates. Ce travail ne pourra que servir la communauté des bidouilleurs.
'Z'avaient qu'à ouvrir leur code depuis le début.
Signaler Citer
SireSquall
lincruste a écrit:
Comme si Nintendo n'avait pas déjà dumpé et analysé le firmware de tous les modchips et linkers de la Terre... Ils n'ont pas besoin d'un pauvre reverse-engineer bénévole espagnol pour contrecarrer les pirates. Ce travail ne pourra que servir la communauté des bidouilleurs.
'Z'avaient qu'à ouvrir leur code depuis le début.


Pas si sure que ça.
Signaler Citer
Hiwyx
Pour infos beaucoup de teams de puces basent leur travail sur un code open source qui permet de simuler une puce par l'ordi, le WAB. Donc nintendo, le code, ils l'ont déjà... Cela les aide à combler les failles, c'est vrai, mais c'est pas forcément si évident que ça (la preuve, les hackers ont mis 24h à sortir un patch, donc la protection a été trouvée encore plus rapidement)
Signaler Citer