Dumpean la Ram de Wii

Parece que han conseguido dumpear la RAM de Wii de una manera sencilla, con la ayuda de un lector de tarjetas y una SD para volcar su contenido, obteniendo así ciertas claves de la consola.

http://www.tehskeen.com/forums/showthread.php?p=25431#post25431

Fuente: Tehskeen
I just wrote a quick tool for people to play around with the Wii Ram from GC mode, so you know how the tweezer attack works.

http://rapidshare.com/files/91765563/tweezesd.rar.html

All you need is any SD adapter and an SD Card to dump the ram.

Source, info is included.
So, one might just bridge A11 to each of the BA points and do a dump
Eso que significa ein?
Creo que no es tan fácil como tener el lector y la sd
B0 a B2 son las patillas que permiten seleccionar un banco(zona) de memoria distinto de los 8 disponibles (3bit = 8 combinaciones).
Parece que con un conjunto de pinzas fuerzan la selección del banco de memoria obligando a estar a 0 o 1 esos pines B0 a B2.
Por qué? por lo que parece en modo GC solo tienes acceso a uno de los bancos de modo que si fuerzas por hardware a que el chip se situe en otro banco, estarás leyendo la memoria restante que no te era accesible por software osea la memoria del modo wii.


[edit]
Bien, leyendo un poco más:
Cada banco de memoria del chip hynix es de 4096 filas x512 columnas x32bits
La memoria ARAM de GC es de 16777216bytes=2x4096x512x32bits
lo que hace dos bancos de memoria.
[editado]
La memoria ARAM de GC es de 16777216bytes=1024x512x32bits
lo que hace una cuarta parte de banco de memoria.


si queremos leer el otro banco debemos obligar a la patita de seleccion de banco adecuada a '1' o '0' logico segun interese.
Los posibles bancos a leer son:
B0 B1 B2
0 0 0 -> banco 0
1 0 0 -> banco 1
0 1 0 -> banco 2
1 1 0 -> banco 3
0 0 1 -> banco 4
1 0 1 -> banco 5
0 1 1 -> banco 6
1 1 1 -> banco 7

Así con unas pinzas inyectando tierra (0) o 3,3 (1) voltios en los pines correspondientes. le damos a la wii el cambiazo y leemos en bancos distintos al que nos permite el modo GC.
Muy listos estos chicos.
[Editado]Queda pendiente.... ¿por que no se pueden leer las otras tres cuartas partes de cada banco de memoria?
wiipic escribió:B0 a B2 son las patillas que permiten seleccionar un banco(zona) de memoria distinto de los 8 disponibles (3bit = 8 combinaciones).
Parece que con un conjunto de pinzas fuerzan la selección del banco de memoria obligando a estar a 0 o 1 esos pines B0 a B2.
Por qué? por lo que parece en modo GC solo tienes acceso a uno de los bancos de modo que si fuerzas por hardware a que el chip se situe en otro banco, estarás leyendo la memoria restante que no te era accesible por software osea la memoria del modo wii.


[edit]
Bien, leyendo un poco más:
Cada banco de memoria del chip hynix es de 4096 filas x512 columnas x32bits
La memoria ARAM de GC es de 16777216bytes=1024x512x32bits
lo que hace una cuarta parte de banco de memoria.
si queremos leer el otro banco debemos obligar a la patita de seleccion de banco adecuada a '1' o '0' logico segun interese.
Los posibles bancos a leer son:
B0 B1 B2
0 0 0 -> banco 0
1 0 0 -> banco 1
0 1 0 -> banco 2
1 1 0 -> banco 3
0 0 1 -> banco 4
1 0 1 -> banco 5
0 1 1 -> banco 6
1 1 1 -> banco 7

Así con unas pinzas inyectando tierra (0) o 3,3 (1) voltios en los pines correspondientes. le damos a la wii el cambiazo y leemos en bancos distintos al que nos permite el modo GC.
Muy listos estos chicos.
Queda pendiente.... ¿por que no se pueden leer las otras tres cuartas partes de cada banco de memoria?


Madre mia, que lio me has montado casi me explota la cabeza:

Tienes mal lo de arriba, cada banco es 4096x512x128, lo que hace = 268435456 (lo pone enel datasheet pagina 5 XD)

El tema, es que la GC solo ve alguno de estos bancos, no todos. Por lo que puedes ir señalando bancos y entra en juego el A11, todavía esto haciendo calculos cuando lo saque dire como porque ahora me va explotar la cabeza :S

EDITO: Solucion al problema:

Tenemos 512MegaBits (16MegaPosicionesx32)

16MegaPosiciones / 8 = 2MegaPosiciones, tenemos bancos de 2MegaPosiciones

