Autor Tema: Hola a todos  (Leído 1724 veces)

Andreas Naive

  • Recien llegado
  • Mensajes: 49
Hola a todos
« en: 28 de Febrero de 2014, a las 16:11 horas »
Buenas,

Llevo cerca de 11 años colaborando con proyectos de emulación de videojuegos, los últimos de los cuales como colaborador de MAME; vivo en el sur de Madrid, y el primer arcade al que estuve viciado de chaval fue el Super Pang.

Sigo la conversación iniciada en este hilo
http://www.aumap.org/foro/index.php?topic=1220.720

Cita de: Pofo en28 de Febrero de 2014, a las  15:20 horas
Joñe, leía tu blog, de lo ultimo que leí yo era que estabas con temas de gaelco, miraste algo mas en este sentido? (perdon por el offtopic).

Edito: Perdona pero se me viene a la mente otra pregunta, sobre si seria posible saltarse la proteccion del dallas de alguna manera.

No hubo necesidad, Javier Valero, amén del contenido del Dallas para WR1, también proporcionó al equipo sus notas sobre esa protección. Manuel Abadía lo mencionaba en su día aquí:
http://www.manuelabadia.com/blog/PermaLink,guid,c7e7ab2e-fea4-4642-a9b7-e43a063662f1.aspx
En realidad el descifrado ya era funcionalmente completo en ese momento; de lo que se trataba era de simplificar el algoritmo (el código espagueti más espantoso que te puedas imaginar). Me gusta creer que lo hubiésemos sacado antes o después pero, una vez que Javier proporcionó esos datos, ya no había necesidad; Nicola Salmoria simplificó el algoritmo a partir de la información proporcionada.

Respecto al contenido del Dallas para otros juegos, como WR2, la cosa es más espinosa... El DS5002 es un rival difícil (echadle un ojo al datasheet y divertíos); hace años, un señor llamado Markus Kuhn ya lo rompió, en cierto sentido, como parte de la investigación para su tesis doctoral. Su tesis está en línea en algún sitio, pero este artículo es suficiente: https://www.cl.cam.ac.uk/~mgk25/tamper.pdf

El ataque, desde un punto de vista funcional, es ridículamente sencillo; implementarlo en una placa arcade sin cargarte el contenido de la SRAM mientras trasteas con él parece ser lo complicado. Curiosamente, hace poco discutía este mismo tema con Charles MacDonald (http://cgfm2.emuviews.com/) y me venía a decir que la dificultad es física: para implementar el ataque de Kuhn tendríamos que cortar pistas y soldar cables a la vez que nos mantenemos la conexión a la batería. Además, él mencionaba preocupaciones sobre cómo la SRAM se conectaría al circuito de reemplazo de datos (necesario para el ataque) de forma que aún operase a 12 MHz, lo que, según me dice (él sabe mucho más que yo de electrónica, así que lo acepto como válido) obligaría a mantener los cables muy cortos.

Como alternativa, yo proponía que nos olvidásemos por ahora de los juegos y nos concentrásemos en estudiar cómo funciona el cifrado interno del FP5002; si consiguiésemos eso, puede que en un futuro pudíesemos recuperar los datos descifrados a partir de una lectura de la SRAM cifrada (aún así, sigue sin estar claro cómo haríamos tal lectura sin cargarnos la información en el intento).

Para estudiar el cifrado, Charles sugería diseñar una placa en la que conectásemos el FP5002 a una RAM de puerto dual, de forma que no sólo pudiésemos programar el Dallas desde la UART, sino también meter información a la RAM por la puerta trasera usando el puerto dual. Eso debería permitirnos obtener tablas completas de cifrado con las que, con suerte, buen oficio y mucho trabajo, confío en que seríamos capaces de comprender el cifrado de datos y direcciones. Como digo, eso no resuelve el problema de los juegos, pero al menos abriría otra vía de ataque (y, al margen de los juegos, el FP5002 es un dispositivo interesante de por sí).

Puede que un futuro Charles se lance y diseñe tal placa, pero yo no cuento con ello a corto plazo, porque está muy atareado. En este foro veo que hay mucha gente a la que le gusta la electrónica, y sin duda sabéis más que yo sobre diseño y montaje de PCBs, así que si alguien está buscando un proyecto electrónico interesante... :)

