¿Cómo implementaría una función de "autodestrucción" en la versión de prueba gratuita de mi software?

52

Existe el argumento continuo de la versión de prueba gratuita versus un modelo freemium (es decir, una versión gratuita de su software con características restringidas y / o simplificadas) para permitir a los clientes y usuarios potenciales probar su producto. Tras mi investigación, puedo concluir que la prueba gratuita es el camino a seguir tanto en beneficio de la experiencia del usuario de la persona que usa el software como en beneficio del vendedor en ambos aspectos de las ventas y maximizando el uso. Hay muchos factores para un software de prueba gratuito que puede maximizar en gran medida el uso del usuario, como la duración de la prueba gratuita.

Una palabra clave que se repite en mi investigación para "freemium" es "frustrante". Muchas personas optaron por desinstalar el software en lugar de tener que usar un software donde algunas funciones no estaban disponibles para ellos. Al mismo tiempo, estos usuarios nunca tuvieron la oportunidad de usar las funciones "pagas". Sin que ellos lo sepan, y ocultos por los propios proveedores que venden el software, no saben ni pueden saber qué beneficios traerán las características Pro. Sin tener que usarlos primero, un usuario no sabrá que tiene la sensación de "necesitar" algo. Lo que me lleva al siguiente punto de un modelo de prueba gratuito.

Algunas opiniones de un usuario de prueba gratuito es "No me puedo imaginar el uso de este software sin las funciones Pro". Esto se remonta al punto de "el usuario no sabe que necesita algo hasta que comprende por primera vez la sensación de tener". Aquellos que han tenido 14 días para usar las características de la versión "completa" dijeron que no pueden imaginar no tener o usar las características proporcionadas allí. Entonces, cuando pasaron catorce días, era más probable que repartieran dinero que alguien que nunca había experimentado todas las características. La duración de la prueba gratuita también es un factor importante para crear una impresión duradera en los usuarios. En un experimento realizado por Visual Website Optimizer, notaron que durante una prueba gratuita de 14 días versus una prueba gratuita de 30 días, mientras que el número de registros e instalaciones fue el mismo, el uso de la prueba de 14 días aumentó un 102%.

Otro punto muy importante para mencionar es que "ofrecer una versión gratuita útil y totalmente funcional del producto" es MUY IMPORTANTE. Las pruebas gratuitas totalmente funcionales son efectivas para obtener cobertura de los medios, y esta publicidad para los nuevos proveedores de software y / o software es bastante crucial.

Otro aspecto relevante es la importancia de que los usuarios den su opinión. Tenga en cuenta, en la versión de prueba gratuita totalmente funcional por tiempo limitado, la capacidad de los usuarios de dar su opinión.

Otra característica importante para nuestro software es la necesidad de datos telemétricos, es decir, datos cuantitativos y completos sobre cómo un usuario utiliza nuestro software. Algunas de las estadísticas de uso pueden caer en un área gris legal, ya que las leyes son diferentes dependiendo de la ubicación en los Estados Unidos y el mundo. Una forma de combatir este problema legal es tener una función de suscripción para recopilar estadísticas de uso anónimas. Una función de aceptación significaría darle al usuario la opción de desactivar la recopilación de estadísticas y, al mismo tiempo, el usuario debe ser muy consciente de lo que hace la recopilación de información de uso anónimo. Es importante aclarar al usuario qué datos se recopilarán, qué "nosotros" haremos con ellos y facilitar su desactivación en cualquier momento, lo que incluye permitirles cambiar de opinión para activarlos o desactivarlos. Para obtener estadísticas más detalladas, como el seguimiento de las actividades individuales de los usuarios, podría dar lugar a problemas legales. El IDE de Eclipse registra estadísticas detalladas de uso, pero lo hace con el pleno consentimiento del usuario. Es posible que tengamos que preparar un formulario de consentimiento con nuestro equipo legal.

La recopilación de información de uso de Eclipse recopila esta información: 1. Complementos iniciados por el sistema. 2. Comandos a los que se accede mediante atajos de teclado y acciones invocadas mediante menús o barras de herramientas. 3. Cuando la "vista" del editor se enfoca. 4. Información del sistema como la versión del software que se está utilizando, el sistema operativo que se está utilizando. 5. Descripción de los errores internos.

Interruptor de matar

