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

 Delphi Discussion :

Je voudrais proteger mon application par un générateur de clé par ID de machine


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut Je voudrais proteger mon application par un générateur de clé par ID de machine
    Salut tous le monde, je veux protéger mon application contre la copie par un générateur de clé en donnant ID de la machine et il généré une clé pour cette machine. je ne sais pas comment faire cette protection. s'il vous plait aidez moi. et merci à tous.

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 871
    Points : 11 357
    Points
    11 357
    Billets dans le blog
    6
    Par défaut
    plusieurs pistes ici : http://www.developpez.net/forums/d90...-trouver-guid/

    VMProtect semble souvent cité

  3. #3
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut
    Salut, j'aime bien que tu me donnes un exemple détaillé sur l'utilisation de VMProtect pour créer un générateur de clé selon pour une application à protéger. et merci.

  4. #4
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 419
    Points
    1 419
    Par défaut
    Une fois installé la version démo de VMProtect tu as des exemples Delphi avec.

    les clefs tu peux les générer depuis VMProtect c'est pas utile de faire un générateur de clef (mais il y a aussi des exemple pour en faire un).

    tu charge ton exécutable dans VMProtect et tu suis les tuto de l'aide pour ajouter la protection par clef avec blocage de la clef sur un id matériel.

    Le fichier d'aide en Français est disponible sur leur site.

    Moi je peux plus m'en passer

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 560
    Points : 25 156
    Points
    25 156
    Par défaut

    Tu penses que tant de gens vont "pirater" ton logiciel, est-il si extraordinaire que cela ? Quel présomption !



    C'était encore une réalité, il y a dix ans, maintenant avec l'Open Source, on trouve tout ce que l'on veux gratuitement (avec des licences tordues) des logiciels plus performant, mieux conçus, plus ouvert que des logiciels payants fossilisés dans un business plan archaïque !

    Tutoriels :
    Créer une Application Shareware avec Delphi

    Des sujets proches :
    "Web Start" en quelque sorte
    securiser une application delphi
    Gestion de licence
    Comment protéger mon programme contre une copie ?
    Besoin d'aide pour sécuriser mon logiciel


    Si tu découvres un système de protection absolu, vend le à Microsoft, même eux n'ont pas réussi à empêcher le pirate de leur OS !

    Tu as des sociétés spécialisées dans ce domaine comme

    VMProtect, ionworx, PC Guard, ... tu as plein sur le marché dont 90% sont crackés, les 10% restant ne survivront pas longtemps ! Comme ça, chaque année, ces éditeurs peuvent sortir un nouveau système de sécurité qui remplace l'ancien cracké !

    Tous ces outils sont payants !

    Une Solution à la con sans devoir récupérer l'ID de Machine
    Car pense à cela, comment récupérer cet ID ?

    Qui va le fournir, un autre programme qui modifiera le tient ?

    Tu prévois une ressource vide de 256 octets, lorsque le programme se lance, il regarde la ressource, si vide (genre que des zéros)
    Tu lit le numéro de Série du DD, de la carte mère, l'@ MAC de la carte réseau, la licence windows et j'en passe !
    tu concottes un binaire avec ça que tu encode avec une clé interne (un petit AES par exemple), tu l'écrit via UpdateResource dans la fameuse ressource !

    Au second lancement, le programme lit la ressource, il voit qu'elle contient des trucs, déchiffrement du bloc, compare les différents éléments mémorisés et ce qu'il y a en cours !
    Si égale, c'est bien la même machine
    Si différent, tu abandonnes le lancement (pas de Application->Run par exemple)

    Evidemment, si une version "vide" circule librement, cela ne passe pas, mais si c'est toi qui te charge d'installer le programme sur les postes concernés, tu veilleras à marquer l'exe par un premier lancement !
    Si tu distribue plus largement ton programme, pense à chiffrer ton Setup pour éviter que WinRAR ou 7-ZIP ne puisse extraire le binaire d'origine

  6. #6
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut
    J'ai pas compris bien comment utiliser VMProtect, est ce qu'il y a un autre facile à utiliser ?

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    @ShaiLeTroll: tu crois vraiment que ta méthode est efficace ? A mon avis n'importe quel tipiak sera capable de voir que ton programme va lire des infos dans la zone des ressources et y modifie des trucs... Un petit coup de patch et hop, ils feront en sorte que le programme ne vérifie rien du tout et ta protection tombe à l'eau.

    Bien sûr que le shareware comme on le connaissait est quasi mort, il faut s'adapter et ce n'est pas facile, mais il y a sûrement de la place pour tout le monde. Un bon logiciel qui rend un vrai service, à un prix raisonnable, je dis, pourquoi pas. Un exemple récent d'un logiciel "propriétaire" qui me donne envie de débourser: Sublime Text 2. Bon, il reste un peu cher pour moi mais un petit effort de leur côté et je pourrai en faire un du mien...

    Et puis les systèmes de protection, s'ils sont bien utilisés, permettent de réduire pas mal le risque. Mon petit shareware qui est sur le net depuis plus de 10 ans n'a jamais été cracké à ma connaissance - bon ça ne rapporte pas des masses, mais ça se vend régulièrement - et j'utilise une "vieille" version d'un système de protection (qui n'a pas été cité ici). Ensuite c'est vrai que je suis sur une niche, et que mon logiciel est assez confidentiel et que ça joue probablement sur sa capacité de protection, les crackers visent d'abord les logiciels grand public, les trucs très connus, histoire de se faire connaître. Ca ne les intéresse pas forcément de cracker tel ou tel petit logiciel dont personne n'a entendu parler.

    Sinon je pense qu'avec le "cloud" et la possibilité de décentraliser une partie des données, il y a moyen de créer des logiciels qui ne nécessitent pas de protection sur la partie client; c'est peut-être l'avenir pour les développeurs indépendants, avec les mobiles, tablettes, ... les gens sont prêts à payer pour avoir accès à leurs données où qu'ils soient...

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 560
    Points : 25 156
    Points
    25 156
    Par défaut
    Citation Envoyé par GoustiFruit Voir le message
    @ShaiLeTroll: tu crois vraiment que ta méthode est efficace ?
    , tu n'as pas vu l'intitulé de la méthode !
    Citation Envoyé par ShaiLeTroll Voir le message
    Une Solution à la con ...
    Citation Envoyé par GoustiFruit Voir le message
    A mon avis n'importe quel tipiak ... ta protection tombe à l'eau.
    Comme tous systèmes de protection, c'est faillible, et puis tout dépend quel tipiak, déjà faudrait qu'ils entendent parler du fameux programme, n'est ce pas encore plus difficile ?

    Surtout que bm1990 utilise le BDE\Paradox qui en soit un système de protection car tellement pénible à installer avec l'UAC
    Déjà, perso, je ne voudrais pas utiliser un logiciel basé sur une technologie obsolète depuis 15 ans !

    Citation Envoyé par GoustiFruit Voir le message
    Un bon logiciel qui rend un vrai service, à un prix raisonnable, je dis, pourquoi pas.
    Faut-il réussir à un faire un "bon logiciel" !
    Avant de vouloir le protéger, faut le rendre populaire

    Citation Envoyé par GoustiFruit Voir le message
    Ensuite c'est vrai que je suis sur une niche, ... Ca ne les intéresse pas forcément de cracker tel ou tel petit logiciel dont personne n'a entendu parler.
    Dans le mille !

    Citation Envoyé par GoustiFruit Voir le message
    Sinon je pense qu'avec le "cloud" et la possibilité de décentraliser une partie des données,...
    C'est ce qui était évolué dans le sujet WebStart

  9. #9
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut
    Est ce qu'il y a une solution ou non ?

  10. #10
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 560
    Points : 25 156
    Points
    25 156
    Par défaut
    As-tu lu tous les sujets ?
    On est plusieurs a avoir balancé des idées variées !

    Il y a autant de solution que ton imagination le permet !
    Le problème c'est que tout dépend la cible de ton logiciel !

    Si c'est des utilisateurs lambda, une pauvre protection comme celle avec un exe auto-modifiable, ça passera
    C'est minable, mais c'est un début !
    Avant de protéger ton programme !
    Pense à son déploiement surtout le BDE et autres DLL !
    Ton logiciel est-il populaire pour être "pirater" ?

    Si c'est des informaticiens, même sans aller bien loin, suffit de mettre ton logiciel dans une machine virtuelle comme WMWare ou VirtualBox et de distribuer la VM pré-installée !

    Après un système de protection via un serveur de licence ...

  11. #11
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut
    Je trouve que la meilleure solution est de générer un numéro de série pour chaque machine selon son identificateur.

  12. #12
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut
    Mais comment le faire. Je veux une solution détaillée si c'est possible et merci.

  13. #13
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 560
    Points : 25 156
    Points
    25 156
    Par défaut
    Comment penses-tu récupérer l'ID de la Machine ?
    Pour moi, cela me semble difficile, un numéro de licence que tu fournis à chaque personne avec un petit logiciel chez toi pour les gérer, serait plus pratique !

    Qui sera responsable du déploiement ? Toi ? un installateur ? n'importe qui ?
    Où sera-t-il disponible ? Quel moyen de téléchargement ? Seras-tu le seul ayant accès ?

    Tu n'as pas lu les liens que j'ai fourni à 10h36 :

    Tutoriels : Créer une Application Shareware avec Delphi en particulier 3. la protection par une clef d'activation

    Avec ce système, il est possible d'installer ton programme mais pas de l'utiliser tant que la clef n'a pas été saisie !
    Ainsi ton programme récupère les informations nécessaires pour identifier un ordinateur ou alors tu fournis une clé d'enregistrement unique (comme celle de Delphi par exemple)

    Soit un calcul local permet de savoir si le programme peut démarrer ou pas (comme dans le tutoriel)
    Soit un Gestionnaire de licence distant sous forme d'un WebService (DataSnap par exemple) indiquera si le programme peut démarrer ou pas

    "toto" achète ton logiciel, tu lui donne un code d'identification "123-456-789"

    Cas du ServiceWeb appelé par ton programme, ce dernier envoie les ID (Matériel et\ou Clé)
    Dans ce WebService (côté serveur), tu sais que pour l'utilisateur "toto" pour le code "123-456-789", il y a eu zéro installation
    Donc, en retour le WS incrémente le compteur et fourni une clé d'activation "azertyuiop" (issu d'un calcul sur "toto" + "123-456-789")

    Un petit calcul au prochain démarrage entre "toto" + "123-456-789" + "azertyuiop" doit générer une valeur qui indique que l'ensemble est cohérent
    cela déterminera que l'on peut démarrer le programme sans passer par le WS

    Si le même utilisateur utilise une 2eme fois sa clé d'enregistrement "toto" + "123-456-789", le WS refusera la demande !
    Comme le gestionnaire de de licence de BDS, je n'invente rien !

    Ceci n'est qu'une solution parmis tant d'autres, comme on disait il y a des outils pour cel VMProtect, ionworx, PC Guard, ... c'est payant !

    On ne peut pas faire cette démarche de recherche à ta place !

Discussions similaires

  1. Cherche algorithme numero de serie pour proteger mon application
    Par arnofly dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 26/02/2012, 21h01
  2. proteger mon application avec un serial
    Par futurist dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 17/09/2008, 14h01
  3. Comment proteger mon application par un mot de passe
    Par Sabrina_of_darkness dans le forum Langage
    Réponses: 9
    Dernier message: 01/04/2006, 23h46
  4. [VB.NET] Proteger mon site par mot de passe
    Par stephane93fr dans le forum ASP.NET
    Réponses: 8
    Dernier message: 19/01/2004, 08h53
  5. Comment faire générer du rtf par mon application?
    Par nickylarson dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/08/2003, 09h35

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