Créer license et numéro de série (activation du logiciel)

cs_lilj 205 Messages postés dimanche 13 décembre 2009Date d'inscription 1 avril 2012 Dernière intervention - 18 janv. 2011 à 06:52 - Dernière réponse : Whismeril 11936 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 7 août 2018 Dernière intervention
- 28 févr. 2018 à 13:11
Bonjour,

je voudrais savoir comment créer une licence et l'incorporer dans l'installateur de mon application VB 2010. Je voudrais faire un peu comme Microsoft et les logiciels payants, lors de l'installation de mon application, on demande à l'utilisateur un numéro d'activation. Puis, ce numéro sera enregistré dans un fichier ini. dans le cas où le numéro de série n'est pas valide, pas d'installation possible..
J'ai à ma disposition :
Une base de donnée
Un fichier ini

De plus, quoi utiliser pour pouvoir générer le setup ? (mise à part celui déjà intégré dans vb2010). j'ai entendu que install shield est bien, mais qu'il y avait mieux. Mais comme j'utilise un numéro de série, l'installateur doit pouvoir le prendre en compte.

Je ne sais pas du tout comment m'y prendre pour ce genre de système de licence. Il faudra tout de même un minimum de sécurité.


Merci.

PS: j'aurai pu laisser mon logiciel en open source diraient certains, mais voilà, cela ne dépend pas de moi mais de mon responsable ^^.
Afficher la suite 

Votre réponse

48 réponses

jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 18 janv. 2011 à 09:15
0
Merci
Salut,
Regarde si cela peu t'aider.

VBLOCKER : PROTÉGEZ VOTRE APPLICATION COMMERCIALE

@+: Ju£i€n
Pensez: Réponse acceptée
Commenter la réponse de jrivet
cs_lilj 205 Messages postés dimanche 13 décembre 2009Date d'inscription 1 avril 2012 Dernière intervention - 18 janv. 2011 à 17:13
0
Merci
Merci pour ton lien et ton intérêt mais n'y-a-t-il pas une autre alternative un peu moins complexe ?
Cependant, c'est intéressant ce que tu as proposé, je vais l'essayer quand même sait-on jamais ^
Commenter la réponse de cs_lilj
scottmat 440 Messages postés samedi 24 mai 2003Date d'inscription 23 janvier 2011 Dernière intervention - 18 janv. 2011 à 17:49
0
Merci
Salut,

ce sujet à été déjà abordé pas mal de fois, et malheureusement il n'y a rien de bien fiable !
microsoft se fait cracké leurs soft, donc pour toi comme pour nous, c'est inévitable, si ton soft devient connut, il finira par l'être et ce, que tu mettre le crack le plus complexe qu'on puisse créer

fait une recherche sur google, et sur CS tu va voir beaucoup de conversation sur le sujet

Bon courage ;)
Commenter la réponse de scottmat
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 18 janv. 2011 à 18:33
0
Merci
Salut,