Se puede administrar un interruptor de interrupción para nuestro software registrando los datos iniciales, cifrándolo con una sal, y cada vez que sea una fecha no válida, es decir, el usuario intentó cambiarlo, deshabilitaría el software. Otra opción es tener autenticación de Internet en la instalación, registrar esa fecha en una base de datos web central y verificar la fecha cada vez que se abre la aplicación.

Al deshabilitar el software, podemos eliminar las DLL vitales. No se puede considerar la opción de tener que pagar para generar un informe.


Estoy interesado en implementar una versión de prueba gratuita para mi software existente. Planeo que el juicio dure 14 días. El día 14, mi software le pedirá al usuario que pague la versión paga o que tenga la consecuencia de no poder usarla. La versión de prueba gratuita está completamente desbloqueada, lo que significa que todas las funciones pagas están ahí.

Sin embargo, mi dilema es sobre la "mejor" forma de implementar qué hacer para una solución de fin de prueba. ¿Elimino archivos DLL vitales? ¿Tiene un sistema de autenticación de usuario después de la instalación o uso? Cifre la hora y fecha de uso iniciales con una sal, y si es una fecha no válida (también tratan de cambiar su fecha inicial), ¿deshabilitará el software?

Estoy interesado en saber cuáles son algunas medidas efectivas para desactivar el software.

theGreenCabbage
fuente
99
Compartir su investigación ayuda a todos. Cuéntanos qué has probado y por qué no satisfizo tus necesidades. Esto demuestra que te has tomado el tiempo para tratar de ayudarte a ti mismo, nos salva de reiterar respuestas obvias y, sobre todo, te ayuda a obtener una respuesta más específica y relevante. También vea Cómo preguntar
mosquito
2
No pudo definir dos puntos: - ¿Contra quién quiere proteger? - ¿Qué define "100% ladrillo"? Te sugiero que elimines ese último requisito de todos modos. ¿Sobrescribiendo su propio ejecutable, llenando la base de datos con basura? - Simplemente copian desde una copia de seguridad y están listos para volver a funcionar.
Jan Doggen
@gnat No hay problema, compartiré la investigación de prueba freemium vs. gratis.
theGreenCabbage
@gnat He agregado mi investigación aquí.
theGreenCabbage
13
Una cosa que no se ha mencionado. Si está vendiendo algo de interés para el público en general (juegos en particular) (no esotérico, software especializado), la facilidad de compra es CRÍTICA . Esta es, en mi humilde opinión, una de las principales razones por las que plataformas como Steam (software de juegos) es tan exitosa. Deberías aceptar casi todos los sistemas de pago posibles. Si tengo que registrarme, solicitar una cotización o completar mi dirección para algo que no tiene un componente físico, es menos probable que me moleste. Tienes que asegurarte de que comprar es menos trabajo que piratear.
Nombre falso el

Respuestas:

92

Aquí hay dos problemas: uno es un problema de programación y otro es un problema de negocios. Para el segundo, preguntar a los programadores sobre análisis de negocios es el mejor consejo que puede obtener de su conductor de autobús local; lo que quiere decir que puede ser bueno o terrible, pero no está preguntando a los expertos, así que no asigne ningún peso inherente a ninguno de ellos. (Como comentario aparte, uno de mis conductores de autobús a menudo me da buenas ideas).

Pero en cuanto a un problema de programación, la desventaja es que parece que a la mayoría de la gente no le gusta la idea. Hay muchas buenas razones para esto, pero no son realmente importantes aquí. Lamentablemente, también somos de alguna manera un grupo terrible de personas para preguntar, porque en virtud de nuestra posición y conocimiento, la mayoría de nosotros somos bastante buenos pirateando software hasta el punto de que creemos que no tiene sentido tratar de implementar medidas de prueba. !

El hecho es que su problema principal es un problema de análisis comercial y experimento de ventas, y no hay respuesta, salvo conocer a sus clientes y experimentar. No parece que ya tenga un gran grupo de clientes con los que hablar sobre la cartera de ventas de sus productos y cómo puede implementar un software de prueba para mejorarlo, por lo que uno debe entender que ahora estamos en una posición de apuñalar ciegamente en la oscuridad . ¡El primer paso para trabajar en una habitación oscura es saber que estás en una!

Entonces, comience en alguna parte. El objetivo no es la respuesta correcta, porque solo puedo garantizar una cosa al 100%: no comenzará con la respuesta correcta. Pero empezar debemos hacerlo.

