Ingeniería inversa de la CPU Capcom Crypt

Hay algunos títulos arcade antiguos de Capcom (Pang, Cadillacs and Dinosaurs y Block Block) que no se parecen a nada que se haya visto en el mundo del monopolio. Son viejos, sí, pero lo que hace que estos títulos sean excepcionales es la CPU en la que se ejecutan. El cerebro en el hardware de estos juegos es Kabuki, una CPU Z80 que tenía algunas funciones de seguridad adicionales. ¿Por qué Capcom produciría tal cosa? Para combatir a los contrabandistas que copiarían y reproducirían juegos de arcade sin derechos de autor, diríjase al editor original. Es una parte interesante de la historia de las máquinas recreativas, pero también un problema para los guardianes: esta seguridad ha eliminado varias máquinas recreativas mientras conducían. [Eduardo] para la ingeniería inversa y documentar el Kabuki con todo detalle.

Mientras que la CPU Z80 normal tenía un pin específicamente dedicado para actualizar la DRAM, Kabuki renovó este pin para las características de seguridad del chip. Con este pin bajo, el Kabuko era un Z80 estándar. Cuando el pasador se jalaba hacia arriba, servía como entrada de suministro eléctrico para las funciones de seguridad. La seguridad, solo unos pocos bits almacenados en la memoria, estaba respaldada por una batería, y una vez que esta batería se desconectaba, el chip fallaba y mataba el juego.

Enchufe Kabuk en un viejo Amstrad CPC 6128 sin el pasador de seguridad permitido [Eduardo] probar todas las instrucciones del Z80, y con eso no se encontraron sorpresas; el Kabuki es totalmente compatible con todos los demás Z80 del planeta. Determinar cómo funciona Kabuki con ese imperdible especial tirado hacia arriba es una tarea más difícil, pero el equipo de Mame lo ha logrado.

El sistema de seguridad dentro de Kabuki funciona con una serie de intercambios de bits, cambios circulares, XOR, cada traducción es diferente si el byte es código de operación o datos. El proceso de encriptar y decodificar la seguridad en Kabuki se entiende bien, pero [Eduardo] tenía una serie de preguntas sin respuesta. ¿Qué sucede después de que Kabuki pierde energía y desaparece el contenido de la memoria, especialmente las teclas de intercambio de bits, dirección y XOR? ¿Cómo se programaba el Kabuki en fábrica? ¿Es posible reprogramar estas llaves de seguridad, permitiendo que un Kabuko juegue juegos para los que no fue fabricado?

[Eduardo] Se suponía que poder cifrar un código nuevo y válido era el primer paso para ejecutar un código cifrado con claves diferentes. Para probar esta teoría, escribió un simple "Hello World" para el hardware de Capcom que funcionó perfectamente con Mame. Si bien la demostración funcionó perfectamente con Mame, no funcionó cuando se grabó en EPROM y se colocó en el hardware real de Capcom.

