Hace algunos meses hablábamos en SbD sobre como probar unejemplo sencillo de hacking de videojuegos. Si recordamos la publicación, se trataba de usar una herramienta para encontrar y modificar valores en memoria que cambian el comportamiento del juego según lo que deseemos. Para ello utilizábamos la herramienta Cheat Engine.
Ésto no es nada nuevo, hace bastantes años existían dispositivos capaces de hacer lo mismo en consolas clásicas. Por aquel entonces no había tantas protecciones anti-cheating, pero por otro lado la razón de existencia de los cheaters era menor ya que los juegos eran locales, no había multijugador remoto, además de que la capacidad de compartir información sobre el funcionamiento técnico era mucho más reducida y los escenarios más cerrados, por lo que el desarrollo y uso de cheats no estaba extendido de forma masiva.
Uno de estos dispositivos clásicos es GameShark, una herramienta que tuvo su boom con la Nintendo 64, y que permitía hacer algo muy parecido a lo que hace Cheat Engine. No es la única, ni para la única consola, pero puede que sea una de las más conocidas.
GameShark en versión Nintendo 64 es un cartucho que se inserta en la consola, para luego insertar el cartucho del videojuego en la parte superior. De esta forma, el dispositivo se interpone entre la consola y el videojuego.
GameShark Pro para N64
Para modificar el comportamiento de los videojuegos, GameShark modifica valores en direcciones de memoria. El propio dispositivo tiene una lista de cheats preconfigurados para bastantes títulos. También podemos crear nuestros propios cheats sabiendo una dirección de memoria y cambiando el valor por uno válido, por ejemplo:
En Star Wars: Rogue Squadron debemos completar una serie de misiones, y según nuestra calificación pueden compensarnos con una medalla (entre oro, plata y bronce). Sabiendo las direcciones de memoria en las que se aloja el valor que define la medalla en cada misión podemos modificarlas y colgarnos las medallas que queramos:
[Dirección] [Valor] [Misión]
88130B1C 00XX Ambush at Mos Eisley
88130B1D 00XX Rendezvou on Bankhesh
88130B1E 00XX The Search For The Noonnah
88130B1F 00XX Defection At Corellia
88130B20 00XX Liberation V
88130B21 00XX The Jade Moon
88130B22 00XX Imperial Construction Yard
88130B23 00XX Assault on Kile II
88130B24 00XX Rescue on Kessel
88130B25 00XX Prisons on Kessel
88130B26 00XX Battle Above Taloraan
88130B27 00XX Escape From Fest
88130B28 00XX Blockade on Chandrila
88130B29 00XX Raid on Sullust
88130B2A 00XX Moff Seerdon's Revenge
88130B2B 00XX The Battle of Calamari
88130B2C 00XX Beggar's Canyon
88130B2D 00XX The Death Star Trench Run
88130B2E 00XX Battle of Hoth
Replace XX with:
00 None
01 Bronze Medal
02 Silver Medal
03 Gold Medal
Por supuesto, también tenemos los cheats clásicos para modificarnos atributos como escudo, vida, etc. Todo se basa en encontrar la dirección de memoria que guarda el valor.
[Dirección] [Valor] [Efecto]
81137E7C 4316 Extra Shields
80130B4D 007E All Levels / Ships
80130B10 0008 Infinite Lives
8010CA32 0008 Infinite Secondary Weapons
80130B87 0063 99 Bonus Collected
80130B85 0063 99 Kills
80130B86 0063 99 Saves
81137E7C 4136 1-Hit Death
81137E7C 4316 Infinite Health
Si ésto para la mayoría de nosotros ya era "lo más" en aquella época, con GameShark Pro llegó algo mejor.
La edición Pro nos permitía hacer búsquedas de valores en la memoria y localizar sus direcciones. Con esta característica podríamos desarrollar nuestros propios cheats sin ayuda de ninguna lista de direcciones. El proceso era localizar un valor (por ejemplo, munición), buscarlo en memoria, modificar el valor (gastando algo de munición) y hacer una nueva búsqueda sobre la anterior. De esta forma encontraríamos la dirección de memoria que guarda el valor y podríamos alterarlo a nuestro gusto.
También nos permitía buscar valores que crecen o decrecen, para encontrar direcciones de memoria que no son un valor determinado visible en el juego, como por ejemplo una barra de vida.
Hay herramientas GameShark para la mayoría de consolas punteras de aquella época, para algunas más modernas, y aún siguen saliendo dispositivos que permiten tweaks para las más nuevas bajo el mismo nombre, aunque ya no tienen la potencia de antes.
- Referencias:
Fuente: Securitybydefault
Me ha gustado la publicación que habeis hecho, yo soy iniciado en esto de los codigos en direcciones de memoria, he dado un cuatrimestre intensivo de informatica basica acerca de codificacion, pero cuando empiezo a examinar todos los bloques de memoria de un juego de la NDS , como Pokemon, por ejemplo, me siento incapaz de averiguar qué hay en cada direccion. He conseguido modificar el valor del dinero que tengo, la cantidad de superball, ultraball, pero cuando veo otros trucos de otra gente, no sé como interpretarlos. A donde quiero llegar: me gustaría que escribiérais un post acerca de como interpretar codigos de este estilo, aportando yo los codigos que me gustaria averiguar y vosotros tratando de explicar como funcionan.
Un saludo desde Murcia.