Dale un beso a tus clientes

Además, "que sea simple, estúpido". O, desde una metodología de programación, "pruebe lo más simple que podría funcionar". Entonces ve desde allí.

Entonces, al instalar, obtenga una fecha. Guárdalo. Obtenga sus datos sobre las instalaciones y el uso, y disfrute de la calidez que puede brindar el análisis de datos. Desactive cualquier parte del software que desee cuando caduque la versión de prueba, le sugiero if (trial_expired()). Entonces ajuste.

En primer lugar, obtenga buenos datos. ¿Espera proporcionar actualizaciones en el futuro para su software? Entonces, si alguien intenta vencer a v1.0, no se preocupe por eso.

Lo más fácil es desinstalar el software y luego reinstalarlo. Nuevo período de prueba (porque su software eliminó esa fecha anterior). ¿Te importa? Si pronto se actualizará v1.0, le sugiero encarecidamente que obtenga una forma de averiguar si esto sucede, pero no intente detenerlos (todavía). Es como las personas que toman 2 mentas en lugar de 1: es solo una menta, déjalo ir. Probablemente no te lo pagarían (todavía), de todos modos.

¿Cómo? Bueno, en Windows esto generalmente se hacía al insertar claves huérfanas aleatorias en el registro y archivos con nombres extraños en varios directorios de instalación comunes. Su instalador fingirá explícitamente que no existen y simplemente los dejará allí. El nivel de sofisticación de la computadora que esto requiere para vencer es mucho más que la desinstalación.

Pero si no intenta evitar que alguien vuelva a instalar, obtendrá los datos que necesitará. Aquí no están robando su tienda, le están dando una valiosa oportunidad para estudiar a un cliente potencial. Úselo para personalizar su marketing, mensajes de ayuda de software, campañas de correo electrónico, "ofertas especiales". Intentaba detectar el evento y luego, un día después, enviarles una clave que podrían ingresar al programa para extender su prueba hasta el próximo mes. Puede encontrar un método que los convierta en clientes que pagan, o no; no hay forma de saber de antemano!

Esto parece trivial, pero seamos sinceros: ¿realmente necesita algo más que eso? Si está recopilando datos, eso vale dinero para usted. Probablemente querrá pasar tiempo asegurándose de que los correos electrónicos sean buenos, diseñando mensajes en el software que pueda actualizar para guiar a los nuevos usuarios (lanzamientos de ventas invisibles, en realidad), reescribiendo la propaganda de su aplicación, solucionando errores que evitarían que cualquier persona cuerda desde comprar su software en primer lugar, etc.

Pero la clave aquí es que se está comunicando con honestidad y claridad a todos los clientes potenciales; si lo desea, debe pagarnos. El hecho de que esté siendo (invisiblemente) magnánimo no significa que se trata de software gratuito: simplemente será inteligente al respecto y no alejará a los clientes porque no han cerrado el trato en las primeras dos semanas.

Si lo piensas bien, estas personas están llegando a tu tienda para ver realmente tu producto. Están realizando una prueba de manejo, sin embargo, no le cuesta (casi) nada. ¡Ninguna tienda exitosa logró eso al expulsar a clientes que aún no estaban listos para comprar! Sin embargo, todos sabemos si puedes obtener algo gratis, para siempre, ¿por qué pagar? Así que usa lo mejor de ambos mundos.

Con cada paso que dé, estará trabajando en un filtro, y si su software es bueno, realizará conversiones con cada paso. Mi simple sugerencia:

1) prueba gratuita de 14 días

2) Extienda la prueba gratuita, sin preguntas

3) Ofrezca extender la prueba gratuita nuevamente, si fuera tan amable de completar un breve formulario que le comunica sus opiniones sobre su software hasta el momento.

4) ¿Está seguro de que estas personas que todavía están usando su software no considerarán comprarlo? Encuentre una manera de atraerlos, o al menos trate de extraerles más información sobre lo que podría hacer para que otros compren. Tal vez les permita 'solicitar' una extensión a través de un formulario, que su personal de ventas amablemente otorgará independientemente y luego usará la información para ver si pueden manejar cualquier objeción que puedan tener para comprar su software.

¿Qué sucede si este usuario lo está evaluando para su uso en todo su departamento? Si la reunión de presupuesto es el próximo mes, ¿realmente desea que no puedan usar el software hasta entonces?

