IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Intégration d'une licence


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Par défaut Intégration d'une licence
    Bonsoir,
    J'ai une petit question : j'ai un système de licence à ma disposition que je dois intégrer dans mon programme.
    Moi la méthode que j'utilise, qui est simple, est en gros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    If (maLicence)
             //tu executes mon code

    Du coup ma question est : est ce que c'est très sécurisé de n'utiliser que un "if" pour le checking de licence ?
    Il y a t'il une méthode plus compliqué/sécurisé qu'un pauvre if ? (qui je pense, peut être facilement jumpé après en assembleur).

    Ma question peut être idiote, mais je préfère faire appelle aux experts pour ne pas faire n'importe quoi.
    (A noter que je ne fais pas de C++, d'ou le fait que j'ai acheté un système de licence et doit juste l'intégrer).

    Merci.

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Il y a, très certainement beaucoup mieux à faire que cela car, au niveau de l'exécutable, cela se traduira par une seule instruction processeur, et que les gens savent très bien laquelle (un jmp ou ses dérivés)

    Il suffirait donc à la personne mal intentionnée de repérer se saut (sans doute conditionnel, d'ailleurs) et de modifier le binaire avec un éditeur hexadécimal pour que le programme réagisse exactement comme si la licence était tout à fait valide

    Ceci dit, presque toutes les possibilités qui te seront offertes ne feront, en définitive, que rendre le travail de la personne mal intentionnée "qu'à peine plus difficile" en multipliant les endroits de code à modifier et en les plaçants de manière plus ou moins complexe.

    Mais, au final, le seul résultat sera peut etre que la personne mal intentionnée devra être un peu plus compétente pour y arriver et mettra peut être quelques heures au lieu de cinq minutes

    Et comme, au final, le patch ou le crack se retrouvera surement sur internet, tout ce que cela risque de faire, c'est d'emm... bien plus les gens qui utilisent "légalement" ton application que ceux qui auront décidé de le faire de manière illégale
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Bonjour,

    La seule solution un peu efficace que je verrais c'est de mettre le programme sur un serveur et ne fournir au client qu'un programme pour se connecter au serveur et bénéficier de ton service.

    Après on peut toujours utiliser une licence pour deux programmes, dans ce cas là, on peut banni les licences si deux clients essayent de se connecter avec la même licence en même temps.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Par défaut
    Merci pour vos réponses.
    Enfaite le programme en C++ n'est la que pour "démarrer" tout le reste (qui est en Python).
    A partir de la, "pourrir" le programme en C++ de variables qui servent à rien, qui embrouillent, etc etc...ne me gêne absolument pas.
    Le système de licence que j'utilise est "limelm".
    Du coup, ils donnent un exemple pour intégrer leur système de licence en C++ : ici.

    Comme on peut le voir, le check se fait juste par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (IsActivated(ProductVersionGUID) != TA_OK)
         //blabla
    D’où ma question en faite.
    J'ai fais la méthode d'utiliser leur librairie static (et non la dll a part).

    Donc au final, c'est sécure ou par juste le "if" (avec leur lib en static) ?

    Si c'est non, la meilleur méthode est de pourrir un peu le checking par des trucs inutiles ? (cela ne me gêne vraiment pas, comme je l'ai dit, le programme C++ ne sert qu'à charger la licence).

    Je sais très bien que ça va être cracké au final, mais si je peux pourri la vie un peu avant et évité que ça soit fait en 5min...

    Merci.

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    si tu veux pourrir la vie, je pense qu'il vaut mieux utiliser la dll.
    Elle sera un fichier autonome, dont tu pourras vérifier l'integrité.

    D'un point de vue pirate, ici, toute l'intelligence est dans la fonction IsActivated, il suffit d'en sauter l'appel pour être tranquile.

    De toute facon, le code sera forcément du genre "si valide faire sinon planter"
    Il suffit de sauter tous les tests disant "ce n'est pas valide"

    Aucun code n'est totalement sécurisé. Je pense par exemple au "proxy pour diablo 3", permettant de jouer en local...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Par défaut
    Citation Envoyé par leternel Voir le message
    si tu veux pourrir la vie, je pense qu'il vaut mieux utiliser la dll.
    Elle sera un fichier autonome, dont tu pourras vérifier l'integrité.
    Quand tu parles de vérifier l'intégrité, c'est par exemple inclure un sha-1 du fichier dans mon programme, et ensuite checker si ce sha-1 n'a pas été modifié ?

    J'avais pensé à cette méthode, on m'a dit qu'il faut mieux utiliser la lib static car une fois que la dll est cracké, elle est cracké...

    Un avis ?

    Ne pas oublier que je connais pas grand chose en C++, et que je suis pas contre des exemples.

    Merci.

  7. #7
    Membre Expert
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Par défaut
    Salut,

    je pense qu'il y a différents points à explorer avant de choisir une solution définitive.

    Dans un premier temps, il faut nous dire
    - à quoi est censé servir ton code,
    - à qui il s'adresse,
    - si l'interface homme-machine est internationalisée ou pas.

    Ensuite, est-ce que tu comptes protéger légalement ton code à l'aide d'une licence juridique?

    Comptes-tu vendre tes licences en illimité, limité en espace, limité dans le temps, limité en fonctionnalités? Souhaites-tu faire des version d'essais, version étudiantes?

    J'oublie sûrement des choses mais c'est un début.

    Comment as-tu choisi limelm? L'as-tu comparé à d'autres solutions (flexlm,...)?

    Je pense qu'il est plus sain de répondre à toutes ces questions avant d'adopter une solution technique. Tous les logiciels n'ont pas la même probabilité de se faire craqués mais cela dépend plus de leur popularité que des solutions informatiques mises en place pour les protéger. Je dis peut-être une ânerie mais je me demande si la meilleure manière de protéger un logiciel n'est pas finalement de polluer le "marché pirate" avec ses propres versions (limitées bien sûr) et en les faisant passer pour des versions craquer. En plus, cela fait un peu de pub.

  8. #8
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    salut,

    Citation Envoyé par bigbossfr Voir le message
    Quand tu parles de vérifier l'intégrité, c'est par exemple inclure un sha-1 du fichier dans mon programme, et ensuite checker si ce sha-1 n'a pas été modifié ?
    On peut faire la modif en mémoire, et l'intégrité du fichier n'en sera pas modifié, on peut aussi faire la modif dans ton programme pour éviter qu'il en contrôle l'intégrité, on peut faire dans la transparence en mettant au point des accroches ; en fait, tu peux mettre autant de verrous que tu veux, on les fera sauté un par un... mais bon, encore faut-il que ton programme soit intéressant, ou hors de prix par rapport à l'usage que l'on pourrait en faire... ou qu'il présente un challenge... en terme de débogage

    Sinon, pour ne pas te laisser sur ta faim, sache qu'aucune protection commerciale n'est efficace, pire encore, il y a des outils développés spécialement pour les faires sautés, c'est du générique...

    Non, les seules protections qui pourront donner du fil à retordre, c'est des protections maisons, donc non "redistribuables"... pour des logiciels plutôt confidentiels... et avec un brin de virtualisation pour ajouté un stage supplémentaire, mais pour ça, il faut déjà être très bon en reverse engineering... et aussi connaitre les techniques antireverse... quand j'y pense, c'est un métier en fait... mais rien ne t'empêche de te documenter là-dessus...

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Par défaut
    Citation Envoyé par Aleph69 Voir le message
    Dans un premier temps, il faut nous dire
    - à quoi est censé servir ton code,
    - à qui il s'adresse,
    - si l'interface homme-machine est internationalisée ou pas.
    Bonsoir,
    C'est un plugin pour le logiciel Autodesk Maya qui permet, en gros, d'accélérer la mise en place des scènes de rendu/lighting.
    Il y a une vidéo ici : https://vimeo.com/50022212
    Le plugin en lui même est en C++, mais tout le reste est en PyMel/PyQT.

    Citation Envoyé par Aleph69 Voir le message
    Ensuite, est-ce que tu comptes protéger légalement ton code à l'aide d'une licence juridique?
    Si tu parles d'un brevet, non, car il y a rien des vraiment technologique.

    Citation Envoyé par Aleph69 Voir le message
    Comptes-tu vendre tes licences en illimité, limité en espace, limité dans le temps, limité en fonctionnalités? Souhaites-tu faire des version d'essais, version étudiantes?
    Chaque licence sera illimité dans le temps. Toutefois, une version d'essais de 30 jours sera proposé (avec des limitations).
    Il y a un prix pour la version nodeLocked, et un autre pour des licences flottantes (des genres de "pack").

    Citation Envoyé par Aleph69 Voir le message
    Comment as-tu choisi limelm? L'as-tu comparé à d'autres solutions (flexlm,...)?
    Je l'ai choisi car il correspondait à peut prêt à ce que je recherchais :
    - du nodeLock
    - du float licence
    - système permettant le trial
    - activation par le net
    - envoies de la licence automatiquement par mail
    - exemple de page d'intégration web
    - exemple pour l'intégrer en c++ (je n'ai aucune compétente en c++).

    J'avais regardé les autres solutions (rlm, flexlm, etc etc...), ils n'avaient pas tous du coup toute les features que je voulais, ensuite, la plupart avaient soit aucun prix, soit des prix assez élevé (et vu que ça va être cracké..). D'ou le choix de limelm.

    Citation Envoyé par Aleph69 Voir le message
    Je pense qu'il est plus sain de répondre à toutes ces questions avant d'adopter une solution technique. Tous les logiciels n'ont pas la même probabilité de se faire craqués mais cela dépend plus de leur popularité que des solutions informatiques mises en place pour les protéger. Je dis peut-être une ânerie mais je me demande si la meilleure manière de protéger un logiciel n'est pas finalement de polluer le "marché pirate" avec ses propres versions (limitées bien sûr) et en les faisant passer pour des versions craquer. En plus, cela fait un peu de pub.
    A noter que j'ai déjà plus d'une dizaine d'acheteur (dont des studios), et que donc, c'est pour ça que j'essaye de tout mettre en place pour avoir un truc "clean".
    N'étant pas expert en c++ (mais plus en Python/PyMel/PyQt, orienté graphisme/workflow de production), c'est pour ça que je sollicite l'aide des experts de ce forum.
    Je pourrais si il faut payer quelqu'un pour qu'il m'intègre ça proprement (du moins, faire un minimum pour ne pas mettre juste un "if" comme dans l'exemple. Ce qui pour quelqu'un qui connait le C++, ne devrait pas être très dur je présume (?)), mais il faudrait que déjà tout le reste se règle (statut, doc, site web, des choses à payer, etc etc...).
    Du coup j'essaye de me débrouiller comme je peux.

    Citation Envoyé par minnesota Voir le message
    salut,
    On peut faire la modif en mémoire, et l'intégrité du fichier n'en sera pas modifié, on peut aussi faire la modif dans ton programme pour éviter qu'il en contrôle l'intégrité, on peut faire dans la transparence en mettant au point des accroches ; en fait, tu peux mettre autant de verrous que tu veux, on les fera sauté un par un... mais bon, encore faut-il que ton programme soit intéressant, ou hors de prix par rapport à l'usage que l'on pourrait en faire... ou qu'il présente un challenge... en terme de débogage
    Salut,
    Je suis totalement conscient que tout est crackable. C'est pour ça que je n’investi pas dans un système de licence ultra chère (qui ne servira à rien car ça va être cracké, sauf les systèmes avec dongle, plus difficile, mais c'est pas fait pour la "taille" de mon soft), et que mon plugin sera très abordable.
    Pendant 5 ans j'ai fait de l'open source avec un système de donation. Au final je n'ai eu que une donation (en 5 ans donc), d'un étudiant (ironie..), alors que ça dépassé les 10 000 téléchargements, dont certains studios qui utilisent mes outils...

    Donc au final, on va dire que les 5 ans "opensource" m'ont permis d'avoir de l'expérience, et de me sentir prêt pour vendre le 1er plugin.
    Mais pour cela, il me faut bien un système de licence (nodeLock et float).

    LimeLm à l'air d'être un bon candidat, mais du coup, si je pouvais juste évité de mettre juste un "if" pour le check de licence, et pourrir un peut tout ça, je dis pas non.

    Je suis sur que ça amuserait certaines personnes maitrisant le C++ de pourrir un checking de licence
    Comme je l'ai dit, si je vois que c'est hors de ma porté, je vais voir si je peux payer quelqu'un.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Par défaut
    Bonjour tout le monde,
    J'ai posé la question sur le forum officiel de LimeLm concernant la simplicité du check avec un "if" :

    http://wyday.com/forum/viewtopic.php?f=3&t=9038

    Comme vous pouvez le voir, on m'a répondu que oui, c'est sécure de mettre juste un "if".

    J'ai quand même toujours un doute...
    (je parle de la simplicité de le hacker, et non de l'impossibilité de le faire)

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 152
    Billets dans le blog
    4
    Par défaut
    Comme on dit depuis le début, un simple if ne sera pas particulièrement sécurisé. Mais il est faux de dire que ce ne l'est pas.
    Et de toutes façons, dans l'absolu à part multiplier les if, il se trouve qu'il s'agit de la seule structure conditionnelle dont on dispose, et c'est bien une condition que l'on veut mettre en place.

    Tu as bien une porte chez toi, et je suppose que tu la fermes le soir. Est-ce pour autant sécurisé ? Est-ce que ça empêche quiconque d'entrer ?

    Et oui, tout est crackable, reste à savoir si ça vaut le coup. Tant au niveau cracker qu'au niveau sécuriser.
    Si je sais d'avance que je vais être cracké, vaut-il le coup d'investir dans un système de licence ? Pourquoi ne pas plutôt s'orienter vers une solution juridique, avec cgu etc, guerre d'avocats ...
    Bref, tu peux aller très loin, mais le jeu en vaut-il la chandelle ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  12. #12
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    En théorie, la simple acceptation d'une licence d'utilisation avant l'installation suffit contre toute possibilité de piratage.

    Le premier et insoluble problème en sécurité informatique, c'est qu'on veut interdire à quiconque d'accomplir une action (ici, exécuter du code) sauf à une personne en particulier, mais qu'on n'a aucun moyen d'identifier sûrement l'utilisateur.

    La connaissance d'un secret est une possibilité (système de mot de passe, cryptographie…), mais si ton programme peut le valider, un autre peut le faire s'il accède à la même connaissance que le tien.

    Aussi loin que tu ailles sur cette voie, si tu écris un programme qui utilise une connaissance, un autre que toi peut en faire autant. Et de même, ce qu'un individu peut faire avec un programme, un autre individu avec les mêmes information peut le faire aussi.

  13. #13
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Moi j'ai trouvé la réponse du gars très judicieuse quand il répond yes, la licence va protéger de la redistribution de clefs entres machines... dans le cadre d'une utilisation normale et légale du dit logiciel, ça peut porter ses fruits... mais avec ça rien n'empêche de protégé ce même logiciel contre les attaques de déni de licence (elle est bonne celle-là ) et de le signer numériquement...

    À cela, je rajouterais une version gratuite (pas une démo) et allégée, pas avec du code anesthésié, hein, pour faire la différence avec le code dormant... et à côté, des versions payantes avec différentes licences, dont étudiant, très important, pro et corporate, entreprise, pardon... et avec les tarifs qui vont bien... et mesurés...

    Enfin, un argument de poids, faire paraitre dans la communication qui accompagne ton logiciel la liste des plugins que tu as gracieusement mis à disposition, dans le code aussi pourquoi pas (que ça soit visible au désassemblage, traçage ou dump... suivant que le plugin est "packé" ou pas) et bien sûr, bien faire paraitre que t'as investi beaucoup (y compris en temps et en argent) dans ce plugin... donc même si ça n'empêchera pas certains de se l'approprier illégalement, ça peut avoir un impact sur le fait qu'il n'y aura pas de distribution de crack ou de keygen... en somme ce qui te serait préjudiciable...

    Mais bon, faut pas faire de fixation là-dessus, ce qui est important là, c'est que tu vas avoir je l'espères un premier portefeuille clients... donc, t'as besoin de statistiques et d'un gestionnaire de licence (interne ou tiers), et grâce aux mises à jour tu peux savoir beaucoup de choses, y compris mesurer le manque à gagner s'il y a en a...

    Si tu as un premier retour sur investissement honorable, je dirais que c'est déjà mission accomplie... mais si le but est de faire fortune, mieux vaut écrire une chanson pour Rhianna ou épouser Fortunée, la fille de madame Sarfati

  14. #14
    Membre Expert
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Par défaut
    Bonsoir,

    Citation Envoyé par bigbossfr Voir le message
    Si tu parles d'un brevet, non, car il y a rien des vraiment technologique.
    Le brevet est une forme de propriété intellectuelle parmi tant d'autres. Je pensais plus à une protection des droits d'auteur et de copie via une licence de logiciel. Dans le domaine du libre, la plus connue est la licence GPL et en France on trouve aussi la licence CECILL. Attention tout de même à bien avoir en tête que ces licences ne s'appliquent pas forcément partout, typiquement en Chine.

    Citation Envoyé par bigbossfr Voir le message
    Chaque licence sera illimité dans le temps.
    Le choix d'une licence illimitée dans le temps représente à la fois un atout commercial et un manque à gagner. C'est rarement le choix des grands éditeurs de logiciels. Dans ton cas, il y a quand même un souci à mon avis : puisqu'il s'agit d'un plugin, ton code risque de ne plus fonctionner à terme avec la sortie de nouvelles versions du logiciel Autodesk Maya.

    Du point de vue de la sécurité, c'est également problématique. Je ne sais pas sous quelle forme est ta licence, mais elle ne doit pas pouvoir être redistribuée (code d'activation, fichier) à un tiers. Hors, sans limite de temps, c'est très difficile d'éviter cela.

    Citation Envoyé par bigbossfr Voir le message
    Toutefois, une version d'essais de 30 jours sera proposé (avec des limitations).
    Si tu veux éviter tout problème, fais en sorte que la version d'essai contienne le moins d'informations possible sur la version complète. J'entends par là que le code compilé de la version d'essai ne doit pas contenir le code de la version complète. Le reverse engineering reposant sur le désassemblage des codes, on ne doit pas pouvoir cracker la version d'essai pour en faire une version complète. Concrètement, il ne faut pas que les limitations soient activées à l'aide de code compilable (typiquement des instructions conditionnelles, if-else). Il faut plutôt jouer avec la compilation conditionnelle (i.e. macros préprocessorales) pour compiler telle ou telle partie du code en fonction de la version.

    Une idée en passant : écris un code simple en y intégrant ton système de licence avec un if et vois si quelqu'un doué en reverse engineering arrive à le cracker (cela doit se trouver sur les forums). Tu auras ta réponse quitte à proposer une petite récompense pour motiver. Avec un peu de chance, il pourra peut-être même t'aider à renforcer la sécurité de ton logiciel.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Et oui, tout est crackable, reste à savoir si ça vaut le coup. Tant au niveau cracker qu'au niveau sécuriser.
    Si je sais d'avance que je vais être cracké, vaut-il le coup d'investir dans un système de licence ? Pourquoi ne pas plutôt s'orienter vers une solution juridique, avec cgu etc, guerre d'avocats ...
    Bref, tu peux aller très loin, mais le jeu en vaut-il la chandelle ?
    Comme je l'ai dit, je sais que ça va être cracké, j'en suis même certain (quand je vois déjà mes trucs gratuit qui sont sur des sites warez, incompréhensible )
    Donc au final oui ça vaut le coup car au moins ça arrêtera l'utilisateur "normal" de vouloir dupliquer le truc sur plusieurs machines.
    Pendant 5 ans je n'ai fias que de l'open source, et beaucoup de boites/utilisateurs n'ont eu aucun respect et n'ont même pas respecté la licence open source...
    A partir de la, je vais commencé a vendre mon 1er plugin (on peut pas dire que j'ai pas fait l'effort de faire du gratuit avant...).

    Citation Envoyé par leternel Voir le message

    Aussi loin que tu ailles sur cette voie, si tu écris un programme qui utilise une connaissance, un autre que toi peut en faire autant. Et de même, ce qu'un individu peut faire avec un programme, un autre individu avec les mêmes information peut le faire aussi.
    Comme je l'ai dit, mon truc va être cracké. Je cherche juste un moyen de mettre un truc un peu plus compliqué qu'un simple "if".

    Citation Envoyé par minnesota Voir le message
    À cela, je rajouterais une version gratuite (pas une démo) et allégée, pas avec du code anesthésié, hein, pour faire la différence avec le code dormant... et à côté, des versions payantes avec différentes licences, dont étudiant, très important, pro et corporate, entreprise, pardon... et avec les tarifs qui vont bien... et mesurés...

    Enfin, un argument de poids, faire paraitre dans la communication qui accompagne ton logiciel la liste des plugins que tu as gracieusement mis à disposition, dans le code aussi pourquoi pas (que ça soit visible au désassemblage, traçage ou dump... suivant que le plugin est "packé" ou pas) et bien sûr, bien faire paraitre que t'as investi beaucoup (y compris en temps et en argent) dans ce plugin... donc même si ça n'empêchera pas certains de se l'approprier illégalement, ça peut avoir un impact sur le fait qu'il n'y aura pas de distribution de crack ou de keygen... en somme ce qui te serait préjudiciable...

    Mais bon, faut pas faire de fixation là-dessus, ce qui est important là, c'est que tu vas avoir je l'espères un premier portefeuille clients... donc, t'as besoin de statistiques et d'un gestionnaire de licence (interne ou tiers), et grâce aux mises à jour tu peux savoir beaucoup de choses, y compris mesurer le manque à gagner s'il y a en a...

    Si tu as un premier retour sur investissement honorable, je dirais que c'est déjà mission accomplie... mais si le but est de faire fortune, mieux vaut écrire une chanson pour Rhianna ou épouser Fortunée, la fille de madame Sarfati
    J'ai déjà une version du plugin allégé (qui a des milliers d'utilisateurs). J'avais prévu le coup pour ensuite lancer la version plus "advance" .
    Beaucoup de gens connaissent mes outils, d'ou le fait que j'ai déjà des "futurs" clients qui me demandent "ça sort quand ?".
    Il y aura en licence :
    - nodelocked
    - float (tarif dégressif d'après le nombre de licence, normal)
    - 30 jours

    Le plus embêtant c'est la version 30j, qui sera la version full qu'on devra "unlocker". Et ça c'est tendu car ça veut dire que la version démo à "tout" en code.

    Citation Envoyé par Aleph69 Voir le message
    Le choix d'une licence illimitée dans le temps représente à la fois un atout commercial et un manque à gagner. C'est rarement le choix des grands éditeurs de logiciels. Dans ton cas, il y a quand même un souci à mon avis : puisqu'il s'agit d'un plugin, ton code risque de ne plus fonctionner à terme avec la sortie de nouvelles versions du logiciel Autodesk Maya.

    Du point de vue de la sécurité, c'est également problématique. Je ne sais pas sous quelle forme est ta licence, mais elle ne doit pas pouvoir être redistribuée (code d'activation, fichier) à un tiers. Hors, sans limite de temps, c'est très difficile d'éviter cela.

    Si tu veux éviter tout problème, fais en sorte que la version d'essai contienne le moins d'informations possible sur la version complète. J'entends par là que le code compilé de la version d'essai ne doit pas contenir le code de la version complète. Le reverse engineering reposant sur le désassemblage des codes, on ne doit pas pouvoir cracker la version d'essai pour en faire une version complète. Concrètement, il ne faut pas que les limitations soient activées à l'aide de code compilable (typiquement des instructions conditionnelles, if-else). Il faut plutôt jouer avec la compilation conditionnelle (i.e. macros préprocessorales) pour compiler telle ou telle partie du code en fonction de la version.

    Une idée en passant : écris un code simple en y intégrant ton système de licence avec un if et vois si quelqu'un doué en reverse engineering arrive à le cracker (cela doit se trouver sur les forums). Tu auras ta réponse quitte à proposer une petite récompense pour motiver. Avec un peu de chance, il pourra peut-être même t'aider à renforcer la sécurité de ton logiciel.
    Pour ce qui est du versionning des version de Maya, pour ça il y aucun soucie. Les clients savent par avance sur quelle version de Maya le plugin marche.

    La plupart des plugins (en 3D) sont en illimité dans le temps (pour ne par dire 100%). Faire un truc limité dans le temps, c'est se mettre un balle dans le pied (perso moi, j’achèterais jamais).

    La version d'essai, c'est ça le problème. Si tu regardes limelm, la version d'essai fait que c'est la version complète car une version d'essai = une licence.
    Du coup il faudrait que quand la personne "unlock" la version d'essai, je donne un lien de dl unique pour rapatrier les fichiers manquant pour faire la version complète.

    Pour ce qui est de la dernière chose, perso, je suis pas contre.
    Ne connaissant absolument rien en C++ (comme je l'ai dit, le code c++ est juste la pour la licence), je suis prêt à payer quelqu'un pour qu'il me fasse l'intégration simple du code (avec des conneries pour emmerder), me créer le projet C++, et voilà.

  16. #16
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Citation Envoyé par bigbossfr Voir le message
    Comme je l'ai dit, je sais que ça va être cracké, j'en suis même certain (quand je vois déjà mes trucs gratuit qui sont sur des sites warez, incompréhensible )
    Donc au final oui ça vaut le coup car au moins ça arrêtera l'utilisateur "normal" de vouloir dupliquer le truc sur plusieurs machines.
    Pendant 5 ans je n'ai fias que de l'open source, et beaucoup de boites/utilisateurs n'ont eu aucun respect et n'ont même pas respecté la licence open source...
    As-tu porté plainte ? Je ne sais pas quel est l'ampleur de ce phénomène mais si on ne respecte pas ta licence, c'est ton droit de demander réparation.

    Citation Envoyé par bigbossfr Voir le message
    Le plus embêtant c'est la version 30j, qui sera la version full qu'on devra "unlocker". Et ça c'est tendu car ça veut dire que la version démo à "tout" en code.
    Tant que c'est sur l'ordinateur client, c'est le hackeur qui aura le dernier mot.
    Sur windows 7, il y a des petits jeu fournit avec X heures en version d'essais.
    J'ai réinstallé windows 7 et j'ai pu rejouer à ces petits jeux.

    J'ai peu être une solution pour la version 30 jour :
    - un fichier de configuration avec signature RSA contenant entre autre la date de fin de la version ;
    - pour éviter qu'on utiliser la version 30j plusieurs fois de suite une BDD qui enregistre l'adresse MAC et d'autres informations (récupérer le n° de licence windows ??) pour tenter d'identifier un ordinateur de manière relativement sûre.

    Mais il serait toujours possible de supprimer l'obligation d'avoir ce fichier en modifiant le code de ton plugin.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Par défaut
    Citation Envoyé par Neckara Voir le message
    As-tu porté plainte ? Je ne sais pas quel est l'ampleur de ce phénomène mais si on ne respecte pas ta licence, c'est ton droit de demander réparation.
    Bien-sur que non. J'ai laissé "couler", d'ou le fait que aujourd'hui : plus de gratuit et je ne ferais que du payant.
    Les boites voulaient profiter, elles ont perdu...
    Elles ne tirent elle même une balle dans le pied à ne rien respecter.

    Citation Envoyé par Neckara Voir le message
    Tant que c'est sur l'ordinateur client, c'est le hackeur qui aura le dernier mot.
    Sur windows 7, il y a des petits jeu fournit avec X heures en version d'essais.
    J'ai réinstallé windows 7 et j'ai pu rejouer à ces petits jeux.

    J'ai peu être une solution pour la version 30 jour :
    - un fichier de configuration avec signature RSA contenant entre autre la date de fin de la version ;
    - pour éviter qu'on utiliser la version 30j plusieurs fois de suite une BDD qui enregistre l'adresse MAC et d'autres informations (récupérer le n° de licence windows ??) pour tenter d'identifier un ordinateur de manière relativement sûre.

    Mais il serait toujours possible de supprimer l'obligation d'avoir ce fichier en modifiant le code de ton plugin.
    Le système de démo est déjà intégré a LimeLm...
    Moi la question de base était juste de pourrir légèrement le simple "if" (sans pour autant avoir un truc poussé car ça va être cracké), histoire de ne pas passer 5sc avec un jmp pour cracker le truc...

Discussions similaires

  1. [POURSUITE] après une licence pro web-developpeur
    Par Jerem' dans le forum Etudes
    Réponses: 2
    Dernier message: 15/04/2008, 15h10
  2. Delphi 8 contient-il une licence SQL Server ?
    Par Bruno75 dans le forum EDI
    Réponses: 9
    Dernier message: 13/12/2004, 13h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo