Saltando y Asegurando los Periodos de prueba en el Software

Una gran mayoría del software pago (shareware) que encontramos para nuestros equipos, utilizan como parte de su estrategia de mercadeo versiones de prueba para sus productos, con con ellas podemos ver su funcionamiento por un periodo de tiempo determinado antes que decidamos comprarlo, muchas veces estas versiones de prueba cuenta con todas las funcionalidades del software pero con alguna limitante como el tiempo que podemos usarlo o el numero de veces que podemos ejecutarlo.

Hoy hablaremos de  los periodos de prueba, cómo podemos evadirlos y como desarrollarlos adecuadamente, para que cumplan con la función para la que fueron programados, algo muy necesario ya que es común ver como los desarrolladores usan por ejemplo la fecha del sistema operativo como dato confiable en sus códigos y con base en ella realizan las respectivas limitaciones de sus productos, esto es una mala practica ya que la fecha del sistema es fácilmente modificable por el usuario, por lo tanto no podemos confiar solamente en ella, veamos por que…

Saltando los Periodos de prueba en el Software

Supongamos que tenemos un producto XYZ y queremos que nuestros posibles clientes lo prueben solo por 8 días y luego tengan que comprarlo para poder utilizarlo, lo instalamos hoy 20/12/2010 y si todo sale como el desarrollador lo pensó el software dejaría de funcionar el 28/12/2010… pero siempre como desarrolladores debemos pensar que el usuario es malo, si tenemos siempre presente ese pensamiento podremos mejorar ampliamente la seguridad de nuestros desarrollos, validando toda la información que ingresa o que puede modificar, ahora imaginemos que antes de instalar nuestra versión de prueba, el usuario cambia la fecha del sistema al 21/12/2012 (ya que si se acaba el mundo, no necesitara mas nuestro software jejejeje), el sistema validara como fecha en la que termina el periodo de prueba el 28/12/2012, cierra el programa, pone de nuevo la fecha actual en el sistema y que pasa?… si el sistema esta mal implementado (como sucede con la mayoría de productos que he probado) nos dará un periodo de prueba por 733 días, en vez de los 8 que teníamos pensado.

De este problema no se salva ningún sistema operativo, encontrando fallos en software tan famoso y polémico como Smurfs’ Village de CAPCOM para iOS, un juego tipo “FarmVille” inspirado en los Pitufos, que es gratuito pero su modelo de negocio es que compremos pituficerezas (smurfberry), para evitar largas esperas en el crecimiento de nuestras cosechas y construcción de edificios, como podrán imaginarse haciendo uso de la multitarea, podemos ir a las preferencias de nuestro iPhone, iPod Touch o iPad y cambiar la fecha del sistema para que la espera de horas o días, se reduzca a unos cuantos segundos. Pasando de esto…

SmurfBerry Gratis, Free Smurfs Village iPhone, iPad, iPod Touch

A esto en solo unos minutos…

SmurfBerry Free, Gratis Smurfs Village
Click para Ampliar Imagen

Lo mismo pasa con Camtasia para Mac OS, si adelantamos la fecha del sistema en la instalación de Camtasia, lo iniciamos y luego volvemos a poner la fecha actual, pasa algo como esto…

Saltar Periodo de Prueba Camtasia

Windows tampoco se salva de este problema, existiendo incluso software que permite automatizar el procedimiento para que cuando se inicie un programa especifico, se cambie la fecha del sistema solo para este programa, sin cambios aparentes para el resto de programas, una de las herramientas utilizadas para realizar esta función es Cracklock, que desde hace mas de 10 años y según su descripción, permite eliminar el virus “30th day” que te impide utilizar el software después de pasado X tiempo (guiño 😉 guiño).

Saltar Periodo de Prueba Windows
Pagina Oficial de Cracklock