J'aime vraiment ce genre de question ! Moi je dirais que la complexité à cracker le logiciel dépend de la complexité que l'on y met pour le protéger (mouais, c'est pas très frenchy comme phrase...).

C'est vrai qu'il y a toujours une multitude de façons de craquer un logiciel, exemple pour ton cas, tu protège à l'installation donc l'utilisateur ayant un peu de connaissance prendra les fichiers de ton logiciel une fois installé, refera un 'setup' et le balancera sur le net, ou mieux encore on peut extraire certaines ressources des installateurs. Le mieux reste donc de protéger l'application elle-même. Mais c'est encore très difficile car même le code compilé, on peut très bien modifier une application (changer un saut au conditionnel, modifier le contenu d'une adresse mémoire, simuler ou modifier des trames réseaux, tout cela pour rendre inefficace la protection).

Il n'y a donc pas de 'protection parfaitement inviolable'.

Ce pendant il existe quand même des moyens plus ou moins efficaces. Si tu souhaites toujours protéger lors de l'installation tu peux regarder du coté des Actions Personnalisées. Cela t'indiquera déjà comment procéder pour personnaliser ton setup avec Visual Studio.

Par la suite pour ce qui est de l'activation si tu veux quelque chose de professionnel et entièrement automatisé alors je te suggère de créer un service web qui consultera la base de données de ton site pour activer le dit logiciel.

Exemple, ton site de présentation/commerce (qui devra être en langage coté serveur comme asp.net ou php), génèrera un N° de série lors de l'achat d'une licence sur le site. Ce numéro, sera stocké sur le serveur de l'hébergement au sein de la base de données avec les infos relatives au client et aussi communiqué au client (affiché sur la page et aussi envoyé par email).

D'un autre coté, un service web lui aussi sur l'hébergeur, attendra une requête de la part du logiciel, il consultera la base et si le numéro correspond il enverra une réponse favorable au logiciel qui pourra se 'déverrouiller'. Le service web marquera en suite le numéro de série comme ayant été activé. Pour ce qui est du service web j'ai déposé un tuto ici. Je recommande tout de même une connexion sécurisé via SSL pour ce genre de pratiques.

Voila, @+

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
cs_lilj 205 Messages postés dimanche 13 décembre 2009Date d'inscription 1 avril 2012 Dernière intervention - 19 janv. 2011 à 06:24
0
Merci
Bonjour,

merci d'abord pour vos réactions. Je sais que ce sujet est "brûlant" et qu'il n'y aura sans doute jamais de garantie à 100%. Et puis, je n'ai pas la prétention de dire que mon logiciel sera connu, mais bon.. quoiqu'il en soit, le service par web me paraît bien comme solution. Comme je ne sais pas du tout quelles sont les solutions généralement utilisées pour ce système de licence, je ferais des recherches sur le service web.

Merci encore. Je suis toujours ouvert aux autres solutions ^^
Pourriez-vous aussi me préciser la solution concernant la sécurisation du code du logiciel lui même ?
Le mieux reste donc de protéger l'application elle-même.
Commenter la réponse de cs_lilj
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 19 janv. 2011 à 09:39
0
Merci
quelques conseils pour garantir un minimum de protection :

- Ne pas mettre qu'un simple conditionnel qui mène vers la protection mais plusieurs, imbriqués et à de multiples endroits (chargement de tous formulaires, lors de clic sur des boutons menant aux fonctions principales, au chargement de l'application...). Ce code à l'air un peu ridicule mais il offre une protection supplémentaire, même si celle-ci est minime, à terme elle peut décourager le cracker.

If Not Activation Then
   Application.Exit
Else
   If Not Activation Then
      Application.Exit
   End If
End If


- Ne pas faire de blocage par formulaire du type :

If Not Activation Then
   Frm_Activation.Show  
End If


Mais préférer 'Application.Exit', sauf bien entendu au moment ou le programme doit laisser l'utilisateur s'enregistrer, comme au load par exemple, mais mettre un code 'Exit' à la suite.

- Eviter de mettre des chaines "BRUTES" dans des variables et plutôt utiliser les ressources, ou des tableaux de Bytes et l'Enconding.

- Ne JAMAIS mettre d'identifiants vers des boites mail, ni serveur FTP, ou autres comptes.

- Toujours crypter les fichiers contenant des données et essayer d'en cacher la clé dans le code, Ex:

'Si ceci est ma clé de cryptage, alors préférer...
Dim MyKey As Bytes() = {4, 7, 8, 55, 48, 88, 55, 44, 77, 88, 255, 12, 11, 14, 14, 58}

'...la scinder en deux parties, comme ça celui qui épie la mémoire recherchera une variable contenant 8 ou 16 bytes
'et ces variables passeront plus ou moins inaperçues. Bien qu'il faille tout de même reconstituer le tableau en un bloc lors 'des opération de cryptage/décryptage.
Dim MyKey1 As Bytes() = {4, 7, 8, 55}
Dim MyKey2 As Bytes() = {48, 88, 55, 44, 77}
Dim MyKey3 As Bytes() = {88, 255, 12, 11, 14, 14, 58}


ou sinon générer celle-ci à partir d'informations du PC ou de session (Nom de l'ordinateur, nom de l'utilisateur, N° de série du volume, adresse MAC des interfaces réseaux etc...).

- Si des informations sont envoyés par le biais du réseau, essayer d'utiliser le SSL si le protocole le supporte, sinon faire soit même un cryptage (le Framework offre la possibilité d'utiliser un cryptage RSA facilement) dans le cas de communication directe via socket par exemple.

