Comment pourrais-je implémenter une fonctionnalité «d'autodestruction» dans la version d'évaluation gratuite de mon logiciel?


52

Il existe un argument récurrent entre un essai gratuit et un modèle freemium (c'est-à-dire une version à vie du logiciel avec des fonctionnalités restreintes et / ou simplifiées) pour permettre aux clients et utilisateurs potentiels de tester le produit. À la suite de mes recherches, je peux conclure que l’essai gratuit est le moyen de continuer, à la fois pour le bénéfice de l’expérience utilisateur de l’utilisateur utilisant le logiciel et pour le bénéfice du fournisseur, à la fois en termes de vente et de maximisation de l’utilisation. Un logiciel d’essai gratuit comporte de nombreux facteurs qui peuvent considérablement maximiser l’utilisation par les utilisateurs, comme la durée de l’essai gratuit.

Un mot clé qui revient dans mes recherches sur "freemium" est "frustrant". De nombreuses personnes ont choisi de désinstaller le logiciel au lieu de devoir utiliser un logiciel où certaines fonctionnalités ne leur étaient pas disponibles. Dans le même temps, ces utilisateurs n’ont jamais eu la possibilité d’utiliser les fonctionnalités "payantes". À leur insu, et cachés par les propres fournisseurs qui vendent le logiciel, ils ne savent pas et ne peuvent pas savoir quels avantages les fonctionnalités Pro apporteront. Sans avoir à les utiliser au préalable, un utilisateur ne saura pas qu'il a le sentiment de "devoir" quelque chose. Ce qui m'amène au point suivant d'un modèle d'essai gratuit.

Certains avis d'un utilisateur d'essai gratuit sont "Je ne peux pas imaginer utiliser ce logiciel sans les fonctionnalités Pro." Cela remonte au point où "l'utilisateur ne sait pas qu'il a besoin de quelque chose avant d'avoir compris le sentiment de l'avoir". Ceux qui ont eu 14 jours pour utiliser la "version complète" de fonctionnalités ont dit qu’ils ne pouvaient pas imaginer ne pas avoir ou utiliser les fonctionnalités fournies. Ainsi, à l'issue des quatorze jours, ils risquaient davantage de dépenser de l'argent que ceux qui n'avaient jamais expérimenté toutes les fonctionnalités. La durée de l'essai gratuit est également un facteur important qui crée une impression durable sur les utilisateurs. Dans une expérience menée par Visual Website Optimizer, ils ont constaté que pour un essai gratuit de 14 jours par rapport à un essai gratuit de 30 jours, alors que le nombre d'inscriptions et d'installations était identique, l'utilisation de l'essai à 14 jours augmentait de 102%.

Un autre point très important à mentionner est TRÈS IMPORTANT: "offrir une version gratuite utile et pleinement fonctionnelle du produit". Des essais gratuits entièrement fonctionnels sont efficaces pour obtenir une couverture médiatique, et cette publicité pour les nouveaux logiciels et / ou les fournisseurs de logiciels est assez cruciale.

Un autre aspect pertinent est l'importance pour les utilisateurs de donner leur avis. Dans l’essai gratuit entièrement fonctionnel et limité dans le temps, envisagez la possibilité pour les utilisateurs de donner leur avis.

Une autre caractéristique importante pour notre logiciel est le besoin de données télémétriques, c'est-à-dire de données quantitatives et complètes sur la manière dont un utilisateur utilise notre logiciel. Certaines statistiques d'utilisation peuvent tomber dans une zone grise juridique, car les lois varient en fonction de la situation géographique aux États-Unis et dans le monde. Un moyen de lutter contre ce problème juridique consiste à disposer d’une fonctionnalité d’acceptation permettant de collecter des statistiques d’utilisation anonymes. Une fonctionnalité d’inclusion signifierait donner à l’utilisateur une option pour désactiver la collecte de statistiques et, dans le même temps, l’utilisateur doit être parfaitement au courant de ce que la collecte d’informations d’utilisation anonymes fait. Il est important d'indiquer clairement à l'utilisateur quelles données seront collectées, ce que "nous" en ferons, et qu'il est facile de les désactiver à tout moment, notamment en leur permettant de changer d'avis pour les activer ou les désactiver. Pour des statistiques plus détaillées, telles que le suivi des activités individuelles des utilisateurs, des problèmes juridiques risquent de se poser. Eclipse IDE enregistre des statistiques d'utilisation détaillées, mais avec l'accord de l'utilisateur. Il se peut que nous devions éventuellement préparer un formulaire de consentement avec notre équipe juridique.

La collection d'informations d'utilisation Eclipse collecte ces informations: 1. Les plug-ins démarrés par le système. 2. Commandes accessibles via les raccourcis clavier et actions invoquées via des menus ou des barres d'outils. 3. Lorsque la "vue" de l'éditeur est activée. 4. Les informations système telles que la version du logiciel utilisé, le système d'exploitation utilisé. 5. Description des erreurs internes.

Antidémarreur

Un kill switch pour notre logiciel peut être géré en enregistrant les données initiales, en les cryptant avec un sel, et chaque fois que la date est invalide, c’est-à-dire que l’utilisateur tente de la modifier, le logiciel est désactivé. Une autre option consiste à disposer d’une authentification Internet lors de l’installation, à consigner cette date dans une base de données Web centrale et à vérifier la date chaque fois que l’application est ouverte.

En désactivant le logiciel, nous pouvons supprimer les DLL essentielles. L'option de devoir payer pour générer un rapport ne peut pas être envisagée.


Je suis intéressé par la mise en œuvre d'une version d'évaluation gratuite de mon logiciel existant. Je prévois que le procès dure 14 jours. Le 14e jour, mon logiciel inciterait l'utilisateur à payer pour la version payante ou à ne pas pouvoir l'utiliser. La version d'essai gratuite est entièrement déverrouillée, ce qui signifie que toutes les fonctionnalités payantes sont là.

Cependant, mon dilemme concerne le "meilleur" moyen d'implémenter ce qu'il faut faire pour une solution de fin d'essai. Est-ce que je supprime des DLL vitales? Avez-vous un système d'authentification d'utilisateur lors de l'installation ou de l'utilisation? Crypter l'heure initiale et la date d'utilisation avec un sel, et si c'est une date invalide (AKA essaie de changer leur date initiale), désactiver le logiciel?

Je voudrais savoir quelles sont les mesures efficaces pour désactiver les logiciels.


9
Partager vos recherches aide tout le monde. Dites-nous ce que vous avez essayé et pourquoi il ne répondait pas à vos besoins. Cela montre que vous avez pris le temps d'essayer de vous aider, que cela nous évite de réitérer des réponses évidentes et, surtout, que cela vous aide à obtenir une réponse plus précise et plus pertinente. Voir aussi Comment poser une question?
Gnat

2
Vous n'avez pas défini deux points: - contre qui voulez-vous vous protéger? - Qu'est-ce qui définit "100% en brique"? Je vous suggère de supprimer cette dernière exigence de toute façon. Remplacer votre propre exécutable, remplir la base de données avec des ordures? - Ils viennent de copier à partir d'une sauvegarde et sont prêts à recommencer.
Jan Doggen

@gnat Pas de problème, je vais partager le freemium contre la recherche d'essai gratuite.
theGreenCabbage

@gnat j'ai ajouté mes recherches à ici.
theGreenCabbage

13
Une chose qui n'a pas été mentionnée. Si vous vendez quelque chose d’intéressant pour le grand public (jeux en particulier) (pas de logiciel ésotérique, spécialisé), la facilité d’achat est CRITIQUE . C’est, à mon humble avis, l’une des principales raisons pour lesquelles les plates-formes comme Steam (logiciel de jeu) ont tant de succès. Vous devriez accepter presque tous les systèmes de paiement possibles. Si je dois m'inscrire, demander un devis ou renseigner mon adresse pour quelque chose qui ne contient pas de composant physique, je risque moins de m'embêter. Vous devez vous assurer que les achats représentent moins de travail que de piratage.
Nom

Réponses:


92

Il y a deux problèmes ici: l'un est un problème de programmation et l'autre, un problème commercial. Pour le second, interroger les programmeurs sur l'analyse commerciale est un des meilleurs conseils que vous pouvez obtenir auprès de votre chauffeur de bus local; c'est-à-dire que cela peut être bon ou terrible, mais vous ne posez pas la question à des experts, n'attribuez donc aucun poids inhérent à cela. (En passant, un de mes chauffeurs de bus me donne souvent de bonnes idées.)

Mais s’agissant d’un problème de programmation, l’inconvénient est qu’il semble que la plupart des gens n’apprécient pas l’idée de départ. Il y a beaucoup de bonnes raisons pour cela, mais elles ne sont pas vraiment importantes ici. Malheureusement, nous sommes aussi à certains égards un groupe de personnes redoutables à poser, car, en raison de notre position et de nos connaissances, la plupart d’entre nous sommes plutôt doués pour pirater des logiciels au point que nous pensons qu’il est inutile d’essayer de mettre en œuvre des mesures à titre expérimental. !

En réalité, votre problème principal est un problème d’analyse commerciale et d’expérimentation, et il n’ya pas de solution de rechange à part la connaissance de vos clients et l’expérimentation. Il ne semble pas que vous ayez déjà un grand nombre de clients avec qui parler de leur pipeline de ventes de produits et de la façon dont vous pouvez implémenter un logiciel d'essai pour l'améliorer. Il faut donc comprendre que nous sommes maintenant en position de poignarder aveuglément dans le noir. . La première étape pour travailler dans une pièce sombre est de savoir que vous êtes dans la même pièce !

Alors, commencez quelque part. L'objectif n'est pas la bonne réponse, car je ne peux garantir à 100% qu'une chose - vous n'allez pas commencer par la bonne réponse. Mais nous devons commencer.

Donnez à vos clients un baiser

En outre, "restez simple, stupide." Ou, à partir d’une méthodologie de programmation, "essayez la chose la plus simple qui puisse fonctionner". Ensuite, partez de là.

Donc, lors de l'installation, obtenez une date. Le ranger. Obtenez vos données sur les installations et l'utilisation, et profitez de la chaleur que peut apporter l'analyse des données. Désactivez la partie du logiciel que vous voulez quand le procès arrive à expiration - je suggère if (trial_expired()). Puis ajustez.

Tout d’abord, obtenez de bonnes données. Vous attendez-vous à fournir des mises à jour à l'avenir pour votre logiciel? Ensuite, si quelqu'un essaie de battre la v1.0, ne vous inquiétez pas.

Le plus simple est de désinstaller le logiciel, puis de le réinstaller. Nouvelle période d'essai (car votre logiciel a supprimé cette ancienne date). Ça t'intéresse? Si la v1.0 doit bientôt être mise à jour, je vous suggère fortement de trouver un moyen de savoir si cela se produit, mais n'essayez pas de l'arrêter (pour le moment). C'est comme les gens qui prennent 2 bonbons à la menthe au lieu de 1 - c'est juste une menthe, laissez-le aller. De toute façon, ils ne vont probablement pas vous payer pour cela.

Comment? Dans Windows, cela se faisait généralement en plaçant des clés orphelines au hasard dans le registre et des fichiers nommés de manière étrange dans divers répertoires d'installation courants. Votre installateur prétendra explicitement qu’il n’existe pas et les laissera simplement là. Le niveau de sophistication informatique nécessaire pour vaincre est bien plus que la désinstallation.

Mais si vous n'essayez pas d'empêcher quelqu'un de réinstaller, vous obtenez alors les données dont vous aurez besoin. Ils ne vous volent pas votre magasin, ils vous donnent une occasion précieuse d’étudier un client potentiel. Utilisez-le pour personnaliser votre marketing, vos instructions d’aide logicielle, vos campagnes par e-mail et vos "offres spéciales". J'essayais de détecter l'événement et un jour plus tard, je leur envoyais une clé qui leur permettrait d'entrer dans le programme afin de prolonger leur procès jusqu'au mois prochain. Vous pouvez trouver une méthode qui les transforme en clients payants ou non; aucun moyen de savoir à l'avance!

Cela semble anodin, mais voyons les choses en face: avez-vous vraiment besoin de plus que cela? Si vous collectez des données, cela vous vaudra de l'argent. Vous voudrez probablement consacrer du temps à vérifier que les e-mails sont corrects, à concevoir une messagerie logicielle que vous pouvez mettre à jour pour guider les nouveaux utilisateurs (des argumentaires de vente invisibles, vraiment), à réécrire le texte de votre application, à éliminer des bugs qui empêcheraient toute personne sensée de l'achat de votre logiciel en premier lieu, etc.

Mais la clé ici est que vous communiquez honnêtement et clairement avec tous les clients potentiels - si vous le souhaitez, vous devriez nous payer. Ce n'est pas parce que vous êtes magnanime (de manière invisible) que vous utilisez un logiciel gratuit. Vous allez être intelligent et ne pas chasser les clients, car ils n'ont pas conclu la transaction dans les deux premières semaines.

Si vous y réfléchissez, ces personnes se rendent dans votre magasin pour examiner réellement votre produit. Ils font un essai, mais cela ne vous coûte presque rien. Aucun magasin n'a réussi de la sorte en chassant les clients qui n'étaient pas encore prêts à acheter! Pourtant, nous savons tous que si vous pouvez obtenir quelque chose gratuitement, pour toujours, pourquoi payer? Alors utilisez le meilleur des deux mondes.

Vous travaillerez avec un filtre à chaque étape. Si votre logiciel est bon, vous effectuerez des conversions à chaque étape. Ma simple suggestion:

1) Essai gratuit de 14 jours