5) Tal vez los corte ahora ... y tal vez los invite a una oferta especial una semana después con un descuento. Tal vez no. Tal vez ofreces extender para dar una extensión final.

Estas personas no le deben dinero, por lo tanto, trátelos como futuros clientes potenciales, no como ladrones, cargadores gratuitos o personas que necesitan pagar su factura o desactivar su servicio. Todo el mundo odia a los cobradores, así que no actúes como tal.

Programáticamente, seamos sinceros, esto no es realmente difícil. Use archivos huérfanos para realizar un seguimiento de las fechas. Si tiene que tener una cuenta válida como a través de iTunes, este seguimiento es mucho más fácil. Si no es necesario, generalmente sugeriría que no lo requiera para una primera instalación: nunca aleje a las personas de la primera versión porque no quieren completar un formulario estúpido. ¡La gente odia las formas! Y no conocen su software, entonces, ¿por qué 'pagar' para completar un formulario si ni siquiera saben si su aplicación funciona?

En el paso 2, obtendría un registro / correo electrónico para extender. Nuevamente, programarlo es trivial.

3) Después de 30 días, probablemente requiera algún tipo de comportamiento de "teléfono a casa". Si la gente va a romper eso, como lo hacen, ¡felicidades, maldiciones y lagrimas! Debes estar volviéndote muy popular. Pero no se preocupe, si este no es un videojuego, a la gente probablemente no le importe lo suficiente como para molestarse, así que simplemente cambie su código en la próxima versión y haga que vuelvan al tablero de dibujo.

TL; DR;

# 1 No resuelva un problema que realmente no tiene (todavía no es Adobe, DRM puede ser simple y efectivo si no lo piensa demasiado). # 2 No le pregunte a un programador cuando necesite preguntarle a un vendedor, analista de negocios o vendedor. # 3 Trate a sus clientes como personas que podrían ganarse la vida, no como personas que le deben dinero, y especialmente no como ladrones. # 4 DRM es muy, muy fácil. Simplemente no piense que va a impedir que las personas usen su software que casi nunca le darán dinero ... al menos, no hoy.

  • He comprado software que he pirateado años después. Así que tampoco cabrees a los futuros clientes innecesariamente.
BrianH
fuente
3
Gracias por la respuesta. Esta respuesta me dio más información que la que se votó más que la suya porque proporcionó más de una solución en lugar de decirme "no es posible, solo cree un buen producto", que francamente no era lo que estaba preguntando.
theGreenCabbage
37
+1 I have bought software I've pirated: más veces de las que puedo contar.
WernerCD
1
+1But as for a programming problem, the downside is that it seems most people don't like the idea to start with. There's lots of good reasons for this, but they aren't really important here. Sadly, we are also in some ways a terrible group of people to ask, because by virtue of our position and knowledge most of us are pretty darn good at pirating software to the point that we think it pointless to try to implement trial measures at all!
Enfriador matemático
2
Sí, +1 a esa declaración final aquí también. Frecuentemente pirateo el software solo para usarlo por un tiempo sin mensajes molestos de "compre una licencia", o peor aún, funciones deshabilitadas o bloqueo de prueba después de un período demasiado corto. Después de unas pocas semanas o meses, si me gusta, siempre pagaré una licencia debido a esa cosa molesta llamada conciencia (y también me gusta apoyar a buenas empresas o buenos desarrolladores independientes, como a veces es el caso). Y si no me gusta el software, dejaré de usarlo, y nadie realmente perdió nada; de todos modos, nunca iba a ser un cliente que paga.
Ben Lee
1
respuesta fantástica! una perspectiva muy agradable, me encantaría ver más empresas tomando
Bernardo Pires
58

Estás buscando algo que es esencialmente imposible. Algunas de las compañías más grandes y mejor financiadas de la industria del software han pasado años, y millones y millones de dólares, buscando una forma de lograr lo que está tratando de hacer, y nunca ha producido resultados exitosos.

En primer lugar, puede olvidarse de arruinar una instalación local. Mientras el instalador original todavía exista (o se pueda hacer una copia de seguridad o volver a descargarlo), eso no es más que un aumento de velocidad. Incluso colocar algo en algún lugar de la configuración del sistema significa muy poco cuando el usuario puede instalar en una VM y luego hacer una copia de seguridad y restaurar toda la imagen de la VM.

