Decir que, esta técnica no funciona con todos los crackme, pero normalmente con los que suele hacer un strcmp suele funcionar.
En esta práctica vamos a usar el Crackme V1 de Yo-Mismo. Lo podemos descargar de aquí (estando registrados).
http://crackmes.de/users/yo_mismo/crackme_v1/
Bien, una vez que tenemos el crackme lo abrimos con OllyDbg. Lo importante es llegar al punto caliente donde compara el seríal que genera con el que nosotros introducimos, para ello en este caso pondremos un BP en scanf. Y se nos parará aquí:
Un poco mas abajo veremos el strcmp:
Código:
00401389 |. E8 52040000 CALL <JMP.&msvcrt.strcmp> ; \strcmp
ponemos un BreakPoint en el. Introducimos usuario y serial y se nos parará en la función, vamos a examinarlo.
En la dirección 0x00404010 esta el serial correcto y en la dirección 0x00404020 esta el seríal que nosotros hemos introducido.
Anotamos la dirección donde guarda en seríal generado para nuestro usuario, osea 0x00404010.
Ahora lo que haremos será modificar la función printf, para que cuando valla a dar el error de “chico malo” en vez de mostrar el error muestre lo que sería el seríal válido para el usuario introducido.
Un poco mas abajo veremos donde muestra el mensage de error y el mensage correcto.
Entonces todo lo que tenemos que hacer es modificar esta linea:
Código:
004013A8 |> C70424 6420400>MOV DWORD PTR SS:[ESP],crack.00402064 ; |ASCII "Sigue intentando..."
Por esta otra:
Código:
004013A8 C70424 1010400>MOV DWORD PTR SS:[ESP],crack.404010
Ahora guardemos los cambios. Clic derecho>Copy To executable>All Modifications.
Clic derecho de nuevo en la ventana que nos paarecio > Save File.
Guardamos con el nombre que queramos y listo.
El único requisito que debemos cumplir es que el usuario y el serial que introduzcamos debe tener una longitud igual o mayor a 4. Si observas el algoritmo del Crackme lo vas a poder ver
Ejemplo de como funciona nuestro keygen:
Eso fue todo Espero que se haya entendido algo, y nada, se que esto es muy básico pero seguro que a mas de uno de los que empiezan le va a servir.
un saludo.