2) Prolonger l'essai gratuit, sans poser de questions

3) Proposez de prolonger à nouveau l'essai gratuit, s'ils ont la gentillesse de remplir un court formulaire qui vous communique leurs opinions sur votre logiciel jusqu'à présent.

4) Etes-vous sûr que ceux qui utilisent encore votre logiciel n'envisagent pas de l'acheter? Trouvez un moyen de les attirer - ou au moins, essayez de leur donner plus d'informations sur ce que vous pourriez faire pour amener les autres à acheter. Peut-être leur permettre de "demander" une extension via un formulaire, ce que votre service commercial leur accordera de bien vouloir utiliser, puis d'utiliser les informations pour voir s'ils peuvent faire face aux éventuelles objections qu'ils pourraient avoir à l'achat de votre logiciel.

Que se passe-t-il si cet utilisateur évalue son utilisation dans l'ensemble de son service? Si la réunion budgétaire a lieu le mois prochain, voulez-vous vraiment qu’ils ne puissent pas utiliser le logiciel avant cela?

5) Peut-être que vous les coupez maintenant ... et peut-être que vous les invitez pour une offre spéciale une semaine plus tard à un rabais. Peut être pas. Peut-être que vous proposez d'étendre pour donner une dernière extension.

Ces personnes ne vous doivent pas d'argent. Traitez-les donc comme de futurs clients, et non comme des voleurs, des pigistes ou des personnes qui doivent payer leur facture ou faire désactiver leur service. Tout le monde déteste les collectionneurs de factures, alors n'agissez pas comme tel.

