Hola a tod@s
La Ingeniería Inversa es la acción de analizar un producto en su fase final y adquirir los elementos a partir de los cuales se creó. Hablando de un programa en particular es examinar el código binario o código maquina y obtener el código en lenguaje ensamblador a partir del cual se creó.
Para llevar a cabo esta PoC de Ingeniería Inversa he creado un sencillísimo programa en leguaje C, con tan sólo 14 líneas de código.
Como podéis observar el programa imita el comportamiento de muchos programas en el que te pide que introduzcas una licencia para validar el programa y poder disfrutar de el.
¿Qué es la Ingeniería Inversa?
La Ingeniería Inversa es la acción de analizar un producto en su fase final y adquirir los elementos a partir de los cuales se creó. Hablando de un programa en particular es examinar el código binario o código maquina y obtener el código en lenguaje ensamblador a partir del cual se creó.
Para llevar a cabo esta PoC de Ingeniería Inversa he creado un sencillísimo programa en leguaje C, con tan sólo 14 líneas de código.
Como podéis observar el programa imita el comportamiento de muchos programas en el que te pide que introduzcas una licencia para validar el programa y poder disfrutar de el.
Imagen 1: Invocación del Programa
Comprobado que la aplicación funciona correctamente procedemos a la
invocación del programa.
Si
introducimos bien su serial salta el mensaje “Serial correcto” y sino “Serial
incorrecto”.
Imagen 2: Abrir OllyDbg
A continuación abrir el programa con la aplicación OllyDbg,
yo utilizare esta, pero existen otras como por ejemplo W32dasm. Ahora tenemos que intentar
saltarnos la autenticación, es muy sencillo tenemos que buscar la cadena de fallo,
en mi caso “Serial incorrecto”.
Tenemos que recordar la dirección de memoria que corresponde
a esa instrucción, en mi caso 004012F0.
Imagen 3: Identificación Dirección de Memoria
Una vez recordada la dirección de memoria, toca buscar la
instrucción que salta a esa dirección de memoria que se encuentra en
lenguaje ensamblador. La he identificado en la tercera columna de la aplicación
por su dirección de memoria 004012F0.
Imagen 4: Modificación en la Dirección de Memoria
Ahora para saltar la autenticación de nuestro programa lo
que debemos hacer es eliminar esta instrucción, para ello doble clic sobre la
instrucción y colocar la palabra nop que significa no operación.
Imagen 5: Aplicación Vulnerada
A continuación hacer clic sobre el botón ejecutar y vamos al
CMD que abrirá OllyDbg, vamos a probar si se ha realizado correctamente la
prueba, vemos que si, ahora el programa nos dará como correcto cualquier serial
que introduzcamos.
Obviamente este programa que he creado es muy pero que muy
sencillo, afortunadamente los programas y aplicaciones que muchos de nosotros
utilizamos habitualmente tienen un nivel de seguridad mayor y no se encuentra
los seriales de una forma tan accesible como en este caso.
No seáis malos.