· Sugerencias para el principiante - qué debería buscar? ·

© 1997 por Cruehead / MiB

Traducción de ^[G]oLe[E]^


Hola de nuevo wannabe-cracker! Estás sentado allí, pensando "Yeah - Ahora pienso que sé que significan todas esas palabras extrañas como CMP, JE, Softice y Wdasm, pero todavía no sé que estoy buscando?". Si tu respuesta es sí, entonces lee, porque aquí describiré algunas cosas comunes para buscar cuando estas crackeando. Si tu respuesta es no, no gastes tu tiempo con esto - sal y comienza a crackear!


Memory Echo - Una forma común de encontrar un serial válido es encontrar lo que el legendario +ORC llama memory echo. Esto es el lugar donde nuestro serial es comparado con el serial real valido, (a menudo calculado con nuestro username). Puedes crackear muchos programas, solo encontrando el memory echo, así que sospecha cuando veas algún código como este:

mov bl,[esi]	     ;Toma un byte del serial correcto
mov bh,[edi]	     ;Toma un byte de nuestro serial
cmp bl,bh	     ;Los compara
jne ...		     ;Si no casan, el serial es invalido.
Entonces, para encontrar el memory echo aquí, escribirías, en SoftICE, "d esi", y luego verías el serial correcto en tu datawindow.
Otro code snippet que hace lo mismo, podría verse así:
mov ecx,lengthofvalidserial	;Cuantos Bytes para comparar
repz cmpsw  			;Compara las cadenas en ds:esi (serial correcto)
				 con es:edi (nuestro serial)
je ...	 			;Salta a la etiqueta "serial valido" si las cadenas casan.
Para encontrar el memory echo para un programa que usa un código como este, escribirías, en SoftICE, "d esi". Justo como en el ejemplo anterior! Bien, por ahora, espero que entiendas un poco mas acerca de lo que es el memory echo, y como encontrarlo!


Limite de 30 días - Muchos programas solo trabajan por cierto numero de días (principalmente 30 = 1 mes), pero aparte de este limite, el programa es totalmente funcional. Lo que haces en este caso, es encontrar donde se compara "el número de días usados" con "30", y modifica el código. Aquí está como se puede ver el código:

mov ecx,1E		;Mov 1Ehex (=30 dec)  a ecx
mov eax,[esp+10]	;Mov número de días usados a eax
cmp eax,ecx		;Compara eax (número de días usados) con ecx (30)
jl ...			;Si eax es menor que 30 Podemos seguir evaluando el programa.
Una forma simple de crackearlo sería cambiar "mov eax,[esp+10]", a "mov eax,1" o algo así. Luego el programa siempre pensará que estamos en nuestro primer día de evaluación. Otra forma de crackearlo sería cambiando el salto condicional, a uno incondicional.


Nagscreens - "This version of xxxxxxxx is shareware! Please register if you use it blah blah...". Reconoces esto??? Esto es lo que llamamos Nag screen! Algunas veces no hay lugar para el serial, o no hay tiempo límite, solo una nag screen, si pudieramos quitarla, tendriamos crackeado el programa. Entonces, lo que deberías estar buscando para algo como esto es:

cmp byte ptr [00480EB9], 00	 ;Compar una flag (la flag registrada) en memoria con 0
jne 004212F2		         ;Si es algo mas que cero, es una copia registrada, y no
				  muestra la nagscreen
Puedes crackear esto en muchas formas, la mas fácil sería solo cambiando "jne" a "jmp".


Programas para usar como objetivo - Okas, ahora que sabes que buscar, probablemente quieres un objetivo fácil para practicar, correcto?

Winzip 6.2 - Un buen objetivo newbie para el método memory echo.
Ultraedit v5.00a - Un buen blanco para cracking de tiempo limite.
Graphic Workshop 95 v1.1y - Un buen objetivo para remover nagscreens.

Bueno - por ahora deberías tener al menos una pista sobre que buscar, pero recuerda que MUCHOS programas tienen por lo menos algo mas dificultoso en sus esquemas de protección, pero si lees y ENTIENDES este ensayo, pronto deberías ser capaz de crackearlos tambien!


Algo que quieras preguntarme? Cruehead_@hotmail.com es mi email.

Back to Tutor page!Back to tutorial page.

Copyright © MiB 1998. All rights reversed.

--------------806B0C457F2010CF93C53CFB--
www.000webhost.com