Ah, y si a alguno de los que leéis esto se os va alguna placa por el Dallas, no se os ocurra desecharla (sé que sois coleccionistas, así que dudo que alguien vaya a hacerlo de todos modos); puede que una placa suicidada con la que trastear nos acabe siendo útil antes o después, así que pensad en nosotros. :)

Pofo

Re:Hola a todos
« Respuesta #1 en: 28 de Febrero de 2014, a las 16:47 horas »
Se que te interesara mucho mas el conocimiento del cifrado del dallas, pero existe la pisibilidad de dar con la clave de un juego X comparando resultados con llaves al azar?, esto lo valorasteis o simplemente no es posible o carente de interes.(imagino que el algoritmo del dallas es como para cagarse claro está)

Gracias por entrar al foro y explicar estas cosas Andreas.

Andreas Naive

  • Recien llegado
  • Mensajes: 49
Re:Hola a todos
« Respuesta #2 en: 28 de Febrero de 2014, a las 17:22 horas »
No puedes desligar ambos problemas. No serviría de nada tener la clave si no sabemos cuales son los algoritmos de cifrado (que es lo que pretenderíamos investigar con esa placa). Incluso si fueses capaz de leer el contenido cifrado de la SRAM sin cargarte la información y me lo dieses, no sabría qué hacer con él sin haber entendido cómo funciona el cifrado del sistema.

Ten en cuenta que los algoritmos de cifrado del Dallas son transparente al usuario y no están documentados. Sabemos que versiones posteriores de Dallas pin-compatibles con el DS5002 utilizan DES y, por lo poco que dicen los documentos, sospechamos que lo  que tiene el DS5002 podría ser una versión simplificada de DES. Pero cuando alguien va a programar por primera vez el chip, lo que se sube es el contenido en claro; es el DS5002 el que decide qué claves utilizar (generando por hardware los números aleatorios) y lo cifra según sus algoritmos internos (que no conocemos).

El ataque de Kuhn, por contra, no requiere comprender el cifrado, pero debes modificar la placa para poder darle el cambiazo al código cifrado que la SRAM manda a la CPU, para así inyectar tu propio código troyano. Si eres capaz de hacer eso manteniendo con vida la SRAM en el proceso, perfecto. Si no, para cuando quieras inyectar el troyano, ya no quedará nada que leer. :(

Pofo

Re:Hola a todos
« Respuesta #3 en: 28 de Febrero de 2014, a las 18:03 horas »
Entiendo.

El dallas por lo que comentas en funcion del codigo, entiendo que saca datos a una ram para luego cifrar en funcion de un algoritmo.

Si fuese util, te puedo facilitar una placa WR2 con un interface montado a ttl para inyectarla codigo, pero para el analisis como dices tienens que interceptar la RAM.

Me parece alucinante este tipo de proteccion de una placa, parece mas bien un cajero automatico.

Gracias por la explicacion.

Una ultima cuestion y perdona que te de la tabarra, la codificacion del dallas afecta por lo que veo solamente a parte del juego, se planteo alguien la posibilidad de un analisis grafico de cara a analizar el algoritmo? (perdona si es una tonteria esto).

Nuevamente gracias por compartir estas cosas, estare pendiente de este tema.
« última modificación: 28 de Febrero de 2014, a las 18:11 horas por Pofo »

Rockman

  • Con experiencia
  • ***
  • Mensajes: 1280
Re:Hola a todos
« Respuesta #4 en: 28 de Febrero de 2014, a las 20:28 horas »
Bienvenido al foro (otra vez) Andreas!

Te quiero agradecer desde aquí tu generosidad por compartir tu talento (y tiempo) en este hobby. Si has venido recomendado por Haze ya no hace falta decir nada más. Disculpas por desconocer tus avances en temas de criptografía relacionada con Mame y otros sistemas.

Si tu idea es descifrar la protección del Music Ball espero que podamos ayudar en lo que este en nuestra manos. Veo que te gusta jugar con "numeritos". ;)

