Después de repasar la lista de
BreakPoints más típicos (ver Documentos Genéricos), me decido
a probar con BPX GetDriveTypeA
Así pues, ejecuto el Commandos, y después me voy al SoftIce(Ctrl+D)
para poner el BreakPoint(BPX GetDriveTypeA), y vuelvo al
juego(F5)
Ahora voy a empezar una nueva misión para provocar el
cd-check.
Ok, aparezco en el SoftIce gracias al BreakPoint.
Gracias la orden del SoftIce P RET(F12), se pueden ver
las rutinas por las que va pasando el programa.
Como además tengo el programa desensamblado con el IDA 3.75
Pro, se puede deducir que la la rutina que empieza en :4CE880
viene a ser algo así como Valida_AFPs.
Lo que hace esta rutina es buscar en todas las unidades
los ficheros tbtp.AFP, bbvn.AFP, etao.AFP y btbw.AFP, y
comprobar el byte que contienen.
Finalmente, devuelve EAX=1 si la verificación está OK, y
EAX=0 si es errónea.
Como parece que los bytes leídos sólo se usan en ese momento
para comprobarlos, lo único que importa de la rutina es
que devuelva EAX=1.
Para ello, en :4CE880 pongo :
:4CE880 xor eax,eax
:4CE882 inc eax
:4CE883 jmp 4ce9b0
Para dejar los cambios en el fichero exe, el IDA me indica
el offset.
Así que con un editor hexadecimal(UltraEdit32 p.ej.), en
la posición CDC80, cambio
83 EC 0C A1 50 5F 60 00, por 33 C0 40 E9 28 01 00 00
|
Un lo ke hace normalmente es modificar el fichero .EXE,
ke es el ke contiene las instrucciones en código máquina
(o sea, toda una serie de bytes, ke son los ke hacen funcionar
el programa).
Si intentas editar un fichero ejecutable(.EXE) con el
Word, el Write, el Notepad,o similar, no podrás verlo bién.
Para ello necesitas lo ke se llama un editor hexadecimal,
ke es un programa ke te permite editar los bytes de cualquier
fichero. Hay muchos editores hexa, algunos gratuitos y otros
shareware, como por ejemplo el UltraEdit32, el Hview, el
HexWorkShop, .....
Al editar un fichero .EXE con uno de estos editores, verás
muchas parejas de números ( y letras de A hasta F), cada
una de ellas es lo ke se llama un byte.
Para crackear un programa, deberás saber cuales son los
bytes ke tienes ke cambiar. En este caso, lo sabes ;-) :
>>Para dejar los cambios en el fichero
exe, el IDA me indica el offset.
>>Así que con un editor hexadecimal(UltraEdit32 p.ej.),
en la posición CDC80, cambio
>>83 EC 0C A1 50 5F 60 00, por 33 C0 40 E9 28 01 00 00
Así pues, en este caso deberás ir a la posición CDC80.
(es un número en formato hexadecimal).
Todos los editores tienen una opción para ir a una posición
determinada.
Podrás comprobar ke realmente estás en la posición correcta,
verificando que son los bytes a cambiar : 83 EC 0C A1 50
5F 60 00
Si has encontrado estos bytes, deberás cambiarlos por 33
C0 40 E9 28 01 00 00
Entonces salvas los cambios (mejor si te has hecho una
copia de seguridad del fichero, por si acaso....;-), y ya
tienes el programa crackeado. ;-)
Espero ke te sirva la explicación. Lo único ke necesitas,
es un editor hexadecimal.
Si todavía no tienes ninguno, te recomiendo el UltraEdit32,
que puedes encontrar en bastantes sitios, por ejemplo en
su web de http://www.ultraedit.com
|