- Penser à obfusquer le code de l'exécutable compiler en .Net, sinon le reste ne sert à rien, car la source de l'application est disponible à son utilisateur !

Voila, je crois que j'ai développé un minimum les arguments énoncés dans mon poste précédent.

Bon courage, @+

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.Voici
Commenter la réponse de Mayzz
cs_lilj 205 Messages postés dimanche 13 décembre 2009Date d'inscription 1 avril 2012 Dernière intervention - 19 janv. 2011 à 10:36
0
Merci
Merci à toi pour toutes ces infos (ça fait de la culture général en plus pour moi), mais je me demande si tout cela est de mon niveau. De plus, mon logiciel doit obligatoirement être activé pour pouvoir être exécuté, en outre je n'ai pas de version d'évaluation..
Commenter la réponse de cs_lilj
GRONI 22 Messages postés mardi 2 juin 2009Date d'inscription 21 juin 2014 Dernière intervention - Modifié par NHenry le 28/02/2018 à 19:50
0
Merci
bonjour,
en ce qui concerne licence et numéro de série disque dur pour activation logiciel,je suis victime de cette procédure:
voila je suis comptable,j'ai acheté un pack de gestion logiciels intégrés avec activation après 05 ans j'ai eu une panne de disque dur que j'ai changé et après installation du dit pack et activation, le fichier exe principal ne démarre pas et je reçois le message suivant"la variable utilise un type d'automation non géré par visual basic"(erreur 458 vb6)malgrés que j'ai installé toute la librairie accompagnant le logiciel son auteur a disparu et je n'ai pas trouvé de solution et je ne sais pas comment proceder pour regler ce probleme.
PhiChe 6 Messages postés lundi 5 février 2018Date d'inscription 28 février 2018 Dernière intervention - 28 févr. 2018 à 11:55
Je ne réponds pas vraiment à ton souci, mais pour un développeur, pour éviter ce type de problème rencontré par l'utilisateur,, il suffit de crypter à partir de plusieurs éléments essentiels du PC puis, au décryptage, de vérifier qu'au moins un de ces éléments est présent pour autoriser le fonctionnement de l'application. Évidemment, pour les logiciels à gros volumes de distribution, ce sera un peu léger comme protection, mais pour une application plus "confidentielle", ça fonctionne plutôt bien.
Whismeril 11936 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 7 août 2018 Dernière intervention > PhiChe 6 Messages postés lundi 5 février 2018Date d'inscription 28 février 2018 Dernière intervention - 28 févr. 2018 à 13:11
C’est que 5 ans après ça va pas l’aider beaucoup
Commenter la réponse de GRONI
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 17 mars 2013 à 16:44
0
Merci
Bonjour,

Avant toute chose je tenais à vous dire que :

1\ Vous êtes sur un forum d'aide à la programmation et non un forum de SAV pour logiciel.
2\ La prochaine fois si vous souhaitez poser une question sans rapport avec la programmation (ce qui est le cas) merci de le faire dans le thème approprié (Le Bar) et en ouvrant votre propre question.
3\ Je vous recommande d'éviter de laisser votre email sur les forum si vous voulez éviter de vous faire spammer.

Cela dit, si vous souhaitez de l'aide il faudra nous en dire un peu plus. D'ou provient votre logiciel ?

Si vous avez fait "faire" ce logiciel par un freelance, une société ou une connaissance qui l'a développé spécialement pour vos besoins cette personne n'a pas pris soin de déboguer complètement le logiciel car elle ne comptait pas la commercialiser pour le grand publique. Elle n'a donc pas pris soin de tester sur plusieurs machines les scénarios probables qui pourraient engendrer des bugs. Voilà ma théorie, est-ce que je fais fausse route ?

Si c'est une application grand publique connue alors merci de nous donner son nom et le nom de l'éditeur.