Respecto al tema de interés de pofo y los Dallas, me he leído por encima el documento del Dr. Kuhn. Muy interesante. Quiero pensar que eres de la "clase I" según IBM. Hehehe. Sería interesante un proyectillo sobre el analisis de datos sobre la placa WR2 de Pofo.

Pues eso, saludos y bienvenido a este pequeño pero gran foro.
RESUMEN: Proyecto de incluir versiones españolas de juegos a Mame (Oficial): http://www.aumap.org/foro/index.php?topic=1270.0

Andreas Naive

  • Recien llegado
  • Mensajes: 49
Re:Hola a todos
« Respuesta #5 en: 28 de Febrero de 2014, a las 23:16 horas »
Cita de: Pofo en28 de Febrero de 2014, a las  18:03 horas
El dallas por lo que comentas en funcion del codigo, entiendo que saca datos a una ram para luego cifrar en funcion de un algoritmo.

El Dallas es básicamente una CPU 8051 con medidas de seguridad incorporadas; cuando subes el código a proteger, el chip selecciona dos claves aleatorias, (una para el cifrado de datos y otra para el de direcciones), y manda cada byte (encriptado con el cifrado de datos) a una posición de la SRAM externa que viene dada por el cifrado de direcciones. Así que el código binario del 8051 lo tienes en la SRAM, cifrado y desordenado, por decirlo así. Si la batería que alimenta la SRAM muere, pierdes el código.

Si fuese util, te puedo facilitar una placa WR2 con un interface montado a ttl para inyectarla codigo, pero para el analisis como dices tienens que interceptar la RAM.
Gracias por el ofrecimiento, aunque sospecho que sin tener la RAM dual, necesitaríamos algún tipo de información de canal lateral (consumo de energía, diferencias de voltaje, emisiones electromagnéticas, tiempos) y, claro, esto complica considerablemente el asunto. :P  Además, el chip genera lecturas aleatorias a la SRAM cuando está ocioso, lo que no hace tan sencillo lo de obtener información de canal lateral.
De momento, guarda a buen recaudo la placa, puede que nos sea útil en algún momento, o que se nos ocurra cómo hacer pruebas de otra forma...

Me parece alucinante este tipo de proteccion de una placa, parece mas bien un cajero automatico.
Sí, ese es un uso típico de estos chips.

Una ultima cuestion y perdona que te de la tabarra, la codificacion del dallas afecta por lo que veo solamente a parte del juego, se planteo alguien la posibilidad de un analisis grafico de cara a analizar el algoritmo? (perdona si es una tonteria esto).
No te preocupes, no molestas. Si no recuerdo mal, son unos 32KiB de código; si estuviese hecho bien, cabría esperar un número grande de funciones ahí, o de fragmentos de código para uso del programa principal. Yo no lo he hecho, pero está claro que para hacerse una idea de qué debe estar haciendo, no puede haber mejor cosa que estudiar el código de WR1.

Si tu idea es descifrar la protección del Music Ball espero que podamos ayudar en lo que este en nuestra manos. Veo que te gusta jugar con "numeritos"

Music Ball está en la lista de tareas, pero tengo cosas con mayor prioridad, así que aún tendrá que esperar un tiempo (a mí o a otro desarrollador). Éste, al contrario que el código del Dallas, ya está volcado, así que en cierto sentido no es tan urgente... Yo soy matemático, así que lo de los numeritos tiene sentido. :)

