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
|