Blog del grupo de investigación GRITS. Redes de próxima generación para el Internet del futuro, Fog Computing e Internet de las cosas para implementar nuestros diseños personalizados en nubes híbridas ciberseguras, en sistemas de almacenamiento a gran escala y comunicaciones de larga distancia.

28 Enero 2015 | Publicado por Editorial Team GRITS

Aprendiendo a crackear

La Ingeniería Inversa tiene como objetivo obtener información de un producto, con el fin de saber cómo se ha hecho. El hacer ingeniería inversa de un código se conoce como Cracking, acto conocido como eliminar protecciones en el código. El cracking no tiene porqué ser siempre malo, se puede usar también para detectar bugs en los programas o en la lucha contra el malware. En el Máster de Ciberseguridad se ha empezado el módulo de Ingeniería Inversa y en las primeras clases se han dado las bases del cracking. A partir de un código que pedía un PIN, los alumnos han sido capaces de cambiar el ejecutable para hacer que acepte cualquier PIN como correcto. Para empezar la tarea, se debe desensamblar el código principal, del cual se puede intentar deducir que hace el programa y a partir de ahí ver que se hace. En la siguiente imagen se ve el código ensamblador del programa, con el que se llega a la conclusión que se compara el PIN introducido con el guardado y redirige a una parte diferente del código según el resultado de la comparación. assembler_code El objetivo del ejercicio era cambiar la comparación y hacer que siempre sea correcta, para así ir siempre a la parte del código que te permite el acceso. Cada operación tiene asignado un código de operación, por tanto cambiando este código por el de la operación deseada y guardando de nuevo el ejecutable, se consigue acceder siempre, sin importar el PIN introducido. Con el ejercicio propuesto, los alumnos aprenden las bases de la ingeniería inversa, donde a partir del código ensamblador, entendiendo que hace el programa y cambiando instrucciones se puede obtener acceso. A partir de aquí, seguirán ampliando los conocimientos, pudiéndolos aplicar en programas de mayor magnitud.  

Share

Añadir nuevo comentario

CAPTCHA
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.
2 + 13 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.