Par programmation, avouons-le, ce n’est pas vraiment difficile. Utilisez des fichiers orphelins pour suivre les dates. Si vous devez avoir un compte valide, par exemple via iTunes, ce suivi est beaucoup plus simple. Si ce n'est pas nécessaire, je vous conseillerais généralement de ne pas en faire une première installation. Ne détournez jamais les utilisateurs de la première version, car ils ne souhaitent pas remplir un formulaire stupide. Les gens détestent les formes! Et comme ils ne connaissent pas votre logiciel, pourquoi «payer» pour remplir un formulaire s'ils ne savent même pas si votre application fonctionne?

À l'étape 2, j'aurais une inscription / un courriel à prolonger. Encore une fois, la programmation est triviale.

3) Après 30 jours, j'aurais probablement besoin d'une sorte de comportement de «téléphone à la maison». Si les gens craquent, comme ils le font, des félicitations! Vous devez devenir assez populaire. Mais ne vous inquiétez pas, s'il ne s'agit pas d'un jeu vidéo, les gens ne s'en soucient probablement pas assez. Changez donc votre code dans la version suivante et faites-les revenir à la planche à dessin.

TL; DR;

# 1 Ne résolvez pas un problème que vous n’avez pas vraiment (vous n'êtes pas encore Adobe - la gestion numérique des droits peut être simple et efficace si vous n’y pensez pas trop). # 2 Ne demandez pas à un programmeur quand vous devez demander à un spécialiste du marketing, à un analyste commercial ou à un vendeur. # 3 Traitez vos clients comme des personnes qui pourraient vous faire vivre, pas comme des personnes qui vous doivent de l'argent, et surtout pas comme des voleurs. Le DRM n ° 4 est vraiment très facile. Ne pensez tout simplement pas que vous allez empêcher les gens d’utiliser votre logiciel qui ne vous donnera presque certainement jamais, jamais, jamais d’argent ... du moins, pas aujourd’hui.

  • J'ai acheté un logiciel que j'ai piraté, des années plus tard. Alors, n'énervez pas les futurs clients inutilement non plus.

