|
Herramientas necesarias:
·
Ollydgb (http://www.ollydbg.de/)
para parchear el programa y correrlo.
·
OllyScript
(desde
aquí)
para correr scripts en Ollydgb.
·
ASPack
2.12 OEP finder script by hacnho/VCT2k4 (desde
aquí)
para encontrar el OEP.
·
Process Explorer for 2K/XP (http://www.sysinternals.com/)
para ver la línea de comando del programa de logueo.
Resumen:
Lo que vamos a hacer es cargar una nueva instancia del programa de logueo de
Deep Freeze y lo modificaremos para que acepte cualquier contraseña como
válida.
Manos a la obra:
1.
Lo primero que vamos a hacer es conseguir unos datos que
necesitaremos más adelante para cargar nuestra instancia del programa de
logueo. Para ello carga Process Explorer. En este programa podemos ver la
lista de todos los procesos que está corriendo la PC, entre ellos se
encuentra el programa de logueo que se llama FrzState.exe o FrzState2k.exe.
Busca este programa en la lista, expandiendo el árbol si es necesario. Una
vez que lo encuentres haz click derecho sobre el nombre del
programa y aparecerá un menú con opciones. Selecciona la opción
'Properties'. Aparecerá una ventana mostrando las propiedades del proceso.

2.
En la ventana de propiedades verás una propiedad llamada
'Command line'. En este cuadro puedes ver a dónde se encuentra el programa,
recuérdalo. Al final del cuadro de texto hay tres números que debes anotar
para usar más tarde. Una vez que los hayas anotado ya puedes cerrar Process
Explorer.

3.
Ahora corre Ollydbg.
|
Nota:
Asegúrate que OllyScript esté instalado correctamente. Debería haber un menú
llamado 'Plugins' donde encontrarás un submenú llamado 'OllyScript'. Si
este menú no aparece en el programa significa que no haz instalado
correctamente el plugin. Para instalarlo ve al menú 'Options' y selecciona
'Appearance'. En el cuadro 'Plugin path' escribe el lugar en donde haz
copiado los archivos de OllyScript, presiona OK y reinicia el programa.
|
En el menú 'File' selecciona 'Open' y busca el archivo de programa de logueo
(recuerda que en Process Explorer decía dónde estaba). En el cuadro
'Arguments' escribe los tres números que habías anotado. Ahora clickea
'Abrir'. Si aparece un mensaje de alerta presiona 'Aceptar', y si luego
aparece un mensaje preguntando si quieres seguir analizando el código
presiona 'No'.

4.
Ya cargamos el programa, el problema es que está protegido
con Aspack 2.12 y no podemos ver el verdadero código. Para resolver esto
vamos a usar OllyScript y el script ASPack 2.12 OEP finder. Ve al menú
'Plugins', luego al submenú 'OllyScript' y selecciona 'Run script'.

5.
Busca el script y ábrelo. El script encontrará el OEP
(original entry point). Si aparece alguna ventana ciérrala.
|
Nota:
Ahora estamos en el OEP. Si eres un usuario con experiencia puedes dumpear
el programa usando OllyDump para analizar el código con algún desamblador.
|

6.
Deep Freeze puede ser configurado para esconder el ícono
de la bandeja de sistema (junto al reloj). Si no puedes ver el ícono de
Deep Freeze sigue los pasos de este Anexo
y luego continúa con el siguiente paso.
7.
Haz click con el botón derecho sobre el código y
aparecerá un menú contextual, selecciona 'Go to' y después 'Expression'
(o usa el atajo Ctrl+G).

8.
En el cuadro de texto escribe el siguiente valor de
acuerdo a la versión de Deep Freeze que tengas instalada y presiona
OK.
|
Versión
|
Valor
|
|
4.20.020.0598
4.20.120.0598
4.20.121.0613
5.20.220.1125
5.30.120.1181 |
40368D
40368D
4034F5
4037E9
4037E9
|

El programa saltará a esa línea de código.
9.
Esta es la línea desde donde se llama a la función que
inspeccionará la contraseña. Vamos a poner un breakpoint acá. Para ello haz
click derecho sobre la línea y en el menú contextual elige 'Breakpoint' y
luego 'Toggle' (o presiona F2).

10.
Ya casi terminamos! Ahora vamos a correr esta nueva
instancia del programa de logueo del Deep Freeze. Para eso presiona F9. Si
todo sale bien ahora verás dos íconos del Deep Freeze en la bandeja de
sistema junto al reloj. Si Deep Freeze estaba configurado para esconderlo
(lee anexo), en vez de dos íconos verás un ícono vacío.
|
Nota:
Si el ícono no aparece es posible que no hayas escrito correctamente los
tres números de argumento o que no hayas abierto el archivo correcto.
|

11.
Ahora activa el programa de logueo haciendo doble click
sobre el ícono mientras presionas la tecla shift. Si hay dos íconos, es importante que
clickees sobre el nuevo ícono y no sobre el viejo. La ventana de logueo
aparecerá para pedirte la contraseña. Escribe cualquier cosa en el cuadro
de contraseña y presiona ENTER. El breakpoint que pusimos antes en Ollydgb
se activará y el programa de logueo quedará congelado.
|
Nota:
Si el breakpoint no se activa es posible que hayas elegido el ícono
incorrecto. Intenta con el otro.
|

12.
En Ollydbg presiona F8 para pasar sobre la llamada a la
función. En la ventana de registros (a la derecha del código) verás que el
registro EAX tiene el valor 00000000. Eso significa que la contraseña es
incorrecta, vamos a cambiar eso. Haz doble click sobre el valor de EAX para
abrir la ventana de edición. En el cuadro de texto 'Hexadecimal' escribe 1
y presiona OK.


13.
Ahora presiona F9 para continuar. Si todo funcionó
correctamente aparecerá la ventana de configuración de Deep Freeze.

Stat
rosa pristina nomine, nomina nuda tenemus.
|