Un banco de 2MegaPosiciones tiene 2MegaPosiciones * 32 = 64 MegaBits

64MegaBits son 8 MegaBytes, por lo tanto la gamecube ve dos bancos (8MegaBytes * 2 = 16MegaBytes)

Ahora vamos con más numeros...

512 MegaBits = 2^29 (despues de terminar tenemos que tener esto)

Cada banco tiene 2 MegaPosiciones 2^21 (2^20 = un mega)

2 ^ 21 * 2 ^ 5 (32) = 2^26... ya tenemos los 64 megabits esos

ahora tenemos 8 bancos = 2^3

2^26 * 2 ^ 3 = 2^29 (512 MegaBits) lo que es lo mismo que 64 MegaBytes, y listo....

Sigue pendiente saber para que se necesita el A11 ese...
Es que el datasheet me confunde un poco, en la página 5 pone que son 8 bancos de 4096x512x128 bits, pero si uno multiplica eso, no obtiene 512 megabits que tiene el chip. te salen 2 gigabits!!!!

En la misma pagina 5, que supongo que has sacado eso del gráfico pone como titulo:
FUNCTIONAL BLOCK DIAGRAM
8Banks x 2Mbit x 32 I/O Double Data Rate Synchronous DRAM
8 bancos de (4096x512=)2Mbit x 32!!!!
Me ha resultado muy raro la discrepancia, pero viendo que así si salen los 512 megabits me he decantado por esto.
Tambien en el Readme del codigo fuente de la app de dumpeo, dice que es capaz de descargar solo la 4ª parte de cada página que curiosamente coincide con 1024x512x32bits

Que opinas?
wiipic escribió:Es que el datasheet me confunde un poco, en la página 5 pone que son 8 bancos de 4096x512x128 bits, pero si uno multiplica eso, no obtiene 512 megabits que tiene el chip. te salen 2 gigabits!!!!

En la misma pagina 5, que supongo que has sacado eso del gráfico pone como titulo:
FUNCTIONAL BLOCK DIAGRAM
8Banks x 2Mbit x 32 I/O Double Data Rate Synchronous DRAM
8 bancos de (4096x512=)2Mbit x 32!!!!
Me ha resultado muy raro la discrepancia, pero viendo que así si salen los 512 megabits me he decantado por esto.
Tambien en el Readme del codigo fuente de la app de dumpeo, dice que es capaz de descargar solo la 4ª parte de cada página que curiosamente coincide con 1024x512x32bits

Que opinas?


Obvia el 128 ese final, por es para el DDR, al ser GDDR de esa y no se que pollas hace cosas muy raras con los campos y tal no me preguntes... porque ahora mismo tengo la cabeza como un bombo XD

La cuestión es que la Wii tiene 64 megas y el chip es de 64, así que los calculos no funcionan sino los haces como he puesto xD

Lo que dice del cuarto de pagina, es que creo (CREO) lo has entendido mal:



So if you tie banks about (using Tweezers etc) you can access other RAM banks of the SDRAM, and dump 16MB of the 64MB page.


Y descargas 16 de los 64, osease justo, lo que tenemos en la ARAM, date piensa que si es capaz de acceder a 16 megas a la vez (2 bancos), es que estas accediendo a un cuarto total de la memoria, no de la pagina. Si echas un ojo al codigo ves que lee felizmente 16 megas, además el habla todo el rato de bytes y tal así que es imposible que este tratando con los 512 megabits... esos..

De todas formas lo que mosquea muchisimo es lo del A11...

Edito:

8 bancos de (4096x512=)2Mbit x 32!!!!

Exacto, son 8 bancos de 64 MEGABITS, osease 8 MEGABYTES, cada banco... 8*8 = 64 y sale ... el tema volvemos, es el A11... porque la cube sabemos que chupa dos bancos FIJO
Soy nuevo en esto pero a ver si entiendo bien:
Entonces la GC tiene 64Mbits (16Mbytes) y la Wii tiene 512Mbits (64Mbytes)
En modo GC se puede leer 16Mbytes es decir el total de memoria GC, que como bien has señalado ocupa dos bancos.
Esto implica que el hardware de la wii al hacer las transferencias DMA va a tener que seleccionar 2 bancos distintos, que presupongo serán contiguos.
Supongamos que son el banco 0 y 1 seleccionado por B0.
De modo que tenemos que trastear solo con B1 y B2 para acceder al resto de bancos.
Sigue sin quedarme claro para qué el A11
wiipic escribió:Soy nuevo en esto pero a ver si entiendo bien:
Entonces la GC tiene 64Mbits (16Mbytes) y la Wii tiene 512Mbits (64Mbytes)
En modo GC se puede leer 16Mbytes es decir el total de memoria GC, que como bien has señalado ocupa dos bancos.
Esto implica que el hardware de la wii al hacer las transferencias DMA va a tener que seleccionar 2 bancos distintos, que presupongo serán contiguos.
Supongamos que son el banco 0 y 1 seleccionado por B0.
De modo que tenemos que trastear solo con B1 y B2 para acceder al resto de bancos.
Sigue sin quedarme claro para qué el A11


