Buenas, antes que nada recordar que odio visual basic, por lo tanto mi entendimiento es bastante pobre, acepto cualquier corrección o sugerencia
ANALISIS PRELIMINAR
Abrimos el crackme y vemos un lugar para poner contraseña, un botón que se llama command1 (
) y otro lugar. Ponemos serial 234567890, presionamos botón y dice mal (para eso era la 2º caja). Abrimos el PEID y nos dice que no sta comprimido ni nada raro, abrimos Smart Check.
CRACKING...
Corremos el Crackme (desde ahora CM) ponemos serial chungo, click en command1 y cerramos el CM. El Smart check ha registrado todos los eventos, nos interesa el que dice _Click.Expandimos, y ponemos show all events en el menú view.
Mirando un poco vemos que hay muchas funciones sospechosas como _vbaVarTstEq entre otras, pero si agudizamos más la vista (
) vamos a notar que una función (_vbaVarTstNe) engloba muchisimas "cosas". Nos vamos a View y tildamos "arguments" y vemos que al lado de la función dice String:"2" y después En Variant: Const Integer:1
En este punto sospecho que es una comparación de mi primer caracter con un 1 (porque dice const integer), lo que hago es volver a correr el CM pero esta vez pongo como primer caracter del serial una "a" y oh sorpresa, en _vbaVarTstNe nos dice String:"a" , Variant: Const Integer:1
Pero luego de eso tenemos la cadena mal y se acaba todo. Pensamos, pensamos y por lo primero que optamos es por hacer que el primer caracter de nuestro serial chungo sea 1.
Volvemos a correr el CM, ponemos 1234567890 y cuando vamos al Smart Check vemos que esta vez hay dos _vbaVarTstNe en la primera se compara 1 con 1 y en la segunda 2 con 3
. Lo que hacemos entonces es ir haciendo coincidir cada uno de los caracteres de nuestro serial con
el que nos va mostrando la función y deducimos que los caracteres que importan son los 4 primeros, es decir que no importa el serial que sea siempre y cuando contenga 4 caracteres determinados al principio
Entonces el serial es 1346********
Saludos