Docly Child

5.2.4. OllyDbg: Cracking drivers

Tabla de contenidos:

Debugging con OllyDbg

Para seguir esta práctica de crackear un programa ejecutable con restricciones de uso, es imprescindible haber seguido los puntos anteriores:

En este nuevo caso, se ha diseñado un programa muy simple que comprueba si un CD está en la unidad de disco a través de drivers o controladores de dispositivos. El programa es una simple simulación, pero permite ver como eludir otro tipo de sistema de seguridad. Iniciado el programa, simplemente se da al botón Check for CD para comprobar si efectivamente está el disco. En el caso de no estar, aparecería el mensaje como se muestra en la siguiente pantalla:

Programa de comprobación de unidad de CD

A continuación, se verán dos formas de investigación para eludir este control, por cadena de texto (string) y por drivers:

5.2.4.1. Crackear por cadena de texto

1. Como en las prácticas anteriores, se busca la zona BAD BOY definida por la cadena You lost. Conviene investigar un poco que hay alrededor para identificar cual es el mejor sitio donde hacer el breakpoint (BP). Se puede identificar dos direcciones claramente con saltos (0040138C y 0040139C):

Driver cracking Imagen 1

2. La dirección 0040138C enlaza con la parte de abajo, hacia el 00401485, que es donde empieza la zona GOOD BOY (pulsando ENTER para desplazar rápido):

Driver cracking Imagen 2

3. La dirección 0040139C se dirige arriba y es donde empieza la zona de BAD BOY, es decir, no aporta ninguna pista sobre donde se ubica la zona GOOD BOY.

Driver cracking Imagen 3

4. Con esta información, se realiza un breakpoint en la dirección 0040138C y se inicia el flujo (PLAY F9). Al detenerse, se pulsa el botón Check for CD para ver el comportamiento. Se observa que se detiene y el FLAG se queda en Z = 0.

Driver cracking Imagen 4

5. Para invertir el funcionamiento, simplemente se cambia el valor de la FLAG a 1. Al darle a Check for CD de nuevo ya aparecerá correctamente:

Driver cracking Imagen 5

5.2.4.2. Crackear por drivers

1. En este caso se prueba una nueva funcionalidad de OllyDbg. Se realizará una búsqueda por nombres (Search for Names) tal y como se indica en la pantalla.

Driver cracking Imagen 6

2. Aparecerá un largo listado y se debe hallar donde hay el GetDriveTypeA. Después se selecciona la opción Find references. Como indica la secuencia, se trata de hallar referencias de controladores de dispositivos (drivers). Tras esta acción, OllyDbg nos indicará la dirección y la instrucción que interesa inspeccionar:

Driver cracking Imagen 7

3. Observando atentamente el contenido que hay en esta ubicación, todo el rectángulo corresponde a la parte de búsqueda de la unidad de CD. Se puede saber por el registro donde hay el DAT.

Driver cracking Imagen 8