Dans tous les cas cette erreur indique qu'une référence est manquante, s'agissant de vb6, une référence sera forcément de type ActiveX et doit être enregistrée dans le registre Windows. Il se peut aussi que selon le système (32 ou 64 bits) l'installation pose problème. Mais je ne pense pas que ce soit le cas à moins qu'en réinstallant votre disque dur vous ayez profité de l'occasion pour changer de système d'exploitation ? Dans tous les cas il faut le nom de la référence ou au moins le nom du type maquant. Votre message d'erreur ne précise pas plus d'information ?


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 mars 2013 à 17:00
0
Merci
Bonjour,
- Comment as-tu installé cette appli ? Il faut le faire à l'aide de son setup d'installation et non par copie
- si Vista ou ultérieur : le setup.exe doit être lancé "en tant qu'administrateur", y compris si depuis un compte administrateur
- si Win 64 bits : l'installer en mode XP. Les activex de dépendances devant être ajoutés et enregistrés dans SysWow64
- si l'appli dépend d'un SGBD (système gestionnaire de base de données) particulier, il va de soit que ce SGBD doit également être présent sur la machine d'accueil.
Beaucoup de "si", comme tu le vois.
J'en ajoute un autre :
Si tu as acheté une appli sans documentation, tu en payes forcément les conséquences.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
GRONI 22 Messages postés mardi 2 juin 2009Date d'inscription 21 juin 2014 Dernière intervention - 17 mars 2013 à 19:52
0
Merci
Bonjour,
1/je vous remercie pour votre réponse
2/je m’excuse si je me suis trompé
3/ vraiment je cherche de l'aide pour mon problème
le développeur c'est un privé,le logiciel c'est pour la gestion des entreprises,il comprend
(initialisation,comptabilité, déclaration fiscale,immobilisation et gestion commerciale)
il marchait très bien sur l'ancien disque dur
système Windows xp pack2 office 2007
après la panne j'ai changé uniquement le disque dur je n'ai pas changé le système ni l'office
j'ai toute la librairie VB à ajouter à Windows/système32 avec l'activation qui est un fichier et non pas un code chiffré et je suis sur qu'il a relation avec le numéro de série du disque dur.
seul le module principal "initialisation" en le démarrant m'envoie le dit message et se referme.
Commenter la réponse de GRONI
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 mars 2013 à 20:09
0
Merci
j'ai toute la librairie VB à ajouter à Windows/système32 avec l'activation qui est un fichier et non pas un code chiffré et je suis sur qu'il a relation avec le numéro de série du disque dur.

En rouge : pas clair pour moi ! ===>> traduis donc, s'il te plait
En vert : qu'est-ce qui te permet de l'affirmer ?

Et moi, je pense à autre chose, compte tenu de ce que tu as dit plus haut.

Une question : pourquoi nous mentionnes-tu maintenant Office 2007 ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 mars 2013 à 20:13
0
Merci
Et tu n'as pas clarifié un point :
As-tu, oui ou non, un setup d'installation de cette appli (un fichier setup.exe et ses "accessoires") ?
Si non : confirme qu'il s'agit bien d'une application VB6


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 mars 2013 à 20:24
0
Merci
Si, par contre, l'appli est en VB6 et qu'elle t'a livré avec un setup d'installation, mais qu'elle était accompagnée dune clé d'activation liée au n° physique de ton disque dur, nul ne pourra rien pour toi sans commettre quelques "infractions" à la fois complexes (il faudrait venir sur ta machine) et ne correspondant pas à l'esprit de ce forum.
Le message d'erreur que tu reçois, par contre, donne à penser à l'inexistence d'un autre logiciel encore (probablement SGBD, mais sans pouvoir l'assurer).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 mars 2013 à 20:24
0
Merci
et qu'elle t'a livré ===>> et qu'elle t'a été livrée


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
GRONI 22 Messages postés mardi 2 juin 2009Date d'inscription 21 juin 2014 Dernière intervention - 17 mars 2013 à 21:10
0
Merci
bonjour,
je vous remercie,
voilà, je veux dire que j'ai la librairie des fichiers DLL ET AUTRES à ajouter par copier/coller à système 32,
et j'ai le fichier d'activation que je clic sur pour activer le logiciel (et qu'il soit sur le même disque dur avec le logiciel)
je possède aussi le setup exe pour l'installation
tous les fichiers exe sont en vb sauf le setup il ne se decompile pas avec decompilateur vb6
j'ai dis aussi office 2007 c'est pour préciser que je n'ai rien changé.
pour la relation de l'activation avec le numéro de série du disque dur:j'ai contacté un collègue qui a le même logiciel du même développeur et qui m'a confirmé ça.
merci infiniment
Commenter la réponse de GRONI
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 mars 2013 à 21:21
0
Merci
1)
voilà, je veux dire que j'ai la librairie des fichiers DLL ET AUTRES à ajouter par copier/coller à système 32,

