Hola a tod@s!!!
Quería presentarme aun que llevo un tiempo visitando el foro he sido mas de leer que preguntar y ya viendo que no consigo avanzar por mi mismo vengo a ver si me podéis guiar o dar algún tipo de solución o camino para continuar.
Aun que he hecho antes pequeños proyectos de ingeniara inversa este creo que se me queda grande por eso recurro a vosotros y expondré hasta lo que he sido capaz de hacer por mi cuenta y a ver si con vuestra ayuda o cooperación podemos dar solución ha este reto.
Para evitar seguimientos por parte de la empresa de software o problemas de permisos no haré mención alguna a la aplicación ni daré nombre relacionados en el tema principal cualquier fichero o enlace o nombre lo pasare encantando por privado y las fotos serán editadas ya que si se conseguir dar con una solución al problema que planteo no quiero que nuestro amigo google lo indexe y se pueda parchear.
Si incumplo aun así alguna normal del foro sera por olvido o desconocimiento y estaré encantado de ser avisado y corregir mi error.
Bueno después de esta introducción voy al grano la aplicación consta de un versión demo que se puede descarga de la misma web de fabricante sin ningún problema y te deja ver su funcionalidad esta consta de unos 8 módulos que vienen incluidos en la aplicación por defecto pero que se activan por una licencia donde esta activa cada uno de los módulos según lo adquirido dentro de la misma licencia y a su vez por ejemplo en ciertos módulos controla la cantidad de dispositivos externos (android) que tiene acceso a la aplicación ya que tienes que adquirir también el numero de dispositivos que quieras que tenga acceso a la aplicación, los datos de la Empresa,cif,tlf se incluyen dentro de la licencia si usas una versión demo estos aparecen vacíos. o si usas una licencia de prueba de 15 dias aparece "Demo XXXXX" como el nombre de Empresa.
La versión demo funciona sin licencia de ningún tipo esta se agrega el directorio raíz de la aplicación en formato de fichero con la extensión .lic he podido hacerme con una de prueba de 15 días y abrirlo en txt y por lo que he podio ver usan un simple codificación de Strings que aun no he sido capaz de revertir con algunos programas que he pasado.
Se lo pasare a cualquiera que me lo pida por si quiere estudiarlo.
Siguiendo con el tema del archivo ".lic" si pones un .txt aleatorio y lo suplantas en la raiz como la licencia el programa al ejecutarse da un Textbox donde advierte que el archivo .lic no es accesible o correcto.
Usando el olly y pausando la ejecución y dándole a la opción de K se ve la ultima interacción como hace un llamada a una .dll del sistema de para provocar una excepción pero no consigo seguir el momento exacto de la llamada a la exepcion.
En la foto a continuación buscando por stirngs encuentro lo que creo que es la llamada de la aplicación a la licencia y pasa a una variable que tiene casi el mismo nombre que la licencia solo que se van sumando porque hay hasta 10 creo variables iguales nombradas xxxx_a1.....2...3..2 a lo largo de código que supongo que sera la llamadas a las diferentes partes de la licencia.
En la foto como se aprecia hay un un JNZ que deriva en las dos opciones que se ven una con una rutina mi corta y la otra casi interminable la llamada a subprocesos.
Esto era solo para dar una pincelada tengo mas direcciones de memorias a mas llamadas del archivo .lic he hecho también con el EMS source una recuperación de código ya que este esta en Delphi 2007 pero lo único que me recupera son los forms y los nombres de las funciones solo que me las ha recuperado y rellenado como direcciones de memoria los tengo en formato .dfm y .pas si alguien quiere echarle un vistazo. Yo no he conseguido ver donde puede estar la llamada el algoritmo de conversión de los strings de la licencia.
Bueno no me quiero extender mas cualquier pregunta...programa o archivo encantado de responder o enviar.
Un saludo y gracias