Objetivo: Evadir el límite de instalaciones del programa
-Examinamos un poco:
Nos damos cuenta de que nos pide una llave tipo disquete o floppy para la instalación definitiva.
Si le damos aceptar sin tener la llave el programa se cerrará sin ningún aviso
-si insertamos la llave dada por nuestro amigo tertulia (esta debe estar en disquete en mi caso mi netbook no posee por lo que tuve que emularlo con virtual floppy drive http://sourceforge.net/projects/vfd/
en el creamos un disquete vacío e introducimos los archivos:
al iniciar el programa nos mostrará la misma alerta que la anterior:
pero luego de dar aceptar nos muestra lo siguiente:
Por lo que el programa NO nos permite la instalación pese a tener la llave, debido a que lo más probable es que cada vez que se instala o se des instala el programa deja algún tipo de registre en la llave
ya analizado el programa es turno de ollydbg:
antes de abrirlo pensamos de que manera vamos a usarlo, probemos con un BP en la alerta de mensaje de que este ya estaba instalado
al abrirlo notamos que hay dll de visual basic por ende está programado con el mismo lenguaje
por lo que nuestra API será:
Citar
rtcMsgBox
Encargada de mostrar mensajes pongamosle un bp en ella
Iniciamos el programa con F9 luego de que nos apareció el primer mensaje pondremos el bp:
Ahora si lo ponemos
ahora le damos a aceptar y se nos detendrá debido a que el programa está llamando la api rtcMsgBox con la intención de avisarnos que este programa ya ha sido instalado
a nosotros en realidad no nos interesa la API si no el momento en donde es llamada al parar le damos a execute till return y se nos desaparecerá el OP code de origen, lugar en donde está detenido el debugger (en mi caso fue así) por lo que si miramos en la pila podremos saber adonde retornará la API luego luego de que fue llamada:
Notamos que es en:
01244473
Nos vamos hacia esa dirección y notamos que es la linea siguiente después de llamar a la API (Call anterior), si seguimos subiendo veremos dos saltos interesantes pero lleguemos hasta el inicio:
le pondremos un BP y bajaremos hasta encontrar nuestro primer salto JE y también le pondremos un bp
Si seguimos hacia donde nos lleva este salto notaremos que nos lleva a otro salto un poco sospechoso:
Ahora reiniciamos, si se nos borraron los 3 BP los volvemos a colocar
le damos F9 y nos aparecerá la misma alerta, le damos aceptar y se nos detendrá en los breakpoint modificamos los dos últimos por jmp:
Luego de pasar por los BP le damos RUN y nos mostrará lo siguiente:
Por lo que el objetivo está completo
durante el traceo se pueden ver datos interesantes
EDIT:
http://www.mediafire.com/?zcrhqidd6cpfcyw