Hola, saludos a todos y muchas gracias de antemano. Me estoy iniciando en este mundillo de la ingeniería inversa y después de leerme unos cuantos tutos y crackmes me decidí por intentar registrar este programa:
http://sp.financessoftware.com/downloads/PersonalFinancesPro.zip
Es un programa portable que no necesita instalación. No es el típico con nombre/número de serie. Sólo pide un número de serie. El problema es que no da mensaje de si es válido o no. Lo sabes al reiniciar el programa porque te vuelve a salir una ventana con el aviso de que no está registrado.
Hay otra cosa que lo diferencia de los típicos y es que si no está registrado no permite (en teoría) más de 200 transacciones. Digo en teoría porque a mí a veces me sale el límite a 270 a veces a 290 (es un poco confuso eso).
Bueno comienzo mirándolo con el PEid y veo que está compilado con Borland C++ 1999. Creo que no pinta mal la cosa.
Me voy al Olly y aqui empiezan los problemas:
1) Imposible localizar las cadenas de texto chico bueno chico malo, por lo menos en el módulo principal (dependen del idioma escogido y están almacenas en un fichero de texto en la carpeta LANG)
2) Lo intento a través de las funciones GetWindowTextA, MessageBoxA y GetDlgItemTextA pero tampoco hay suerte parece que utiliza APIs diferentes.
3) Intento tracear el programa e ir colocando BP a ver si consigo localizar la rutina "manualmente" pero se hace muy complejo (hay demasiados saltos y a la mínima me paso de la rutina de comprobación)
Alguien puede echarle un vistazo y ayudarme un poquito, o al menos orientarme sobre qué otras opciones tengo?
Saludos y gracias de nuevo
PD.: 4) He intentado otro camino: colocar un BP on WinProc para que pare al pulsar el botón del OK (202) pero tampoco ha habido suerte. Alguna idea?
http://sp.financessoftware.com/downloads/PersonalFinancesPro.zip
Es un programa portable que no necesita instalación. No es el típico con nombre/número de serie. Sólo pide un número de serie. El problema es que no da mensaje de si es válido o no. Lo sabes al reiniciar el programa porque te vuelve a salir una ventana con el aviso de que no está registrado.
Hay otra cosa que lo diferencia de los típicos y es que si no está registrado no permite (en teoría) más de 200 transacciones. Digo en teoría porque a mí a veces me sale el límite a 270 a veces a 290 (es un poco confuso eso).
Bueno comienzo mirándolo con el PEid y veo que está compilado con Borland C++ 1999. Creo que no pinta mal la cosa.
Me voy al Olly y aqui empiezan los problemas:
1) Imposible localizar las cadenas de texto chico bueno chico malo, por lo menos en el módulo principal (dependen del idioma escogido y están almacenas en un fichero de texto en la carpeta LANG)
2) Lo intento a través de las funciones GetWindowTextA, MessageBoxA y GetDlgItemTextA pero tampoco hay suerte parece que utiliza APIs diferentes.
3) Intento tracear el programa e ir colocando BP a ver si consigo localizar la rutina "manualmente" pero se hace muy complejo (hay demasiados saltos y a la mínima me paso de la rutina de comprobación)
Alguien puede echarle un vistazo y ayudarme un poquito, o al menos orientarme sobre qué otras opciones tengo?
Saludos y gracias de nuevo
PD.: 4) He intentado otro camino: colocar un BP on WinProc para que pare al pulsar el botón del OK (202) pero tampoco ha habido suerte. Alguna idea?