Creo que estas en lo cierto, y digo creo porque no lo sé aún.

La GC tiene dos memorias, su ram normal (24 Megas) y luego la ARAM que solo puede ser accedida desde DMA (16 Megas), para emular esta ultima la wii usa la SDRAM suya, por eso podemos volcar felizmente las cosas cambiando de banco (sino joderiamos el programa en la posicion en la que estuviera en memoria)... que esto me ha tenido un tiempo desconcertado...

Y si, realmente lo que ocurre es que selecciona dos bancos, que son contiguos ? ni idea... El A11 el unico sentido que tiene, es que sospechamos que puede ser porque la GC solo accede a la uppermemory (A11 forzada a VCC) y usa 4 bancos (medio banco de un mega por 4 bancos hacen los 16 megas finales), o que justo al revés y usa la bottonmemory (el mega inferior y 4 bancos igual), entonces tienes que volcar primero toda la superior, y luego toda la inferior...


PEROOO el tio del programa ni lo avisa, ni dice nada, y además vuelca a piñon 16 megas, no 8... así que el A11 no se que sentido tiene señalado :S
Si fuera de ese modo, accediendo a upper memory o lower mem, y cuatro bancos, entonces solo necesitaría cambiar una linea de banco y el a11.

Lo mires por donde lo mires, con lo que hemos deducido, solo necesitamos trastear con dos líneas de control. b2 y b1 o b2 y a11 por ejemplo.....

Siguen sin encajar las piezas del puzzle

[edit]
por cierto que me viene a la cabeza algo interesante, corrijanme si meto la pata:
Si se puede leer la memoria, creo que se podrá también escribir en ella y si se escribe en ella se podría llegar a colocar codigo en la memoria de la wii dando paso a homebrew y otras cosas no?
ddf mañana seguimos a ver si rula o no, que a mi ya me duele la cabeza xDDD.

wiipic escribió:Si se puede leer la memoria, creo que se podrá también escribir en ella y si se escribe en ella se podría llegar a colocar codigo en la memoria de la wii dando paso a homebrew y otras cosas no?

Se puede escribir, pero una vez entras en modo gamecube no se puede salir de ahí, y al reiniciar obviamente se borra.
[Modo Piraton Guason]
¿Y esto servira para cargar isos sin modificar la consola?
[/Modo Piraton Guason]

Perdon por el offtopic pero no podia resistirlo
Si se puede escribir en la RAM, lastima que no se puede salir en modo Gamecube.

Vaya dias de emocionante trabajo llegando a ser adictivo. Saquemos lo saquemos el camino esta siendo muy muy divertido.

Entre el dash y esto podemos decir que avanzamos a toda velocidad
jevilon escribió:[Modo Piraton Guason]
¿Y esto servira para cargar isos sin modificar la consola?
[/Modo Piraton Guason]

Perdon por el offtopic pero no podia resistirlo



¿de verdad hay que leer esto en todo los hilos?

[uzi] [uzi] [uzi] [uzi] [uzi] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso]
ertitoagus escribió:

¿de verdad hay que leer esto en todo los hilos?

[uzi] [uzi] [uzi] [uzi] [uzi] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso] [+furioso]


Hombre que lo puse de coña...
nuvalo escribió:Una duda un poco tonta:

¿se borra porque deja de llegarle corriente o porque la wii lo borra? Lo digo porque de puentear, se puentea la sram a vcc o a una pila y se soluciona el evitar que se borre. Supongo que de todas formas es un poco absurdo, ya que aun se necesita que en algún momento salte a nuestro código, y eso ya lo consiguieron con el hack del zelda sin tanta parafernalia


Te tienes que diseñar una cosa para aparte de escribir, poder refrescar la memoria ... osease un increible trabajo PERO LO PEOR, cuando arrankes la wii se va cargar las zonas que ella crea importantes con su codigo... de todas formas, no veo hasta que punto es viable escribir nada en ella...
Cada vez una Wii está más cerca de mi casa....
Ojoas que ya han dumpeado la ram de la Wii y encima el twilight hack.... [amor]
Y esta noche el resto de las soldaduras...

Imagen

Eh que pasa, no es bonito pero funciona XD
18 respuestas