El siguiente paso obvio es la autenticación en línea: configure un servidor y haga que el programa "llame a casa" cada vez que comience a verificar las credenciales. Esto tampoco funciona. Primero, se encuentra con un problema obvio (y muy frustrante) de falsos negativos cuando el servidor está inactivo o no se puede acceder por cualquier motivo, o tiene algún problema técnico en su software. Y no puede hacer que el software simplemente valide al usuario automáticamente si no puede llegar al servidor, o es trivial evitar la autenticación con algunos trucos de red, o simplemente usándolo en una máquina con el wifi activado apagado. (Y, por supuesto, esto significa que las personas que intenten usarlo legítimamente con una buena razón para no tener una conexión wi-fi, como llevar su computadora portátil con ellos en el autobús, serán bloqueadas. Eso no hará que nadie como tu programa)

El otro problema con la autenticación en línea es que al final, se reduce a un valor booleano en algún lugar de su código. En algún lugar llama AuthenticateUser()y si regresa True, el usuario está adentro, y si regresa False, están bloqueados. Y no importa lo que haga para cifrar, ofuscar u ocultar el código, al final todo se reduce al simple hecho de que si una computadora puede leerlo en algún momento, también puede hacerlo un programador. Alguien, en algún lugar, producirá una grieta donde AuthenticateUsersiempre regresa True, y lo publicarán en la Web.

El problema fundamental de la criptografía se puede describir como "Alice quiere enviarle una carta a Bob, sin que Charlie pueda leerla incluso si cayera en sus manos". El problema con lo que quieres es que Bob y Charlie son la misma persona, lo que hace que tu meta sea imposible.

Si desea ganar dinero con su software, torcer los brazos de sus usuarios no es la respuesta. Lo que funcionará, lo único que funciona constantemente en estos días, es la teoría básica del mercado: ofrezca un producto que el usuario perciba como un valor mayor para él que el precio que está pidiendo, y estará dispuesto a pagar . Cualquier otra cosa será una pérdida de tiempo y esfuerzo de su parte.

Mason Wheeler
fuente
8
Excelente respuesta y muy informativo! También me gustaría decir que podría lanzar actualizaciones periódicas (características, no solo "arreglos") que harían que el usuario se autentique para obtenerlas. Si crea actualizaciones realmente buenas, los usuarios no se molestarán en piratear si no pueden obtener sus actualizaciones.
L_7337
1
+1 para concisión. Deberías poner en negrita la primera línea y poner un salto horizontal debajo del primer párrafo, porque el 95% de lo que hay que decir existe allí mismo.
Jimmy Hoffa
2
Cuando dice "resultados exitosos", creo que quiere decir que nadie ha producido un software de versión de prueba que contenga todo el código para la versión completa que absolutamente no puede ser pirateado para ser utilizado como una versión completa. ¿Qué sucede si el éxito se define como la producción de un software de prueba que limita el tiempo de uso del software para el 95% de sus usuarios (los que hacen poco o ningún esfuerzo para hacer trampa) y da como resultado una tasa de compra del 5%? Ciertamente eso se ha logrado antes.
pseudocoder
18

Solo mis 2 ¢.

La autodestrucción 100% confiable es imposible. Siempre habrá una forma sofisticada de romper su protección.

Lo que puede hacer es hacer que usar o descifrar una versión de prueba caducada sea más complicado que comprar una versión completa para su mercado objetivo .

Si estuviera en su lugar, trataría de asegurarme de que mi software sea: (1) popular, por lo que todos los interesados ​​al menos lo probaron, y (2) a un precio razonable, para que aquellos que estén dispuestos a pagar puedan comprarlo, y usted entregue una ganancia. El resto de los usuarios pueden jugar con versiones de prueba caducadas: no lo comprarían de todos modos, pero ayudan a la popularidad y proporcionan más contrataciones potenciales para las empresas que realmente compran su software.

Supongo que el mercado objetivo para un complemento de Revit consiste en arquitectos, contratistas de construcción, diseñadores, todas las personas que manejan cantidades relativamente grandes de dinero por contrato, y sin exceso de tiempo libre o experiencia en informática de bajo nivel.

Así que asegúrese de que su versión de prueba caducada los moleste lo suficiente sin romper realmente nada (o lo odiarán). Las personas que necesitan realizar un trabajo eventualmente cederán y pagarán el precio [razonable].

