triniyty

Páginas: 8 (1807 palabras) Publicado: 4 de febrero de 2015
SOLUCION AL CONCURSO #8
CRACKSLATINOS
FECHA

Julio 2010

VICTIMA

concurso 8crackslatinos“SunshineCrackme1” keygenme #2
bydeurus del

URL DESCARGA http://crackmes.de/users/deurus/keygenme02/download
PROTECCION

Name + Serial + Keyfile

OBJETIVO

Registrarlo sin modificar nada y hacer un KEYGEN
(generador de licencia valida)

DIFICULTAD

Novato (un poco confuso perosencillo)

CRACKER

ALEJANDRO TORRES (TORRESCRACK)

http://www.facebook.com/yo.torrescrack

www.torrescrack.blogspot.com

INTRODUCCION:

Hola , este tutorial ya lo tenia hace un buen rato , es de como
logre registrar el crackme “sunshine” posteado en el concurso
#8 de crackslatinos donde fui miembro hace tiempo donde
igual postee la solucion, este es un nivel algo sencillo pero
tienealgunas cosillas que me confundieron durante unos
momentos lo cual merece un tutorial  , espero no haberme
extendido mucho y no aburrirlos , empezamos….

EXPLORANDO AL ENEMIGO:

Le pasamos el RDG Packerhaber que nos dice y vemos esto:

Vemos que es un visual C++ y según el el RDG ese el v.8.0,
ok ya revisado que no haya packer seguimos

Bien Ahora lo abrimos con el ollydebugger y locorremos
hasta que nos salga la ventana que nos pide nombre de
usuario y contraseña y
ahora escribiremos cualquier
contraseña veamos :

Uhmm bien vemos tambien que no hay mensaje de “chico
malo” entonces debemos entrar por otro lado , tal vez por
medio de las apis que capturan el texto , presionamos en el
ollyctrl.+ N y vemos las apis que utiliza el programa y
busquemos alguna sospechosaveamos

Uhmm si nos fijamos al final de la imagen estara la api
“GetDlgItemTextA” , ok listo , entonces vamos al
commandbar y ponemos un BP en la API y corremos veamos

Ahora corremos y presionamos el boton para que pare al
guardar el texto , veamos

Veemos que caimos al inicio de la api , ok ahora salgamos de
ella y caemos aquí veamos:

Ok si vemos en eax tenemos el largo de nuestronombre , en
nuestro caso “0B” en decimal es 11 , ok seguimos traceando
hasta pasar las apis que guardan nuestro nombre de usuario
y contraseña hasta que llegamos a un call veamos:

Uhm vemos que debajo del call compara si eax vale 0 y en
caso de serlo nos manda fuera jeje, entremos en el haber que
carajos hace jeje veamos

Veemos que al inicio de la rutina hay una api encargada de
vercuanto mide nuestra contraseña falsa y si es cero nos
hecha fuera y mas abajo vemos esto:

Uhmm solo de verla , veo que hace unas comprobaciones de
nuestro serial
, por ejemplo compara cada carácter de
nuestro serial , con los numeros de 0 a 9 y si es menor a 0
(30 en hex) o mayor a 9 (39 en hex) y en caso de serlo nos
manda a un trozo de codigo que compara si es menor a “a”
(61 en hex) omayor a “f” (66 en hex) y en caso de serlo
compara si es menor a “A” (41 en hex) o mayor a “F” (46 en
hex) y en caso de serlo no manda a un pedazo de codigo que
hara que eax retorne con 0 y tomara el salto que habiamos
visto , uhm todo apunta a que verifica que el serial sean
puros digitos hexadecimales (si ponen atención se

darancuenta) , entonces debemos de tratar de que nuestro
serialeste dentro de lo requerido jejejee , por ejemplo en mi
caso mi serial “123456789” entra dentro de lo requerido jeje
, bien seguimos y veemos que hace con nuestro serial falso
veamos:

Vemos que a cada carácter de mi serial le resta 30 por
ejemplo mi serial es:

Ascii

1 2 3 4 5 6 7 8 9

Hex

31 32 33 34 35 36 37 38 39

Quedando

123456789

Y los guarda en la direccion queapunta [esi] y después

Dezplasa el contenido de [esi] 4 bit ala izquierda quedando al
final de todo el bucle asi mi serial trucho veamos

Y bien ahora que ya tenemos el resultado salimos del call y
vemos esto:

Vemos que no nos hecha afuera ,uff nos salvamos ejjeje ,
seguimos traceandoaver que otra cosa nos pide jeje,
seguimos hasta que vemos otra pequeña rutina veamos:

Vemos que va...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS