Crackme Edu [Solución]

Iniciado por WarezMask, 13 Mayo 2012, 04:16 AM

0 Miembros y 1 Visitante están viendo este tema.

WarezMask

********************* Solución con W32dasm. *************************


Nice Music -> http://www.multiupload.nl/GWVE7JV0GJ

Nota:El usuario :UNDER: ya escribió un tutorial de como crackearlo con ollydbg.
si quieren usen ese o este(especialmente para W32dasm).

Bueno, primero que todo hola a todos espero que esten de maravilla.

Ahora la explicación que daré será breve, lo cual les digo que no entraré en muchos detalles
porque yo tambien soy principiante en esto del cracking.
Así que vamos por el crackme.

Descargar->http://www.mediafire.com/?gzd6j9b4vd9gp2n

Bueno ta descargar lo abren con (w32dasm) en mi caso usé ese, ustedes si quieren use olly.

bueno buscamos los 'String data references',
en W32dasm busque en el menú o busquen el botón que está a la par de el botón imprimir.

en olly creo que es -> search for -> All string's references.

y bueno como ven aparencen las siguiente cadenas de texto:


1.CCorrecto!
2.DDebe ingresar los datos!
3.SSerial incorrecto!

Bueno como saben el Msg de alerta es la clave para crackear un programa,
así que le damos doble click y nos llevará a la siguiente línea:
00401f0c => C74580881B4 mov [ebp-80], 00401B88

Bueno subimos un poquito más arriba...

Vemos que dice :Referenced by a (U)nconditional or (C)onditional Jump at Address:
:00401ea5 o en otros casos es :00401ECC(por si acaso les aparece este (:)
Sería el mismo procedimiento pero con el 00401ecc.

Bueno vamos a localizar esa línea.

Shift+F12
00401ea5 ->jne25 @offset : 401ea5

abrimos un editor hexadecimal, winhex,  hexedit, hiew, Ultraedit el que más les guste.

y buscamos la línea.
->2022 o 00401ea5

y cambiamos el salto por je = 74.

y bien, bajamos donde hay dos variables,

exc,eax

nos dice que B904000280 se mueve a 80020004.
lo cual sería verdadero porque eax = 0;
y ecx = 1
sería ecx = 11101001(en binario).
y eax = 10111000

entonces nos dice que eax será movido a una función, que compare que si eax no es igual a 0 y ecx es igual a el serial correcto, txtUSer or txtSerial.
entonces tendremos que cambiar B8 por 11101001(en bits).

ok cambiamos los bits o solamente cambias el B8 por un B9 y el editor los cambia automáticamente.

Guardamos y iniciamos el programa y prueban con el siguiente serial.

User : $edu$
Key  : $edu$

Stack => Correcto!

Saludos A toda la comunidad de Elhacker.net

PD:Yo no entiendo muy bien esto, pero hago lo que puedo.

apuromafo CLS

emm seria mas facil aun mas con otras formas aun sin revisar
primero, la comparacion es de 1 cifra, por ende luego calcularla es extraño, no sep, del ascii 5 cifras mas adelante , solo importa la primera, luego no importa el largo de la palabra

para "$edu$" el serial seria ")" sin las comillas porque $=alt+36 luego +5 alt+ 41 es )

para @ (alt+64) es E (alt+69)
para A (alt+65) es F (alt+70)
para a (alt+97) es adivina 97+5=102 alt 102
ahora bien eso es para la primera regla de haber 1 letra de serial, pero si hay mas?
pasara exactamente igual, la regla entra en loop de la cantidad del largo del serial, 5 desde lo ingresado, de ser mas..ejemplo con 4 cifras, todos cae en lo mismo rutina..interesante que uses la lista muerta, intenta mejorar con ollydbg, creeme que cambiar es un pco mas facil desde ahi , saludos Apuromafo

digamos ejemplo ahora con un serial de 4:
user:apuromafo
serial:fuzw

$Edu$