Algunas ideas

  • Haga una versión de prueba de forma rápida (y limpia), desinstálela al vencimiento. La reinstalación debería ser posible, de modo que los usuarios vean su trabajo intacto, seguido de otra desinstalación automática poco después.
  • Deje que la salida de una versión caducada incluya una marca o texto que diga "Hecho con una versión de PRUEBA EXPIRADA de [su software]". Un usuario serio no mostraría tal salida a un cliente. (Y si lo hace, de nuevo, es demasiado barato para pagar su software de todos modos).
  • Haga que una versión de prueba caducada muestre cuadros de mensaje en momentos aleatorios, advirtiendo que la prueba ha caducado y dando un enlace a la versión completa. Tales cosas interrumpen el flujo de trabajo lo suficiente como para que una actualización valga la pena para un usuario serio.

Se puede aplicar cualquier combinación de trucos habituales para marcar una computadora como si tuviera una prueba caducada: claves de registro crípticas, archivos crípticos en ubicaciones aleatorias (no olvide restaurar la marca de tiempo si los modifica), ocultar marcas de tiempo en archivos gráficos no relacionados u otros formas de esteganografía, etc.

Por supuesto, si el usuario, por ejemplo, reinstala el sistema operativo, obtendrá nuevamente un período de prueba gratuito. No importa: un cliente serio difícilmente recurrirá a eso. Por supuesto, este esquema eventualmente se descifrará; asegúrese de que su software sea lo suficientemente popular para entonces que pueda ofrecer una actualización con características atractivas y un esquema de protección diferente.

Como un ejemplo de "inconveniencia-software" muy exitoso, elegiría Balsamiq Mockups. Puede utilizar su software de forma gratuita (en la web), con algunas funciones limitadas, como guardar su trabajo. El trabajo puede ser "exportado" e "importado" de nuevo con cierta molestia. Es decir, cualquier estudiante de secundaria que quiera jugar con la versión gratuita casi completamente funcional puede hacerlo, e incluso puede hacer algún trabajo. El estudiante no lo comprará de todos modos. Pero un diseñador serio que valora su tiempo y conveniencia lo comprará.

Como otro ejemplo muy exitoso, por supuesto, tomaría MS Windows.

9000
fuente
Espero que sea más claro ahora. La idea es 'que todos lo intenten, y el pago realmente interesado'.
9000
5

No es difícil de hacer. Realmente depende de cuánto esfuerzo quieras ponerle.

Recuerde, el propósito de una versión de prueba es aumentar las ventas. En teoría, todos los esquemas de versiones de prueba para software instalable pueden obtenerse de alguna manera, incluso si implica un esfuerzo tremendo, ya que el código se ejecuta localmente y, por lo tanto, puede editarse con un editor hexadecimal. Esta respuesta funciona desde el supuesto de que el póster original pregunta por soluciones prácticas a este problema comercial, no teóricas.

Como uno de los otros carteles mencionados, el objetivo es asegurarse de que el esfuerzo involucrado en eludir el esquema de la versión de prueba exceda el costo en términos de tiempo y esfuerzo que el costo de comprar el software. Los 'piratas' dedicados simplemente descargarán versiones pre-craqueadas de su software usando BitTorrent . No se preocupe por ellos, ya que de todos modos no serían clientes. Los enfoques a continuación han sido adoptados por innumerables compañías de software durante décadas, y siempre que no esté paralizado por la noción de que tales sistemas deben ser teóricamente perfectos, encontrará que funcionan bastante bien en el mundo real.

En el nivel más simple, simplemente podría mantener una 'ventana' de fecha de inicio / fecha de finalización en el registro (encriptada). Cada vez que se ejecuta el programa, verifica que la hora del sistema esté entre esas dos fechas y actualiza el componente 'inicio' de esa fecha. Eso evita que el usuario ocasional simplemente regrese el reloj para permitir el acceso a la versión de prueba.

Puede extender esto haciendo un seguimiento de esa ventana de tiempo en varias ubicaciones (tanto en el registro como en la carpeta de datos de su aplicación) y asegurándose de que coincidan en cada inicio. Eso evita que las personas sigan jugando con las entradas: tienen que saber exactamente dónde están y cómo desencriptar / cifrar los datos.

También hay una serie de otras formas de ajustar las cosas, que estoy seguro de que encontrará al comenzar a desarrollar la funcionalidad de prueba.

Si no desea hacer todo esto usted mismo, hay bastantes bibliotecas de terceros que ofrecen este tipo de funcionalidad.