3
Merci d'avoir répondu. Cette réponse m’a apporté plus de perspicacité que celle dont le vote a été supérieur à celui de la vôtre, car elle a fourni davantage de solution que de me dire «c’est impossible, il suffit de créer un bon produit», ce qui n’était franchement pas ce que je demandais.
theGreenCabbage

37
+1 I have bought software I've pirated- plus de fois que je peux compter.
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!
Math Chiller

2
Oui, +1 à cette déclaration finale ici aussi. Je pirate fréquemment des logiciels juste pour les utiliser pendant un moment sans aucun message ennuyant du type "achète une licence", ou pire, des fonctionnalités désactivées ou un verrou d'essai après une période trop courte. Après quelques semaines ou quelques mois, si cela me convient, je paierai toujours une licence à cause de cette chose lancinante appelée conscience (et j'aime aussi soutenir de bonnes entreprises, ou de bons développeurs indépendants, selon le cas). Et si je n'aime pas le logiciel, je vais cesser de l'utiliser et personne n'a vraiment perdu quelque chose - de toute façon, je ne serais jamais un client payant.
Ben Lee

1
réponse fantastique! une très belle perspective j'aimerais voir plus d'entreprises prendre
Bernardo Pires

58

Vous cherchez quelque chose qui est essentiellement impossible. Certaines des sociétés les plus importantes et les mieux financées du secteur du logiciel ont passé des années, et des millions de dollars, à chercher le moyen d'accomplir ce que vous tentez de faire, et cela n'a jamais abouti à des résultats positifs.

