Karpoff Spanish Tutor

Programa: Tutorial sobre CD Check


 

PROTECCION: CD Check
Dificultad: Principiante
Herramientas: W32DASM, y Editor Hexadecimal
CRACKER: Dek_Oin   FECHA: 31/08/2000

 

 INTRODUCCION

Hola!!!

¿Como les va?. Los vuelvo a encontrar en mi tercer tutorial(que bien contaditos que los tengo, hehe). Como dije, digo, y voy a seguir diciendo, si algo no queda bien explicado o ustedes no entienden algo, mándenme un mail a dek_oin@hotmail.com. Supongo que todos ustedes tienen un juego que no nos permite jugar sin insertar el CD ROM. Los CD's se rayan de tanto ponerlos y sacarlos y además es incómodo hacerlo. En este tutorial aprenderán algunas maneras de crackear el CD-check.


Si un amigo tuyo tiene un juego y tu lo quieres, no necesitas copiar el CD, ¿pero el juego solo anda con el CD, como hago para jugar si no lo tengo?, fácil, puedes crackear el CD check y funcionará sin el CD.  

OK, aquí, las herramientas que necesitas para empezar:

W32Dasm8.9  --->Desensamblador

Hiew, Ultraedit, o Hex Workshop ---> Editores Hexadecimales

(todas estas herramientas y muchas más las pueden encontrar en la página de karpoff)

Pienso que al principio no necesitarán Soft Ice(depurador), tendrán que saber algo del código ASM primero y ahí podrán usar el famoso depurador(aunque el trw2000 también está buenísimo y a mi me parece que es igual que el SoftIce).

Bueno, lo más importante ya que sin esto no podrán hacer nada, necesitarán un juego para crackear. Al principio usen un juego de solo un CD para no complicarnos las cosas.

 

 

 AL ATAKE

CD-Cracking, es la manera de crackear un juego que necesita el CD para iniciarse(porque a los programadores se les ocurrió así, jeje).

Hay muchas maneras de crackearlo pero estas son las más recomendables:

1)En primer lugar, instalen la mayor configuración disponible del juego y si es necesario, copien archivos a su disco duro. Ejecuten el juego sin el CD la unidad y verán el mensaje de “Please insert the CD to play” o “You need the CD to play", etc. 

Bien, se lo memorizan y si sufren el Mal de Alzheimer, amnesia u otra enfermedad que les haga perder la memoria, lo anotan(¿que pesimista no?). 

Vayan al  W32Dasm (supongo que ya tienen la copia de seguridad del ejecutable), abran el exe del juego que quieran crackear, y lo desensamblan. 

Ahora hagan clic en el botón en String References y busca el mensage de error y haz doble clic varias veces para ver cuantas referencias hay sobre él.

Ahora están situados en la rutina de comprobación del CD ROM. 

Pero al principio, repasemos un poco los saltos del código ASM: 

Ensamblador Que significa
jne salta si no es igual 
je salta si es igual 
jmp salta directamente a.....
nop ningún funcionamiento(No OPeration)
ja salta si es superior
jna salta si no superior
jae salta si es superior o igual 
jnae salta si no está sobre o igual
jb salta si está debajo 
jnb salta si no está debajo 
jbe salta si está debajo o igual
jnbe salta si no está debajo o igual 
jg salta si es mayor 
jng salta si no es mayor 
jge salta si es mayor o igual 
jnge salta si no es mayor o igual
jl salta si es menor
jnl salta si no es menor 
jle saltan si es menor o igual 
jnle saltan si no es menor o igual

¡OK! ¿Lo sabes? 

Fantástico!!!, ahora busca una call arriba del mensaje, no siempre están arriba del mensaje de error, pero mayormente si. Si no funciona, busquen la próxima call. 

Vamos a nopearl@s(la @ la pongo por que no sé que es lo que van a nopear, si es una call, un salto, varios saltos, etc.)(909090... ¿entienden?). Abran el Hex Workshop, hagan clic en edit / goto y escriban el offset de lo que deseen parchear SIN LOS CEROS(SON PARA QUE ENTIENDA EL DESENSAMBLADOR) Y SIN LA h(SIGNIFICA QUE ESTÁ EN HEXADECIMAL).