Ahí es donde termina esta historia, al menos temporalmente. El nuevo código encriptado es válido, Mame ejecuta el código encriptado, pero hasta que [Eduardo] o alguien más puede descubrir cualquier configuración de afinación adicional dentro del Kabuki, este proyecto está muerto en la pista. [Eduardo] regresará en algún momento de la semana que viene rompiendo el Kabuki nuevamente, tratando de desentrañar los misterios de lo que hace que este procesador funcione.

  • kennedybushnell dice:

    Siempre encuentro tan interesante el alambre de araña. Punto a punto, clips de banana, cable con cinta eléctrica para pin ... Definitivamente el comienzo de un buen truco: D

    • No tengo tiempo dice:

      Son clips de prueba en las encuestas del analizador lógico. Presiona el bloque que dice Tek y unas pinzas diminutas como un dispositivo se extenderá desde el extremo para que pueda elevarlo sobre las patas del IC u otros componentes. No están soldados.

  • Robar dice:

    Algunas de estas viejas placas de arcade hicieron algunas cosas divertidas. Algunos de ellos intentaron obstruir el código cambiando los pines de datos y/o direcciones. Vi uno que era una máquina de estado compleja que no tenía CPU, solo registros SSI en lugar de RAM y montones de ROM. Eso era bastante sombrío en ese momento, pero la memoria RAM era costosa en ese momento.

    El intercambio de direcciones o bases de datos a RAM no funciona siempre que coincidan los anchos de bus. No importa dónde vaya el 1 o el 0, siempre que esté en el mismo lugar cuando la CPU lo busque de nuevo. Lo mismo se puede hacer con la ROM, pero se debe cambiar el código original para que coincida con el cambio de hardware. Había mucho de esto en dispositivos simples en los que ayudaba a encajar algo en una placa de circuito impreso de un solo lado.

    • SavannahLeono dice:

      Descubrí el intercambio de bits en las líneas de datos y direcciones casi hasta mi primera placa compatible con RAM. Creo que lo hice la primera vez que usé mis registros de turnos.

      Siempre me interesa cuando la gente se sorprende cuando eso sucede en un tablero. ¿Por qué lidiar con tableros multilaterales, rutas y puentes solo para mantener el diseño de bits "lógico" para su tarea en lugar de simplemente organizar las cosas de manera más conveniente? No como el "ACCESO ALEATORIO" se preocupa por el orden en el que accedes a cada dirección.

  • emma dice:

    Me encanta lo bien que se comenta el código fuente de MAME Kabuki.

  • cris c dice:

    Esta CPU debería llamarse Seppuku.

    • Genki dice:

      donde esta el boton de me gusta???

      • aifesteves dice:

        ¡Felicidades!

    • nixieguy dice:

      ¡¡¡MUAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA!!!

      + 10e6

  • wulfman dice:

    Esto fue descubierto hace un año. Este es un IC de CPU Z80 con algunos hocus pokus decodificados. entonces obtienes las roms descifradas y colocas un Z80 real en su lugar. Llevo 30 años arreglando viejos juegos de arcade. Esto no es cosa nueva.

    • nerper dice:

      Me gustaría que leyera el artículo con hipervínculo antes de rechazar obviamente el trabajo de otra persona...

      "Esta publicación de blog es la primera de una serie de artículos de Kabuki que analizarán esta CPU de seguridad en detalle y compartirán mi trabajo de investigación y los resultados que me permitieron aplicar ingeniería inversa a esta CPU y revivir algunos juegos muertos de Kabuki sin problemas".

    • leónxl dice:

      Creo que se lo está perdiendo. No está tratando de ejecutar un código modificado en un chip diferente. Quiere revivir y reutilizar el kabuki con código sin modificar.

  • wulfman dice:

    Debe haber estado levantado hace AÑOS.

  • Genki dice:

    Una batería suicida era común en algunas salas de juegos antiguas. No solo con el chip kabuki, sino también con otros diseños de tableros arcade. Capcom y Sega, por ejemplo, los usaron a fines de los años 80 y 90.

    • Eduardo dice:

      Especialmente la electrónica militar.

    • ted dice:

      pero ¿cómo funciona esto, quiero decir, qué debe haber pasado cuando se agotó la batería? Los muchachos te vendieron un aparato muy caro y te dijeron: bueno en 3 años estará muerto...? ¿Cuál fue el negocio aquí? ¿Fue porque cobraron enormes tarifas para arreglarlo entonces? y si la cpu no puede "vivir" sin bateria permanente, quiere decir que se tiene que enviar toda la tarjeta o toda la maquina al fabricante.. Porque si viene un reparado de la empresa a cambiar la bateria Despues es ya muerto... como puede tener una CPU con baterias conectadas a ella... no tienen que tener algun dispositivo portatil especial y un puerto especial para conectar ese dispositivo a un "programa" en el acto una nueva CPU?

      • Robar dice:

        Los fabricantes no intentaron engañar a los operadores de las máquinas. Fueron los contrabandistas de códigos en los que se centraron, por lo que habría adivinado que el manual indicaba claramente todos los problemas con la batería. Con las primeras máquinas, los fabricantes tenían acuerdos de ganancias con los operadores, por lo que no les interesaba dejar que las baterías se agotaran.

        Estas máquinas recibieron una cantidad increíble de uso, por lo que el mantenimiento era un problema constante para los operadores. No sería difícil para los operadores observar el voltaje de la batería durante el mantenimiento de rutina.

        Si una batería (placa) se agota, me imagino que debería haber ido al agente autorizado más cercano o al fabricante. No dejarían que el desarrollador de código entrara al campo. Sin duda estaría bien protegido.

        • ted dice:

          hum oki. gracias por su respuesta. 🙂

  • Nuevo comentario1283 dice:

    Tenía un reproductor de mp3 suicida de finales de los 90,
    Creo que con 250 mb de almacenamiento.
    la energía principal era una batería AAA.

    cuando murió, lo abrí para encontrarlo
    una pequeña batería de reloj que contiene el programa
    (¿Toda la memoria?)
    y cuando eso murió, la unidad estaba muerta como un clavo de puerta.
    la pequeña batería del reloj de 1.5v lee menos de 1v
    y el programa se perdió para siempre.
    BRICKED* antes de los reveses de DFU.

    afortunadamente salvé un dispositivo suicida en el pasado,
    uno más *** COSTO *** y *** Difícil de ENCONTRAR ***

    PD: se aterriza un soldador aterrizado
    PPS: sin suelo con control (minoría barata)
    sale mucho ruido de RF de alto voltaje (baja corriente)
    PPPS: una loza desenterrada que originalmente se desembarcó
    existe un peligro real de muerte

    todo a lo que se refería PPSing
    "Solo juega mientras está encendido"
    ¡Quizás destruir una máquina entera!
    o suicidarte! (ect)
    es mejor desconectar TODOS los cables y luego en paralelo
    batería temporal, deseche la batería usada,
    luego juegue con una batería nueva y una batería sin batería.

    no todos los programas de computadora están disponibles en Internet,
    especialmente el software de trabajo para una máquina de $ 5000 de los años 80

    • Genki dice:

      O utilice un transformador aislado.

    • Yarr dice:

      pantalla principal encendida

    • karkanholo dice:

      Puede soldar cables vivos con soldador de butano.

  • rasz_pl dice:

    Este video salió ayer, justo a tiempo 🙂

  • HowardC dice:

    Sólo dejaré esto aquí:

    http://cps2shock.emu-france.info/

    Las cosas de Cps2 son noticias viejas. Actualmente están trabajando en cosas de cps3.

    • Yarr dice:

      De acuerdo, entonces no se trata de cosas de CPS2, y se trata de un método de seguridad específico utilizado en CPS1 y placas anteriores, completo idiota. Vuelva a publicar en MAMEWorld, o mejor aún, deje de publicar.

  • strider_mt2k dice:

    Tanto para un simple artículo. Es triste. WTF?
    yo sabía nada de esto, así que gracias por llegar tarde a la fiesta.

Alejandro Vargas
Alejandro Vargas

Deja una respuesta

Tu dirección de correo electrónico no será publicada.