Tout d'abord, vous pouvez oublier de bousiller une installation locale. Tant que le programme d'installation d'origine existe toujours (ou peut être sauvegardé, ou re-téléchargé), ce n'est rien d'autre qu'un ralentisseur. Même placer quelque chose quelque part dans les paramètres système signifie très peu lorsque l'utilisateur peut installer sur une machine virtuelle, puis sauvegarder et restaurer toute l'image de la machine virtuelle.

La prochaine étape évidente est l’authentification en ligne: configurez un serveur et demandez au programme de "rappeler à la maison" chaque fois que celui-ci commence à vérifier les informations d’identité. Cela ne fonctionne pas non plus. Tout d’abord, vous rencontrez un problème évident (et très frustrant) de faux négatifs lorsque le serveur est en panne ou inaccessible pour une raison quelconque, ou que son logiciel présente un problème. Et vous ne pouvez pas forcer le logiciel à valider automatiquement l'utilisateur s'il ne peut pas accéder au serveur, ou il est trivial de contourner l'authentification avec quelques astuces de mise en réseau, ou tout simplement en l'utilisant sur une machine avec le Wi-Fi activé de. (Et bien sûr, cela signifie que les personnes qui tentent de l'utiliser légitimement avec une bonne raison de ne pas avoir de connexion Wi-Fi, comme amener leur ordinateur portable dans l'autobus, seront verrouillées. Cela ne fera que personne comme votre programme.)

L'autre problème avec l'authentification en ligne est qu'à la fin, cela revient à un booléen quelque part dans votre code. Quelque part il appelle AuthenticateUser()et s'il revient True, l'utilisateur est présent, et s'il retourne False, il est verrouillé. Et peu importe ce que vous faites pour chiffrer, masquer ou cacher le code, cela revient au simple fait que si un ordinateur peut le lire à un moment donné, un programmeur le peut aussi. Quelqu'un, quelque part, va produire une fissure où AuthenticateUseril revient toujours True, et ils la mettront sur le Web.

Le problème fondamental de la cryptographie peut être décrit comme suit: "Alice veut envoyer une lettre à Bob, sans que Charlie puisse la lire, même si elle devait tomber entre ses mains". Le problème avec ce que vous voulez, c'est que Bob et Charlie sont la même personne, ce qui rend votre objectif impossible.