54-FB-A7-9C-01 <--- este número sería 5 bytes(los bytes se cuentan de 2 en 2). Sólo cambien el número en:

90-90-90-90-90 <--- el número nopeado. Cuando una call "llame a esta dirección de memoria, el procesador no hará nada, por lo tanto el juego no podrá mostrar el mensaje de error. Si la línea salta para abajo cuando están escribiendo los 90, que no cunda el pánico, sigan poniendo 90 hasta que lleguen al número de cifras que tiene la call o el salto que quieran parchear(No sé si me explico, Ejemplo: Salto condicional = 74FB. Si la línea baja, sigan escribiendo 90 hasta llegar a 4 que son las cifras que tiene el salto 7-4-F-B). Guarden los cambios en el ejecutable y prueben el juego.

Felicidades!!!! Ya pueden divertirse sin insertar su CD ROM!!!!!

 

2)A veces el juego sabe que la rutina de comprobación del CD fue nopeada. Así que tendremos que hacer que el juego crea que tiene el CD en la unidad. 

Simplemente hagan igual que antes, pero ahora no lo nopeen, tienen que escribir esto: B8010000000<-----para una call de 5 bytes(son diez cifras). 

Pero, ¿qué hice? El juego verifica en el registro eax si el CD está puesto. Si leiste mi tutorial desde cero, recordarás que 1=verdadero y 0=falso, o sea que si es 0 quiere decir que saltará al mensaje de error, si es 1, significa que el CD está puesto. Guarden los cambios. ¿Funciona? No, entonces prueben la siguiente manera.(Felicidades si les funcionó!!!!)

 

3)Simplemente abran el W32Dasm y busquen algún salto como je o jne arriba del mensaje de error. Cuando lo encontraron, cámbienlo por el opuesto.

75     (jne)     a        74 (je),     un 

0F85   (jne)     a        0F84(jne),   un 

74     (je)      a        75(jne)     o un 

OF84   (je)      a        0F85(jne) 

¡Ahora debe funcionar! 

¿No? No se preocupen probemos la última posibilidad(que pienso que es la más común). 

 

4)Abran el W32Dasm, haz clic en el botón de “Exported Functions” y busca una línea(la función utilizada por el 99% de los juegos) “GetDriveTypeA”(también están estas otras:

- GetVolumeInformationA
- GetDriveAttributeA
- FindFirstFileA
- SetCurrentDirectoryA
- GetFileSize
- CreateFileA
- GetDiskFreespaceA
- GetFileAttributeA
- mciSendCommandA & mciSendStringA (usada para chequear el Audio en el CD)

Echen un vistazo arriba del “GetDriveTypeA” (también miren debajo pero lo más común es que las calls y los saltos se encuentren arriba de “GetDriveTypeA”),¿ven una call?, ¿ven una comparación(cmp) con un 0005? (ejemplo) 

00005= CD ROM 

00003= Disco Duro 

Hehe,¿qué haremos?. Sí!!!!. Cambiaremos 00005 a 00003! Simplemente abre el Hex Workshop, edita los bytes cambiando el cmp 00005 a cmp 00003.

Aquí también pueden cambiar una call o un salto por el opuesto, por los famoso 90 o por EB, que en los juegos es muy común.

 

OK éstos son las maneras más recomendadas para crackear CD-checks.

A s t a l a v i s t a


Nota: este tutorial está creado con fines educacionales. Si un amigo te presta un juego y lo crackeas, es para poder observarlo y jugar poco tiempo. El autor no se hace responsable de nada!!!


Agradecimientos

Gracias a Pr@fEsOr X, a karpoff y a todos los crackers que escriben tutoriales!!!

 

Karpoff Spanish Tutor: Pagina dedicada a la divulgacion de informacion en Castellano, sobre Ingenieria Inversa y Programacion. Email "Colabora con tus Proyectos"
www.000webhost.com