Ce n'est pas une installation orthodoxe (qui doit normalement se faire par un setup.exe, livré par le créateur de l'azppli).
2) copier/coller dans système 32 ne suffit pas pour des dll et activex. Il faut en plus les enregistrer par regsvr32 (ce que fait seul le setup)
3)
je possède aussi le setup exe pour l'installation

C'est lui, qu'il te faut lancer !
4)
sauf le setup il ne se decompile pas avec decompilateur vb6

il n'y a pas à le "décompiler" (et aucun "décompilateur VB6" ne saurait (fort heureusement) le décompiler valablement
5)
j'ai le fichier d'activation que je clic sur pour activer le logiciel

si une clé d'activation t'est demandée alors et que cette clé est "liée" à un N° physique ===>> je t'ai répondu : tu ne pourras rien faire de manière pouvant être traitée ici (bien évidemment).
Voilà.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 18 mars 2013 à 00:10
0
Merci
J'ajouterais au passage que le message d'erreur ne fait pas référence à un refus d'activation, ni à un message provenant du développeur et à destination de l'utilisateur du logiciel. Il s'agit d'un message d'erreur de fonctionnement du logiciel du à l'absence d'une référence.

Comme précisé par moi ainsi que par uc (que je salut au passage), l'absence d'un fichier ou l'absence d'enregistrement de celui-ci dans le registre provoque cette erreur.

Mais tu n'as toujours pas répondu à la question qui aurait permis de résoudre simplement ton erreur. Le message que tu énonce est-il complet ? Connais-tu le nom de la librairie ou de la classe manquante ?


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
GRONI 22 Messages postés mardi 2 juin 2009Date d'inscription 21 juin 2014 Dernière intervention - 18 mars 2013 à 13:27
0
Merci
bonjour,
je vous remercie infiniment pour les informations que vous m'avez fourni,
1/ le message que je reçois est complet:"la variable utilise un type d'automation non géré par visual basic" erreur 458.
2/je résume:
pour installer je clic sur setup.exe,je désigne le disque de destination qui est D:/,
après installation message de redémarrer la machine puis copier/coller les DLL et autres a systeme32 puis clic sur fichier activation.
en clicant sur le module principal je reçois le dit message.
je tiens à vous préciser que la première installation a été faite par le développeur lui-même pour moi et pour mes collègues.
Commenter la réponse de GRONI
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 18 mars 2013 à 13:47
0
Merci
Ah ok, c'est déjà plus clair, donc c'est l'exécutable qui sert à "activer" ton programme qui ne fonctionne pas.

Mon intuition était donc bonne, le développeur n'a pas pris soin de tester la procédure complète d'installation sur un PC "vierge".

A mon avis, le programme qui te permet d'activer le logiciel sert à inscrire les composants dans le système. Malheureusement le développeur à du oublié que pour fonctionner, le programme d'activation a lui aussi besoin que ses composants soient inscrits dans le registre.

Je doute que cela résoudre ton problème mais par précaution commence par télécharger et installer ceci sur ton PC :

http://www.microsoft.com/fr-fr/download/details.aspx?id=24417
http://download.cnet.com/Visual-Basic-5-0-Runtime-Module/3000-2070_4-10009051.html (Attention aux pubs)

Une fois ces deux runtimes installés redémarre la machine puis essaye de relancer l'activation. Si cela ne fonctionne pas alors dresse-nous une liste des fichiers que tu dois copier dans le système.


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.