Si vous voulez gagner de l'argent avec votre logiciel, tordre les bras de vos utilisateurs n'est pas la solution. Ce qui fonctionnera, et la seule chose qui fonctionne régulièrement de nos jours, est la théorie de base du marché: proposer un produit que l'utilisateur perçoit comme ayant une plus grande valeur que le prix que vous lui demandez, et qu'il sera prêt à payer. . Tout le reste sera simplement une perte de temps et d’effort de votre part.


8
Excellente réponse et très informative! J'aimerais également dire que vous pouvez publier des mises à jour régulières (fonctionnalités, pas seulement des "correctifs") qui permettraient à l'utilisateur de s'authentifier pour les obtenir. Si vous créez de très bonnes mises à jour, les utilisateurs ne s'ennuieront pas du piratage au hasard, ils ne pourront pas obtenir vos mises à jour.
L_7337

1
+1 pour la concision. Vous devriez mettre la première ligne en gras et mettre une pause horizontale dans le premier paragraphe, car 95% de ce qui doit être dit existe tout de suite.
Jimmy Hoffa

2
Quand vous parlez de "résultats positifs", je pense que vous voulez dire que personne n’a produit une version d’essai du logiciel contenant tout le code de la version complète qui ne peut absolument pas être piraté pour pouvoir être utilisée comme version complète. Que se passera-t-il si le succès est défini comme la production d’un logiciel d’essai qui limite l’utilisation du logiciel à 95% de ses utilisateurs (ceux qui font peu ou pas d’efforts pour tricher) et qui se traduit par un taux d’achat de 5%? Cela a certainement été réalisé auparavant.
Pseudocoder

18

Juste mes 2 ¢.

Une autodestruction fiable à 100% est impossible. Il y aura toujours un moyen sophistiqué de casser votre protection.

Ce que vous pouvez faire est de rendre l'utilisation ou la suppression d'un essai expiré plus compliquée que d'acheter une version complète pour votre marché cible .

Si j'étais à votre place, j'essaierais de m'assurer que mon logiciel est: (1) populaire, afin que tout le monde intéressé puisse au moins l'essayer, et (2) à un prix raisonnable, afin que ceux qui sont disposés à payer puissent l'acheter, un bénéfice. Le reste des utilisateurs peut jouer avec les essais expirés à sa guise: ils ne l'achèteraient pas de toute façon, mais ils contribueraient à la popularité et fourniraient davantage d'embauches potentielles aux entreprises qui achètent réellement votre logiciel.

Je suppose que le marché cible d'un plug-in Revit comprend les architectes, les entrepreneurs en construction, les concepteurs, toutes les personnes qui gèrent des montants relativement importants par contrat et sans excès de temps libre ou de compétences informatiques de bas niveau.

Assurez-vous donc que votre version d'évaluation expirée les agace suffisamment sans rien casser (sinon ils vous détesteront). Les personnes qui ont besoin de travail finissent par céder et payent le prix [raisonnable].

Quelques idées:

  • Faites une version d'évaluation rapidement (et proprement) se désinstaller à l'expiration. La réinstallation devrait être possible pour que les utilisateurs voient leur travail intact, suivie d'une autre désinstallation automatique peu de temps après.
  • Laissez la sortie d’une version arrivée à expiration inclure une marque ou un texte disant "Fabriqué avec une version EXPIRED TRIAL de [votre logiciel]". Un utilisateur sérieux ne montrerait pas une telle sortie à un client. (Et s'il le fait, encore une fois, il est trop bon marché pour payer votre logiciel de toute façon).
  • Faites en sorte que la version d'essai expirée affiche des boîtes de message à des moments aléatoires, avertissant que la période d'essai est expirée et donnant un lien vers la version complète. Ces tâches interrompent suffisamment le flux de travail pour qu'une mise à niveau en vaille la peine pour un utilisateur sérieux.

Toute combinaison d’astuces usuelles peut être appliquée pour marquer un ordinateur comme ayant un essai arrivé à expiration: clés de registre cryptées, fichiers cryptés situés à des emplacements aléatoires (n'oubliez pas de restaurer l’horodatage si vous les modifiez), masquage des horodatages dans des fichiers graphiques non liés ou autres. formes de stéganographie, etc.

Bien entendu, si l'utilisateur réinstalle par exemple le système d'exploitation, il bénéficiera à nouveau d'une période d'essai gratuite. Qu'à cela ne tienne: un client sérieux n’y aura guère recours. Bien sûr, ce projet finira par être craqué; Assurez-vous que votre logiciel est suffisamment populaire pour pouvoir proposer une mise à niveau avec des fonctionnalités convaincantes et un système de protection différent.

À titre d’exemple de «produit de dérangement» très réussi, je choisirais des maquettes Balsamiq. Vous pouvez utiliser leur logiciel gratuitement (sur le Web), avec certaines fonctionnalités limitées, notamment la sauvegarde de votre travail. Le travail peut être "exporté" et "importé" en arrière avec quelques tracas. Autrement dit, tout élève du secondaire qui souhaite jouer avec la version gratuite presque entièrement fonctionnelle peut le faire et peut même avoir du travail à faire. L'étudiant ne l'achètera pas de toute façon. Mais un designer sérieux qui valorise son temps et sa commodité l'achètera.

Comme autre exemple très réussi, je prendrais bien sûr MS Windows.


J'espère que c'est plus clair maintenant. L'idée est "laissez tout le monde essayer et le salaire réellement intéressé".
9000

5

Ce n'est pas difficile à faire. Cela dépend vraiment de l'effort que vous souhaitez y consacrer.

N'oubliez pas que le but d'une version d'évaluation est d'augmenter les ventes. Tous les schémas de version d'évaluation des logiciels installables peuvent théoriquement être contournés, même si cela nécessite un effort considérable, car le code est exécuté localement et peut donc être édité avec un éditeur hexadécimal. Cette réponse part du principe que l’affiche originale demande des solutions pratiques à ce problème commercial, et non des considérations théoriques.

Comme l’une des autres affiches mentionnées, il s’agit de s’assurer que les efforts nécessaires pour contourner le schéma de version d’essai dépassent le coût en temps et en efforts par rapport au coût d’achat du logiciel. Les «pirates» dédiés téléchargeront simplement des versions pré-fissurées de votre logiciel à l'aide de BitTorrent . Ne vous inquiétez pas pour eux, car ils ne seraient pas des clients de toute façon. Les approches ci-dessous ont été adoptées par d'innombrables éditeurs de logiciels pendant des décennies, et tant que vous n'êtes pas gêné par la notion que de tels systèmes doivent être théoriquement parfaits, vous constaterez qu'ils fonctionnent assez bien dans le monde réel.

Au niveau le plus simple, vous pouvez simplement conserver une "fenêtre" de date de début / heure de fin dans le registre (chiffrée). Chaque fois que le programme s'exécute, vous vérifiez que l'heure système se situe entre ces deux dates et mettez à jour le composant "démarrer" de cette date. Cela empêche l'utilisateur occasionnel de simplement remettre l'horloge en arrière pour permettre l'accès à la version d'évaluation.

Vous pouvez étendre cela en gardant une trace de cette fenêtre temporelle à plusieurs emplacements (à la fois dans le registre et dans le dossier de données de votre application), et en vérifiant qu'elles correspondent à chaque démarrage. Cela empêche les gens de singer avec les entrées - ils doivent savoir exactement où ils se trouvent et comment déchiffrer / chiffrer les données.

Il existe un certain nombre d'autres moyens de restreindre les choses également, et je suis sûr que vous les rencontrerez lorsque vous commencerez à développer la fonctionnalité d'essai.

Si vous ne voulez pas tout faire vous-même, il existe de nombreuses bibliothèques tierces offrant ce type de fonctionnalité.

Remarque concernant la suppression effective de fichiers: si votre application tente de supprimer des fichiers, il est possible que celui-ci soit identifié comme un programme malveillant par le logiciel antivirus de l'utilisateur. Les logiciels anti-virus sont très agressifs ces jours-ci. Et de nombreux utilisateurs finaux seront convaincus de la présence d'un virus dans votre logiciel si leur programme antivirus affiche une alerte.


Je suis curieux de savoir pourquoi cela aurait un vote négatif, car je l’utilise avec succès depuis de nombreuses années dans des logiciels commerciaux.
GrandmasterB

Pourquoi cette réponse a-t-elle été votée? J'aimerais voir le raisonnement.
theGreenCabbage

Pouvez-vous m'en dire plus sur la manière dont vous avez implémenté cela et comment cela a fonctionné? Qu'avez-vous fait lorsque la condition de changement de date est violée? At-il "désactiver" ou "tuer" les fonctionnalités / l'application elle-même?
theGreenCabbage

2
Cela serait vaincu simplement en installant le programme sur une nouvelle machine / VM à l'expiration de l'original.
Dan Lyons

7
J'ai voté à la baisse pour des raisons de précision factuelle, parce que vous avez prétendu que quelque chose d'impossible n'est en réalité "pas difficile à faire".
Mason Wheeler

1

Cela dépend de la difficulté avec laquelle vous voulez empêcher vos clients potentiels de contourner les fonctionnalités auto-désactivantes (sonne mieux que "l'autodestruction"). En supposant que vos clients potentiels n'essayent pas de manipuler le code du programme lui-même (certains d'entre eux essayeront, croyez-moi), vous disposez des options suivantes:

  • stocker la date initiale quelque part (cachée) sur l'ordinateur sur lequel votre logiciel est installé: cela présente l'inconvénient que vos clients peuvent facilement le contourner, par exemple en installant votre programme sur une machine virtuelle et en le désinstallant après la période d'essai par réinitialiser la VM à son état d'origine

  • assurez-vous que chaque copie téléchargée de votre programme a un temps de téléchargement codé en dur, caché quelque part dans le code binaire du programme. Cela nécessitera beaucoup plus d'effort administratif de votre part et vous ne pouvez toujours pas être sûr que la même personne ne téléchargera pas une nouvelle copie du programme à partir de votre serveur après la période d'essai (en utilisant peut-être une identité différente).

  • livrez la version d'essai uniquement avec un "dongle" où la fin de la période d'essai est enregistrée. Cela ne sera possible que pour les programmes avec une poignée de clients potentiels et un prix beaucoup plus élevé que le prix du dongle.

  • faire de la chose une application Web, ou une partie de celle-ci, ou simplement une application connectée au Web. Dans ce cas, vous pouvez stocker la date initiale sur votre serveur, mais vous devrez identifier et distinguer les personnes qui utilisent votre logiciel (par exemple, en définissant des cookies ou en créant un compte). Mais encore une fois, vous ne pouvez pas être sûr à 100% que les personnes ne changent pas d'identité.


"tu es foutu", "tu es foutu", et "tu es très foutu"? Je ne pense pas que cela donne une vraie solution. Pourquoi pas un modèle DRM-ish dans lequel vous devez vous connecter pour utiliser le programme et dont la date est stockée sur le serveur?
Elias

2
@Elias Le logiciel que je crée est un plugin complet d'analyse de matériaux pour Revit, qui sera bientôt implémenté aux côtés du propre magasin d'applications d'Autodesk. À l'heure actuelle, je ne sais pas quel type de télémétrie, de contrôle ou d'informations utilisateur nous sera fourni par l'App Store d'Autodesk. Par conséquent, lorsque l'authentification Web est installée / utilisée, je ne pense pas que ce soit implémentable.
theGreenCabbage

1
@Elias: merci pour la suggestion, mais "se connecter" sur un serveur signifie la vérification d'identité, et les identités peuvent être changées.
Doc Brown

@ DocBrown, ils peuvent être modifiés dans certaines situations, mais je suppose qu'avec Application Store de Revit \ Autodesk, il existe un identifiant unique par client pour ce produit. Bien que, basé sur le commentaire de GreenCabbage, il est très possible que ces données ne soient pas du tout accessibles, rendant mon commentaire original faux.
Elias

0

Quoi que vous fassiez, assurez-vous de tester très attentivement ce qui se passe après la date de péremption. Une fois, j'ai travaillé pour une société qui distribuait des logiciels avec un système d'essai semblable à celui que vous décrivez. La différence était que l'expiration était une date future fixe.

Nous avons abandonné le programme immédiatement après avoir reçu une tonne d'appels de clients en colère lorsque leurs versions légalement achetées ont également cessé de fonctionner à cette date.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.