Nota sobre la eliminación de archivos: si su aplicación intenta eliminar archivos, el software antivirus del usuario puede marcarlo como malware. El software antivirus es muy agresivo en estos días. Y muchos usuarios finales estarán convencidos de que hay un virus en su software si su programa antivirus genera una alerta.

Gran maestro B
fuente
Curioso por qué esto tendría un voto negativo, ya que he usado esta técnica con éxito durante muchos años en software comercial.
GrandmasterB
¿Por qué se rechazó esta respuesta? Me gustaría ver el razonamiento.
theGreenCabbage
¿Me puede decir más sobre cómo implementó esto y qué tan bien funcionó? ¿Qué hizo cuando se viola la condición de cambio de fecha? ¿"Deshabilitó" o "mató" las funciones / la aplicación en sí?
theGreenCabbage
2
Esto sería derrotado simplemente instalando el programa en una nueva máquina / VM cuando expire el original.
Dan Lyons
77
Voté por razones de precisión objetiva, porque usted afirmó que algo imposible "en realidad no es difícil de hacer".
Mason Wheeler
1

Depende de cuán duro quiera que sea para que sus clientes potenciales eludan esas características de autodeshabilitación (suena mejor que "autodestrucción"). Asumiendo que sus clientes potenciales no intentarán manipular el código del programa en sí (que algunos de ellos intentarán, confíen en mí), tiene las siguientes opciones:

  • guarde la fecha y hora iniciales en algún lugar (oculto) de la computadora donde está instalado su software: esto tiene el inconveniente de que sus clientes pueden evitarlo fácilmente, por ejemplo, instalando su programa en una máquina virtual y desinstalándolo después del período de prueba restablecer la VM a su estado original

  • asegúrese de que cada copia descargada de su programa tenga un tiempo de descarga individual codificado en algún lugar oculto en el código binario del programa. Esto requerirá mucho más esfuerzo administrativo de su parte, y aún no puede estar seguro de que la misma persona no descargue una nueva copia del programa de su servidor después del período de prueba (tal vez, utilizando una identidad diferente)

  • entregar la versión de prueba solo con un "dongle" donde se almacena el final del período de prueba. Esto solo será factible para programas con un puñado de clientes potenciales y un precio mucho más alto que el precio del dongle.

  • haga que la cosa sea una aplicación web, o partes de ella, o simplemente una aplicación conectada a la web. En este caso, puede almacenar la fecha inicial en su servidor, pero deberá identificar y distinguir a las personas que utilizan su software (por ejemplo, configurando cookies o creando un inicio de sesión). Pero, de nuevo, no puede estar 100% seguro de que las personas no cambien su identidad.

Doc Brown
fuente
"estás jodido", "estás jodido" y "estás muy jodido"? No creo que esto dé una solución real. ¿Por qué no un modelo DRM-ish donde necesita iniciar sesión para usar el programa y la fecha se almacena en el lado del servidor?
Elias
2
@Elias El software que estoy creando es un complemento integral de análisis de materiales para Revit, que pronto se implementará junto con la propia tienda de aplicaciones de Autodesk. Actualmente no estoy seguro de qué tipo de telemetría, control o información del usuario nos proporcionará la tienda de aplicaciones de Autodesk, por lo que si bien tengo autenticación web en la instalación / uso, no creo que sea implementable.
theGreenCabbage
1
@Elias: gracias por la sugerencia, pero "iniciar sesión" en un servidor significa la verificación de identidad, y las identidades se pueden cambiar.
Doc Brown
@DocBrown, se pueden cambiar en ciertas situaciones, pero supongo que con Revit \ Autodesk's Application Store, hay un inicio de sesión único por cliente de ese producto. Aunque, según el comentario de theGreenCabbage, es muy posible que no se pueda acceder a estos datos, lo que hace que mi comentario original sea falso.
Elias
0

Hagas lo que hagas, asegúrate de probar lo que sucede más allá de la fecha de vencimiento con mucho cuidado. Una vez trabajé para una empresa que distribuía software con un esquema de prueba muy similar al que usted describe. La diferencia era que el vencimiento era una fecha fija en el futuro.

Dejamos el esquema inmediatamente después de recibir una tonelada de llamadas de clientes enojados cuando sus versiones legítimamente compradas también dejaron de funcionar en esa fecha.

AShelly
fuente