Resolviendo El Crackme 2 De EnigmaGroup

Anterior mente había expuesto la solución del crackme 1 de EnigmaGroup aquí el tema:
http://elblogdeflamer.blogspot.mx/2017/01/resolviendo-el-crackme1-de-enigmagroup.html

Pues ahora les traigo la solución del crackme 2, el cual pueden descargar desde esta pagina:
https://www.enigmagroup.org/pages/cracking

Ahora bien ya que lo hallamos descargado, lo abriremos con el ollydbg

Nota: ya le pase el RGD Detector y observe que no tiene ninguna protección así que no tiene caso explicar ese punto y hacer el tutorial mas largo, así que volviendo al tema el ollydbg me muestra el siguiente desensamblado



Luego presionaremos F9 para ver si se ejecuta bien y no tiene alguna protección antidebuger y nos muestra esta pantalla


Y lo que observo es que al pasar el puntero del mouse por el botón Submit este se des habilita y al pasar el puntero del mouse sobre el botón de cancel se habilita de nuevo, pero meda igual eso solo es una observación ya que tengo que habilitarlo con la api EnableWindow de todos modos

Bueno ya que tenemos el programa corriendo, nos iremos al commandbar y teclearemos lo siguiente
bp EnableWindow  así



Y presionamos enter y al poner el puntero del mouse sobre cancel se detiene aquí

Es la api que le pusimos el breakpoint, bueno para salir de aquí hay 2 formas, la primera es presionando puro F8 hasta llegar al desensamblado del crackme y la otra es presionar Control+F9 y al llegar a un RETN presionar F8 y de nuevo presionamos Control+F9 y al llegar a un RETN presionamos F8 y así sucesivamente ya que si nos vamos solo presionando Control+F9 se puede dar el caso de que se pasen y no lleguen a donde queremos.

Así que presionaremos Control+F9 y al llegar a un RETN presionaremos F8 y llegaremos hasta la dirección 004038F9 que es esta


Si observan una linea arriba esta el call que habilita el botón submit y unas lineas mas arriba esta el PUSH -1 el cual es el que ingresa el valor -1 ala pila para que sea trabajado en el call y es el que causa que el botón sea habilitado.

Ahora presionaremos F9 y pasaremos el puntero del mouse sobre el botón submit y se detendrá justo en la api EnableWindow y para salir de esa zona aplicaremos el mismo método Control+F9 y cuando lleguen a un RETN presionan F8 hasta llegar ala dirección 004036D8


Y si observan un poco los registros verán que el registro EBX es igual a 1 y el registro EDI es igual a cero



Así que remplazaremos el PUSH EDI  por  PUSH EBX y que daría así



Y si presionan F9 verán que ya no se des habilita el botón submit, así que aguardaremos los cambios dando clic derecho y elijen la siguiente opción


Y damos clic a  copy all


Y cerramos la venta que aparece y a continuación presionamos si al cuadro de texto siguiente así




Y enseguida nos saldrá el cuadro de guardar como y lo aguardaremos con el nombre de "App2_crack.exe", ya solo nos toca averiguar la contraseña, así que abriremos el nuevo archivo con el ollydbg y buscaremos las string así


Y si buscan un poco encontraran la frase "Congratulations! The password is " que es la que buscamos así que le daremos doble clic


Y nos manda hasta la linea 00403274 y mas arriba en la linea 00403209 se encuentra la api vbaVarTstEq




Esta api es la encargada de comparar dos cadenas así que le pondremos un breakpoint con F2 y ahora pasaremos a ejecutarlo con F9 y pondré como serial "123456" y presiono el botón submit.


Y como ven se detuvo donde pusimos el breakpoint, y si observan la pila verán que se repite mucho la palabras "TopGun"



Así que ase suponer que la clave es "TopGun" pero si quieren estar mas seguros, que es lo que compara la api vbaVarTstEq trasearemos con F7 hasta que se muestre esto en la pila


Y como verán esa es la clave "TopGun", así que la ingresamos y presionamos el botón submit y nos muestra lo siguiente



bueno creo que eso es todo Saludos Flamer y una cosa no haré los tutoriales del crackme 3 y 4 ya que se resuelven igual que el primero, me pasare hasta el quinto crackme ya que ese si es diferente