Respecto al tema de interés de pofo y los Dallas, me he leído por encima el documento del Dr. Kuhn. Muy interesante. Quiero pensar que eres de la "clase I" según IBM. Hehehe. Sería interesante un proyectillo sobre el analisis de datos sobre la placa WR2 de Pofo.
Sí, definitivamente de tipo I, porque lo que es equipamiento... :P El proyecto sería interesante, pero hay que pensar bien cómo hacer tal cosa; tú puedes subir código al circuito, pero para analizar cómo está guardando el código cifrado en la RAM, hay que obtener más información... Por ejemplo, supongamos que el código que subimos es un pequeño bucle infinito de un par de bytes; la CPU estará pidiendo continuamente a la SRAM el contenido de ese par de bytes, mezclado con las posibles lecturas aleatorias que el chip genera para despistar. Aún con esas lecturas adicionales, es seguro que recolectando información con un analizador lógico de las direcciones pedidas a la SRAM durante tiempo suficiente podríamos distinguir las buenas de las malas. Eso nos daría algo de información sobre el cifrado de direcciones; para el cifrado de datos también necesitaríamos ver qué bits la SRAM devuelve a la CPU.
Estooo, Pofo, ¿dispones de equipo adecuado? (Osciloscopios, analizadores lógicos, etc) También, no recuerdo cómo estaba distribuida la placa; ¿sería fácil pinchar las líneas que van de la SRAM al DS5002? ¿Puedes tirarle una foto a la zona?

Pofo

Re:Hola a todos
« Respuesta #6 en: 28 de Febrero de 2014, a las 23:48 horas »
Toda mi herramienta es amateur andreas y orientada a la reparacion de placas.

Me interesa mucho el tema del dallas, pero poco puedo aportar, osea, una placa, montarle un interface para comunicarse con un puerto serie o USB y si acaso dericarte ambos buses para un analizador.

Una cosa que apuntas es interesante y es que sabiendo el codigo del wr1, tal vez se pudiera ver que informacion desencripta y de acuerdo a que variables (una por ejemplo es la rutina de volver a ponerte en pista, de echo es lo que desata la furia parda del dallas jajajajajaj).

Lamento no poder ser de mas ayuda pero es que esto deja el fd1094 en bragas la verdad...

Lo dicho, si necesitas placa, te puedo facilitar una.

Saludos y a ver si alguien da una sorpresa agradable, no ya por el juego, sino por el dallas en si.

Andreas Naive

  • Recien llegado
  • Mensajes: 49
Re:Hola a todos
« Respuesta #7 en: 01 de Marzo de 2014, a las 08:39 horas »
Entiendo; de momento, lo dicho, guárdala bien. Por ahora, Charles sigue siendo mi mejor opción. :)

Y el FD1094 está arriba en mi lista de tareas ahora mismo; una vez que termine otros asuntos no relacionados con esto, tengo que ver si consigo recuperar las claves de alguno de los juegos que aún no la tienen.

Marcos75

  • ****
  • Mensajes: 3042
  • Arcadero de los 80s
Re:Hola a todos
« Respuesta #8 en: 02 de Marzo de 2014, a las 16:10 horas »
Bienvenido al foro. Es un orgullo que gente como tú se pase por aquí, por este pequeño rinconcito, a contarnos cosas. Se agradece de corazón.

Si alguna vez necesitas revisar algo de la Music Ball, solamente tienes que decírmelo. Mi placa es tu placa :)

Un saludo.


Andreas Naive

  • Recien llegado
  • Mensajes: 49
Re:Hola a todos
« Respuesta #9 en: 02 de Marzo de 2014, a las 21:32 horas »
Gracias, Marcos. Lo tendré en cuenta. Antes que eso, como decía, tengo otras cosas de mayor prioridad, así que aún tardaré algunos meses en ponerme con ello, si es que algún otro desarrollador no se encarga antes.

Y gracias a todos por la bienvenida. :)