jueves, 13 de noviembre de 2014

Terminando una carrera a lo 'romhacking'

Estoy ya en la recta final de mi grado en Telecomunicaciones y hace un par de meses me tocó elegir el Trabajo Fin de Grado (antes llamado Proyecto Final de Carrera). La gente de mi especialidad suele elegir temas relaciones con malware, rendimiento en videojugos, ataques a redes, ... Son interesantes, aunque era todo un sueño poder hacerlo sobre algo más relacionado con el romhacking.

Hace un año, en la asignatura Seguridad en Redes de Comunicaciones hice un trabajo opcional analizando diferentes algoritmos de seguridad en videojuegos. Fue mi primer trabajo sobre romhacking para la universidad, y como un sueño cumplido. Las transparencias están disponibles por aquí. Ese mismo profesor me propuso realizar el trabajo final sobre la misma temática pero profundizando más. Y así nace AiroRom.



Objetivos

Buscar y analizar mecanismos de protección de datos en videojuegos. Los tipos de mecanismos serán:
  • Comunicaciones con el servidor de Nintendo a la hora de jugar multijugador o descargar contenidos DLC. Me enfocaré en estudiar el protocolo, descubrir fallos de seguridad y mejorar la implementación libre que hay en desarrollo.
  • Protección de datos de usuario en los videojuegos, es decir a cómo se almacena su información (partidas) y cómo estas están protegidas ante cambios externos.
  • Cifrado en el videojuego para evitar que se pueda extraer y distribuir de forma ilegal. Veré los mecanismos de protección tanto en el hardware de la consola como en el propio archivo. Por ejemplo, el significado del logo de Nintendo en la cabecera del juego.
  • Cifrado en archivos para evitar que sean extraídos y modificados. Realmente esta es la parte más interesante pues estudiaré videojuegos que se han intentado traducir y que por este problema no se han podido.

Para llevarlo a cabo he creado la planificación que se puede consultar aquí. Como se puede ver, tengo pensado desarrollar como mínimo dos programas:
  • NitroDebugger: un depurador de código que se conectará al emulador DeSmuME para poder ver, analizar y modificar el código de los videojugos. Este proyecto nace por el interés de apuntarme a los concursos de software libre y porque realmente no existe ninguna herramienta gratuita y enfocada al romhacking. Más información en la entrada anterior: ¡Nace NitroDebugger!
  • New Mini Tinke: programa basado en mi biblioteca para videojuegos libgame que permitirá reconocer formatos de archivos privativos y analizarlos mediante un visor hexadecimal. Sigue la filosofía de Tinke pero en una versión renovada y con las mínimas funcionalidades.

Todo el desarrollo será abierto y libre. El código se podrá encontrar en este repositorio de Github, y la documentación que vaya redactando estará en el repositorio o en su wiki aquí.

No hay comentarios:

Publicar un comentario