Otros desarrolladores hacen uso del registro en windows, archivos en mac o una combinación de ambos, para limitar por ejemplo el numero de veces que se puede ejecutar antes de comprar un software, esto puede ser un poco mas tedioso de identificar, pero igual podemos utilizar herramientas como RegeMon, FileMon o la reciente integración de estos 2 ProcessMon, para intentar saber donde esta guardando esta información el software y deducir que tipo de protección utilizado para el periodo de prueba.

Monitoreo del Registro en Windows
Monitor del Registro

Monitoreo de Archivos en Windows
Monitor de Archivos

Monitoreo de Procesos, Registro y Archivos en Windows
Monitor de Procesos, Archivos y Registro

En alguna ocasión vi como un software contable, utilizaba la fecha de creación de su ejecutable para validar su periodo de prueba, bastaba con usar la famosa herramienta antiforense Timestomp, para cambiar esta fecha y modificar a nuestro favor el tiempo que duraba este periodo de prueba.

Si empiezas a experimentar con esto de los periodos de prueba o las limitaciones del software por tiempo, seguramente te puedes encontrar con aplicaciones en las que te sea muy complejo descubrir como realizar sus validaciones, pero no todo esta perdido, para estas situaciones podrías utilizar herramientas como SandBoxie que te permite ejecutar el software dentro de una caja de arena, utilizarlo y al cerrarlo, la caja de arena será limpiada haciendo que el software quede “detenido en el tiempo”, ejecutandose siempre como si fuera la primera vez…

Asegurando los Periodos de prueba en el Software

Ya vimos algunos de los métodos utilizados para saltar los sistemas de protección del software, ahora veamos la otra cara de la moneda, dando algunos consejos a los desarrolladores para que los periodos de prueba que utilicen en sus productos, cumplan adecuadamente su tarea.

  • No introduzcas todas las funcionalidades del software en tu periodo de prueba o por lo menos limítalas.
    Es uno de los errores mas comunes cometidos por los desarrolladores, la idea de un periodo de prueba es darle una pequeña muestra de tu software al posible cliente, si con la versión de prueba pueden resolver su problema.. para que te van a comprar el producto?, si limitas las funcionalidades del software, recuerda que debes anunciarle al posible cliente que esta limitante quedará eliminada tan pronto compre el producto.
  • Valida la fecha con servidores externos.
    Como puedes ver la fecha del sistema es fácilmente modificable, si es posible valida la fecha actual con un servidor externo, para que tu software no se ejecute mas tiempo del necesario para motivar al cliente de comprar el producto… ese es el motivo de los periodos de prueba ¿no?.. el inconveniente es que necesitarían una conexión a internet pero ¿quien no la tiene en estos días?. 
  • Combina las Validaciones
    Si puedes combinar las fuentes donde sacas la información para validar tus aplicaciones, registro, archivos, servidores externos, hazlo.
  • Impide la ejecución en Maquinas Virtuales
    Esta es una decisión que podría afectar a clientes verídicos, pero puedes impedir que tu aplicación se ejecute en maquinas virtuales y cajas de arena, anunciando que la versión de prueba no permite esta función, pero con la versión completa no tendrán ese problema.

Compartenos la medida de aseguramiento agregarias a la lista? o un metodo que has utilizado para saltar alguna de ellas…


Si te ha gustado el post, compartelo y ayudanos a crecer.

Unete a nuestra Fanpage Siguenos en Twitter

Autor: DragoN

Ingeniero en Sistemas y Telecomunicaciones de la Universidad de Manizales. Information Security Researcher con más de 10 años de experiencias en Ethical Hacking, Pen Testing y Análisis Forense. Docente Universitario en Pre y Post-Grado, Speaker y Organizador de diferentes eventos de Seguridad Informática, Fundador del DragonJAR Security Conference y Fundador de DragonJAR SAS y de La Comunidad DragonJAR, una de las comunidades de seguridad informática mas grandes de habla hispana y referente en el sector.

