› Foros › Nintendo 3DS › Scene
Lotush escribió:Plata escribió:Virman escribió:Mi 3DS está en firmware 6.x, no me importaría probar algo con ella. Con algo me refiero a probar alguna NAND o experimentos varios. Podéis pasarme links por privado de alguna NAND subida a algún FTP.
Un saludo!
Pasame tu skype o lo que sea, quizá dentro de 4 o 5 días podemos probar a hacerle un downgrade a tu consola, nos viene bien gente para testear que todo funciona, la verdad...
Un saludo!
Llevad cuidado a ver si vais a brickear la 3DS , que según he leído lo habéis dicho así como si nada.
Lotush escribió:Por esa regla de tres, ninguna consola es in brickeable siempre y cuando tengas la nand y sueldes xD
Me refería a que no es un proceso sencillo del que cualquier persona se ponga en 5 minutos y lo arregle.
Sólo lo comente a modo informativo antes de liarla, pero si controláis del tema adelante ^_^
Lina escribió:Al final donde se va a hacer la reunión ?? skype, irc, el bar de la esquina xD
PedroDJavier escribió:Lina escribió:Al final donde se va a hacer la reunión ?? skype, irc, el bar de la esquina xD
Yo preferia en el bar xD pero parece ser en skype yo hasta mañana no puedo entrar y mi movil es una basura. Estoy esperando haber si la idea de Plata funciona
ernilos escribió:PedroDJavier escribió:Lina escribió:Al final donde se va a hacer la reunión ?? skype, irc, el bar de la esquina xD
Yo preferia en el bar xD pero parece ser en skype yo hasta mañana no puedo entrar y mi movil es una basura. Estoy esperando haber si la idea de Plata funciona
Nada, la dichosa consola lo sube a TWL(particion de la DSi, que usa una key diferente), además de tener varios checks para saber si el arhivo esta corrupto o no. Lo mejor sería Skype... Añadidme y hacemos el grupo >.>
Click aquí para añadirte al grupo
[url]skype:?chat&blob=5ZAJb3d6RH0igrYqVvQccuYdFA_jnapclXYpbMnjPP_G0WNi9dKvFr9qND4[/url]
ernilos escribió:Añademe a mi mejor si no te apañas mucho xd
(skype: ernilos)
Que yo sepa no funciono, aunque ahora esta off y no puedo preguntarle sobre sus avanzos
Plata escribió:Para la gente que vaya siguiendo este hilo:
Parece ser que NDS tiene varias keys grabadas en HW, aunque realmente se reducen a dos: Con unas firma las particiones TWL y con otras las CTR. Mi misión es simple: Tengo que comprobar si sube las fotos a una partición TWL o CTR. ¿Cómo? Fácil. La partición TWL para fotos tiene un tamaño de aproximadamente 4MB, simplemente trucaré el header de las imágenes y haré dos imágenes de 3MB aproximadamente. Si me deja subir las dos imágenes a la memoria interna, mi idea es viable, si me dice que no cabe, lo guarda en TWL y no es viable porque va cifrado con claves diferentes (podría descifrar solo la parte de la NAND donde se almacenan los datos de DSi, pero que de poco o nada iba a servir).
Esta semana acabaré la uni, así que ya iré comentando avances.
Por cierto, algo IMPORTANTE: Ando buscando una 3ds de las primeras que este destrozadísima, para hacer pruebas a dumpear nand y demás, así que por favor, si alguien sabe donde puedo conseguir una en un estado lamentable (para que no me cueste a ser posible más de 30€-50€, hacédmelo saber
Un saludo!
Virman escribió:Plata escribió:Para la gente que vaya siguiendo este hilo:
Parece ser que NDS tiene varias keys grabadas en HW, aunque realmente se reducen a dos: Con unas firma las particiones TWL y con otras las CTR. Mi misión es simple: Tengo que comprobar si sube las fotos a una partición TWL o CTR. ¿Cómo? Fácil. La partición TWL para fotos tiene un tamaño de aproximadamente 4MB, simplemente trucaré el header de las imágenes y haré dos imágenes de 3MB aproximadamente. Si me deja subir las dos imágenes a la memoria interna, mi idea es viable, si me dice que no cabe, lo guarda en TWL y no es viable porque va cifrado con claves diferentes (podría descifrar solo la parte de la NAND donde se almacenan los datos de DSi, pero que de poco o nada iba a servir).
Esta semana acabaré la uni, así que ya iré comentando avances.
Por cierto, algo IMPORTANTE: Ando buscando una 3ds de las primeras que este destrozadísima, para hacer pruebas a dumpear nand y demás, así que por favor, si alguien sabe donde puedo conseguir una en un estado lamentable (para que no me cueste a ser posible más de 30€-50€, hacédmelo saber
Un saludo!
Yo en el centro game de Torrejón de Ardoz vi algunas 3ds de segunda mano por 39€. Prueba a acercarte a alguno haber si tienes suerte.
Plata escribió:Para la gente que vaya siguiendo este hilo:
Parece ser que NDS tiene varias keys grabadas en HW, aunque realmente se reducen a dos: Con unas firma las particiones TWL y con otras las CTR. Mi misión es simple: Tengo que comprobar si sube las fotos a una partición TWL o CTR. ¿Cómo? Fácil. La partición TWL para fotos tiene un tamaño de aproximadamente 4MB, simplemente trucaré el header de las imágenes y haré dos imágenes de 3MB aproximadamente. Si me deja subir las dos imágenes a la memoria interna, mi idea es viable, si me dice que no cabe, lo guarda en TWL y no es viable porque va cifrado con claves diferentes (podría descifrar solo la parte de la NAND donde se almacenan los datos de DSi, pero que de poco o nada iba a servir).
Esta semana acabaré la uni, así que ya iré comentando avances.
Por cierto, algo IMPORTANTE: Ando buscando una 3ds de las primeras que este destrozadísima, para hacer pruebas a dumpear nand y demás, así que por favor, si alguien sabe donde puedo conseguir una en un estado lamentable (para que no me cueste a ser posible más de 30€-50€, hacédmelo saber
Un saludo!
-Rdavid- escribió:Hola, justamente yo estoy haciendo lo mismo que tu, me impresiona que hayas logrado escribir en la NVRAM, yo pensaba en aplicar ingeneria inversa al codigo del instalador del gateway para ver como diablos lo hacian, conosco bien sobre ROP y podría ayudarte en eso, mandame un mp para cualquier cosa.
Xebastron escribió:No necesitareis un Administrador de sistemas y técnico de hardware..... es que quiero ayudar y no se como hacerlo, tengo conocimientos básicos en programación.... jooooo quiero echaros una "zarpa"
Saludos
ernilos escribió:-Rdavid- escribió:Hola, justamente yo estoy haciendo lo mismo que tu, me impresiona que hayas logrado escribir en la NVRAM, yo pensaba en aplicar ingeneria inversa al codigo del instalador del gateway para ver como diablos lo hacian, conosco bien sobre ROP y podría ayudarte en eso, mandame un mp para cualquier cosa.
Yo tras varios intentos lo logre (jodido SPI...), si me ayudas en los ROP te puedo pasar la source de mi installer. Si puedes añademe a skype para hablar mejor
@RdIP Te recomiendo leer 3dbrew.org esta todo bien documentado
@juanlu16 cuando llege a casa te agregaré
Plata escribió:¡Buenas! Hoy por fin he podido acceder a mi 3DS (la tenía mi novia, que se la suele llevar porque juega más que yo), y he conseguido demostrar que mi método es viable, o que al menos puedo intentar dos tipos de ataque a través de él. No quiero hablar mucho por aquí, porque no sé hasta que punto es recomendable dejar a la vista del público cosas exploiteables de la consola, no vaya a ser que lo tapen antes de usarlo , pero bueno. Una vez llegados al punto en el que estoy, puedo atacar de dos formas:
- Una sería engañar a la consola para que ella misma me encriptara y desencriptara lo que yo quisiera.
-El segundo, (tengo que agradecer mucho la ayuda de jlca******1990 en skype, intuyo que en eol será juanlu16, pero no estoy seguro, por hablarme a cerca de este segundo método, porque 3dbrew no esta ni de lejos documentada como debería, y esto no lo hubiese sabido tan fácil sin lo que hablé con el ayer por la noche), como iba diciendo, el segundo, permitiría sacar la keystream.
Dicho en cristiano, dejo una explicación:
El cifrado se compone de dos partes: La key de la consola + un counter (o vector de inicialización). Básicamente si la clave de la consola es "Pedro", se van firmando distintos bloques (seguramente del tamaño máximo por archivo que permite el sistema de archivos que usa la partición, que tengo que ver si es fat12 o fat16 o qué, y si estoy en lo cierto en el tamaño del bloque), bueno, pues si la clave es "Pedro", imaginaros que el counter es "00000001", la keystream seria la unión de ambas, ergo firmaría con la clave "Pedro0000001" (no sé si la suma de la key y del counter lo hace por concatenación, si hace una suma binaria (un AND de toda la puta vida) o cómo lo hace, esto es solo un ejemplo para que sea entendible para quien siga el hilo).
Para el siguiente bloque, añadiría algo al contador, por lo que podria ser el counter "00000002", o lo mismo "00002000" (es decir, no sabemos cuanto sube el contador o como cambia, hay que investigarlo).
¿Lo bueno? La gente de gbatemp y esos foros donde andan indagando también, creen que el vector inicialización (en cristiano, el counter) nunca cambia. Por otro lado, tras hablar con el user mencionado más arriba al que le sigo agradeciendo la conversación, me dió una explicación teórica de porqué el cree que SI que cambia, aunque parece ser que cambia rara vez (no sabemos si aleatoriamente o qué, como ya digo, esto hay que investigarlo mucho), la cosa es que coincido en que podría tener razón.
En otras palabras: Podemos obtener la keystream (es decir, la key + el counter), y con ello si no toda, podriamos desencriptar la mayoría de la NAND, ya que casi nunca varía el counter (en teoria). Aun así tengo pensado estudiar de qué forma varía, etc... De tal forma que si sabemos cuanto vale el counter en cada momento, y de qué forma varía, tendríamos toda la info necesaria para toquetear todo el sistema a nuestro gusto. El cómo obtenerla prefiero no decirlo aquí, como ya dije anteriormente, no sé quien podría leerme. Aun así obviamente la gente que estamos a skype lo tiene todo escrito en el chat xDDD
Se intentarán ambos, a ver que sale, pero el segundo método me empieza a llamar más la atención (que realmente los dos en su base funcionan igual, pero aprovecharía el fallo de otra manera).
Actualmente no creo que sirva esto de mucho a la gente, pero una vez obtenido un método para desencriptar y encriptar fácil la nand, habría mucho ganado (y se podría estudiar bien como funciona el sistema).
Un saludo!
PedroDJavier escribió:Jajaja. La idea parece razonable en cuanto entre al skype me miro todos los mensajes. Oye plata, tu hicistes en el foro de nds unos tutos de programacion creo recordar ?
Estas confirmando que el primer metodo que nos comentastes ya hace unos dias funciona ?
Plata escribió:¡Buenas! Hoy por fin he podido acceder a mi 3DS (la tenía mi novia, que se la suele llevar porque juega más que yo), y he conseguido demostrar que mi método es viable, o que al menos puedo intentar dos tipos de ataque a través de él. No quiero hablar mucho por aquí, porque no sé hasta que punto es recomendable dejar a la vista del público cosas exploiteables de la consola, no vaya a ser que lo tapen antes de usarlo , pero bueno. Una vez llegados al punto en el que estoy, puedo atacar de dos formas:
- Una sería engañar a la consola para que ella misma me encriptara y desencriptara lo que yo quisiera.
-El segundo, (tengo que agradecer mucho la ayuda de jlca******1990 en skype, intuyo que en eol será juanlu16, pero no estoy seguro, por hablarme a cerca de este segundo método, porque 3dbrew no esta ni de lejos documentada como debería, y esto no lo hubiese sabido tan fácil sin lo que hablé con el ayer por la noche), como iba diciendo, el segundo, permitiría sacar la keystream.
Dicho en cristiano, dejo una explicación:
El cifrado se compone de dos partes: La key de la consola + un counter (o vector de inicialización). Básicamente si la clave de la consola es "Pedro", se van firmando distintos bloques (seguramente del tamaño máximo por archivo que permite el sistema de archivos que usa la partición, que tengo que ver si es fat12 o fat16 o qué, y si estoy en lo cierto en el tamaño del bloque), bueno, pues si la clave es "Pedro", imaginaros que el counter es "00000001", la keystream seria la unión de ambas, ergo firmaría con la clave "Pedro0000001" (no sé si la suma de la key y del counter lo hace por concatenación, si hace una suma binaria (un AND de toda la puta vida) o cómo lo hace, esto es solo un ejemplo para que sea entendible para quien siga el hilo).
Para el siguiente bloque, añadiría algo al contador, por lo que podria ser el counter "00000002", o lo mismo "00002000" (es decir, no sabemos cuanto sube el contador o como cambia, hay que investigarlo).
¿Lo bueno? La gente de gbatemp y esos foros donde andan indagando también, creen que el vector inicialización (en cristiano, el counter) nunca cambia. Por otro lado, tras hablar con el user mencionado más arriba al que le sigo agradeciendo la conversación, me dió una explicación teórica de porqué el cree que SI que cambia, aunque parece ser que cambia rara vez (no sabemos si aleatoriamente o qué, como ya digo, esto hay que investigarlo mucho), la cosa es que coincido en que podría tener razón.
En otras palabras: Podemos obtener la keystream (es decir, la key + el counter), y con ello si no toda, podriamos desencriptar la mayoría de la NAND, ya que casi nunca varía el counter (en teoria). Aun así tengo pensado estudiar de qué forma varía, etc... De tal forma que si sabemos cuanto vale el counter en cada momento, y de qué forma varía, tendríamos toda la info necesaria para toquetear todo el sistema a nuestro gusto. El cómo obtenerla prefiero no decirlo aquí, como ya dije anteriormente, no sé quien podría leerme. Aun así obviamente la gente que estamos a skype lo tiene todo escrito en el chat xDDD
Se intentarán ambos, a ver que sale, pero el segundo método me empieza a llamar más la atención (que realmente los dos en su base funcionan igual, pero aprovecharía el fallo de otra manera).
Actualmente no creo que sirva esto de mucho a la gente, pero una vez obtenido un método para desencriptar y encriptar fácil la nand, habría mucho ganado (y se podría estudiar bien como funciona el sistema).
Un saludo!
¿Que es una operación XOR?
Una operación XOR básicamente devuelve 1 en caso de que los bits sean distintos.
Ejemplo:
1001 XOR 0010 = 1011
Cosas interesantes:
- El XOR de cualquier cosa con 1111 devuelve la negación
- El XOR de cualquier cosa con 0000 devuelve esa misma cosa.
¿Cómo descifran un savegame?
El cifrado AES funciona por bloques (no os asusteis, un bloque es un conjunto de unos y ceros).
Buscan el bloque más común y que que no sea completamente "de unos" y suponen que ese bloque contenía solo ceros.
Por lo que dije anteriormente, al haber hecho el XOR con un bloque que solo tiene ceros, lo que conseguimos realmente es el keystream que comento Plata.
Finalmente solo deben hacer el XOR del keystream que encontramos antes con todos los bloques y tendremos nuestro savegame
http://pastebin.com/raw.php?i=hFASMtyW