Revelan cómo hackean los cartuchos de Game Boy
Las Game Boy de Nintendo (1989) tenían un peculiar sistema de protección para que sólo se pudieran utilizar en ellas cartuchos debidamente licenciados por la compañía. Aun así los desarrolladores independientes investigaron sus entresijos y descubrieron cómo hackear el ingenioso sistema «medio técnico, medio legal» que servía de protección. En este vídeo de StackSmashing se explica en diez minutos esa fascinante aventura de ingeniería inversa y hacking que a día de hoy no pretende violar leyes sino simplemente satisfacer el ansia de conocimiento de los más geeks.
Wow, I just tried a Pokémon myth I wondered about since my childhood: when you surf next to S.S. Anne and use Strength on the truck Mew should appear – and it actually works! pic.twitter.com/YzwjOV7FVx
— stacksmashing / Ghidra Ninja (@ghidraninja) April 1, 2020
Tal y como explican, la protección de las Game Boy estaba en el arranque de los cartuchos; más concretamente en el logotipo. La consola comprobaba que el cartucho contuviera el logotipo de Nintendo: se mostraba deslizándose durante la carga del contenido y luego se comparaba con el mismo logo que también estaba almacenado en la consola. Si eran iguales, arrancaba; si no, se quedaba bloqueado. De este modo si alguien creaba un nuevo juego debería usar el mismísimo «logo Nintendo™», lo cual supondría una violación de una marca registradas, lo que era en sí parte de la protección porque facilitaba perseguirlo legalmente.
El hack consiste en utilizar un cartucho fabricado con una FGPA, un chip programable que no es una simple ROM estática. De este modo se puede mostrar un logo distinto en la pantalla y cuando se realiza el chequeo del logo auténtico (que se resume en 44 bytes) «entregarlo» discretamente para pasar la prueba, algo que es totalmente invisible. Se puede encontrar mucha información sobre esto en el Game Boy Development Wiki.
En las explicaciones hay una descripción completa de lo que hace cada pin de los cartuchos: lectura, escritura, direcciones, datos, reloj… Para la Game Boy existían diversos tipos de cartuchos, pero el truco de la FPGA se puede usar para simular cualquiera de ellos. Al final del vídeo se ve una placa ya diseñada que sirve tanto para poner ROM como para conectar otros circuitos y hacer más cosas interesantes.
I just published a video: Hacking the GameBoy copy protection by building a custom cartridge on an FPGA! https://t.co/rkdfYV820L
— stacksmashing / Ghidra Ninja (@ghidraninja) March 28, 2020