Ingeniería Inversa

Una introducción al ROM Hacking y la ingeniería inversa, a través del análisis del funcionamiento interno de un juego de NES.

Si entiendes el inglés, te recomiendo acceder a la sección inglesa de esta página, porque contiene muchísima más información.

VERSIÓN ESPAÑOLA

Leer en el blog

VERSIÓN ORIGINAL INGLESA

Los documentos los escribí originalmente en inglés, y sólo una breve adaptación superficial en español. Mientras que la versión original requiere de ciertos conocimientos para poder entenderla, la versión española es accesible a todos los públicos.

Si entiendes el inglés, y tienes verdadero interés, o bien unos conocimientos informáticos mínimos, te recomiendo la versión original.

Aquí expongo los resultados de mi trabajo en el desensamblado de la ROM, es decir, el análisis de su estructura y funcionamiento, y la obtención parcial del código del juego.

Para aquellos que nunca han oído hablar de ello, desensamblar una ROM, y en general, obtener el codigo fuente de un programa, a partir de la versión ejecutable, es una tarea titánica.

Los frutos de mi investigación están aquí en forma de documentos (bastante extensos) sobre el funcionamiento interno del juego, un editor del mismo juego, y un generador y desencriptador de passwords.

No hay maldad en mis actos. Como aficionado a la programación en ensamblador, todas mis motivaciones son educativas.

UTILIDADES

Sacred Words
Android.
Aplicación para dispositivos Android, totalmente gratuita, para generar y desencriptar passwords.
Android app on Google Play
Sacred Words
Gráfico.
v.0.1
Utilidad gráfica para generar y desencriptar passwords. Para usuarios de ordenador, usar esta versión preferentemente. Funciona en Windows, Linux y Mac. Incluye el código fuente (C++ / wxWidgets).
Sacred Words
Terminal.
v.0.2
Utilidad de línea de comandos para generar y desencriptar passwords. Para usuarios avanzados. Funciona en Windows, Linux y Mac. Incluye el código fuente (C++).
Kid Icarus (NES) Editor.
v.0.2
Editor para Windows que permite cambiar los niveles del juego, asi como, por primera vez, la posicion de los enemigos. Además incluye un visor de gráficos (tiles y macros). Para más información, ver las instrucciones.
Aun no acabado, no permite editar la posición de los items, y plataformas móviles, así como las puertas.