--

ESTUDIO COLECTIVO DE DESPROTECCIONES
WKT Tutorialz Site
WKT
progrAmA Commandos Behind the Enemy Lines W95
DEsCripCi≤n Juego de Estrategia/Acci≤n
tipo Programa Comercial
protECCi≤n Cd-Check. Obliga a poner el Cd para jugar.
DiFiCultAD 1) Principiante, 2) Amateur, 3) Aficionado, 4) Profesional, 5) Especialista
hErrAmiEntAs SoftIce 3.22, IDA Pro 3.75, Editor Hexadecimal
CrACkEr Mr.Brown
FEChA 15 de Agosto de 1998

Introducci≤n
El programa obliga a tener que poner el CdRom para jugar.
Asφ que vamos a eliminar el Cd-Check.

Al Atake
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

Nota aclaratoria para los ke no sepan usar un editor hexadecimal

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



[ Entrada | Documentoz GenΘricoz | WKT TEAM Main Site ]
[ Todo el ECD | x Tipo de Protecci≤n | x Fecha de Publicaci≤n | x orden AlfabΘtico ]