Compartir este Artículo
  • Pingback: Tweets that mention Saltando y Asegurando los Periodos de prueba en el Software -- Topsy.com()

  • Mauricio

    Me asalta una duda, como puedes determinar que el software se esta ejecutando en una maquina virtual???

  • DAGR

    Mauricio, si deseas conocer mas sobre protecciones/desprotecciones de software te recomiendo el grupo de crackslatinos, puedes preguntar cualquier inquietud relacionados a este tema.

    crackslatinos[a.r.r.o.b.a]googlegroups.com

    Saludos!

  • .Para aquellos que tienen en su computadora varias cunetas de usuarios y no pueden cambiarle la hora y fecha del sistema y que en mas no pueden ni siquiera ver el calendario de los dem s usuarios..Para poder realizar el cambio de la Hora y Fecha debemos hacerlo atraves de Directivas de seguridad Local .1.- Como administradores nos dirigimos a Inicio Panel de control Herramientas administrativas luego Directiva de seguridad local.2.- Seleccionamos esta opcion Directivas locales luego Asignaci n de derechos de usuario…3.- Luego damos doble clic a la opcion que dice Cambiar la hora del sistema…En esta parte de la configuraci n debemos a adir que el usuario o grupo de usuarios adicionales les debemos el permiso de cambiar la hora y fecha de Windows XP…4.- Ahora seleccionamos Agregar usuario o grupo y en el recuadro escribimos Todos …5.- Por ultimo aceptamos y aplicamos el cambio en el sistema una vez que reiniciemos el sistema los usuarios con cuentas limitadas podr n cambiar la hora y fecha sobre todo podr n ver el calendario de Windows XP..Nota En el truco dado a conocer a adimos todos los usuarios pero dem s esta decir que podemos definir a los usuarios espec ficos que deseemos que tengan estos privilegios. Para esto en el punto numero 4 solo debemos dar clic a el bot n que dice Avanzadas y dar los privilegios a los usuarios que elijamos..

  • UribeParaco

    interesant articulo, pero podria sugerite otro programa adicional , el hex editor a mi parecer muy bueno para este tipo de “trabajos”

  • Pingback: Como crackear aplicaciones de la Mac App Store()

  • Justiciero

    “No introduzcas todas las funcionalidades del software en tu periodo de prueba o por lo menos limítalas”

    Un usuario (de los que compran) difícilmente comprará un software que no le deja antes probar su funcionalidad completa, y ustedes lo saben. Un Demo que no incluye toda la funcionalidad, no hay interés en crackearlo pero no hay interés en comprarlo tampoco. Además, el usuario que compra no te limita el pago hasta que comprueba que tu software funciona como se espera.

    “Valida la fecha con servidores externos.”
    Olly Debugger al ataque! XD Para estas “super-avanzadas” técnicas de los desarrolladores los crackers hacemos una aplicación proxy que valida la fecha en el mismo equipo (entre muchas otras técnicas)… Pensando en aquellos que no cuenten con internet o con dinero (Mira la gente de Adobe o Microsoft, están multimillonarios y siguen llorando por los casos de software copiado como si estuvieran pasando por pobreza extrema).

    Como desarrolladores de software deben entender que internet NO fué concebida como un instrumento para vender, ustedes han querido convertirlo en un mercadito.
    El usuario que va a comprar compra y no batalla con cracks ni nada de eso, ustedes deben estar felices de aún así vender algo.

    • Carlos

      Sobre limitar las funciones, debemos tener en cuenta cuál es la función del programa. Debemos poner siempre algún sistema para incitar al usuario a comprar el programa, este sistema puede ser que los documentos que genere no tengan valor por tener algo que no se pueda quitar en la demo, o que un programa de recuperación no te lo permita recuperar todo en la versión de prueba, o te haga esperar entre archivo y archivo, o lo que se te ocurra.
      Y luego, lo de saltarte la validación de la hora con un servidor externo, yo estaría comprobando la fecha y hora, guardándola en algún archivo que sea normal que el programa modifique, y en el momento que detecte un retraso en el reloj invalidaría el programa (comprobando antes que no se deba al cambio horario de finales de octubre).
      También se podría calcular el tiempo de ejecución del programa y cuando éste llegue a cierto límite invalidarlo.

  • Carlos

    Otra cosa que se podría hacer, si la función normal del programa es modificar un archivo, grabar periódicamente fecha y hora, e invalidarse inmediatamente si detecta un retraso en el tiempo. Respecto a lo de deshabilitar funcionalidad, pues depende de qué sea el programa. Si es un programa de recuperación de archivos, la demo podría mostrarte qué puede recuperar y que tengas que comprar la versión completa para poder recuperarlo, por poner un ejemplo. Si es un programa cuya función es generar cualquier tipo de documento, como un programa de facturación, se podría incluir una marca de agua en todos los documentos que invalide su valor, pero a la vez permita al usuario ver si el programa le convence.

  • Jajajaaja!!! Inrebile!!! no habia probado este sistema porque creia que una empresa seria no cometeria este error…. pero ha funcionado !!!!! Con camtasia Studio!!! El caso es que ya me habia caducado el periodo y he atrasado la fecha 2 años atras y otra vez funciona!!! Pero ahora la pregunta es: he borrado camtasia de la carpeta aplicaciones para volver a ponerla y ejecutarla despues de adelantar la fecha a 3 años para alante, pero se queda “el registro” de que en su dia fue activada en la fecha correcta… Donde se encuentra ese registro para eliminarlo? uso Macbook pro con lion…
    Un saludo y gracias!

  • Pingback: WAppEx suite para auditar aplicaciones web, de los creadores de Havij()

  • José Arana Luna

    Este es mi nuevo e.mail el que tienen es antiguo

  • deepmdk

    Amigos en mi opinión no es algo que afecte en si a los sistemas operativos, simplemente el software trae una falla de programación que es responsabilidad de los programadores que crearon el juego o programa, se supone que cuando se elabora un proyecto antes contemplas las diferentes posiciones de los usuarios finales, sería una ingenuidad no pensar que alguien no intentara alterar el software, que se altere la fechas de sistema no afecta la funcionalidad del SO pero si la de algunos programas en su defecto triales. Hay software muy bien programados por ejemplo los antivirus el kaspersky, si uno altera la fecha lo que pasa es que se caduca más rápido simplemente, así que esa vía de hackeo por decirle así no funciona, lo que demuestra que el error está en el código de algunos programas y no en los S.O.

  • Pingback: WAppEx suite para auditar aplicaciones web, de los creadores de Havij | BayWare()

  • Pingback: La cadena se rompe siempre por el eslabón más débil()

  • Pingback: WAppEx suite para auditar aplicaciones web, de los creadores de Havij | BTshell()

  • Euler

    Me gusta el post, esta interesante, como soy pricipiante estoy empezando a experimentar, pero el camino parece muy largo, y la verdad no se por donde empezar, sin embargo probe casi todos esos programas que congelan el reloj de windows, pero me di cuenta q no son utiles cuando el programa a “crackear” trabaja con con filtros de fechas y algunas listas. Porq ahi todos los archivos tienen la misma fecha.
    La verdad es q estoy empezando a modificar un programa, (por algo se empieza) y me gustaria saber mas de que forma relacionarlo, con el reloj de windows, y q sea capaz de registrar las fechas de los archivos, para sacar de ahi la fecha legal, y asi no funcionaria con ningun tipo de crackeador, en todo caso, te agradeceria si pudieras hacer un post mas amplio.

  • ric

    ooo mira nadamas no se me habia ocurrido poner la fecha hasta el 2099 instalar el programa cerrar el programa regresar al pasado y vuala!!infinito de años de vida del producto voy a intentarlo con un programa

Siguenos!

O Puedes Subscribete

ANTES DE

SALIRTE ...

NO TE

ARREPENTIRÁS

!Gracias¡

NO OLVIDES NUESTRAS REDES SOCIALES