none
Proteger un programme. RRS feed

  • Discussion générale

  • Bonjour,

    Une question que beaucoup de monde doit se pose.

    Comment protéger mon programme?

    Le protéger contre la copie..... C’est presque impossible, mais contre l'utilisation.... ca ça peut être possible.

    Si vous avez une manière, un truc,.... je suis prenant.

    Merci de votre aide

    A bientôt

    Salva

     

     

    lundi 15 novembre 2010 11:38

Toutes les réponses

  • Bonjour,

    Quel est la version de votre Visual Studio ?

    Je crois que j'ai vu un pluging ou un exemple dans les 101 exemples ou il y avais une protection par un N° de série, sinon vous avez aussi DotFuscator qui permet de ne pas dé-compiler le code (mais d’après des expert y a toujours des moyens)

    Avez vous commencé a faire une protection ? quelles sont les méthodes utiliser  ?

    Dans le cas ou votre programme est vraiment utile a tout le monde des Craqueurs ferons sauté la protection alors mieux vos utiliser toute les options qui ce proposerons a vous

    La meilleurs protection est pour moi une activation en ligne comme STEAM la fait avec tout ses jeux ...

     

    A bientot


    Cordialement, Troxsa
    lundi 15 novembre 2010 12:01
    Auteur de réponse
  • Bonjour,

    Je n'ai pas encore commence a "protéger" mon programme.

    J'ai pense a une activation par DIGIPASS, un peut comme un compte bancaire mais en plus simple.

    Un code de +/- 6 chiffres, que l'utilisateur devrais entrer dans le programme.

    Dans ce cas: Comment trouver des DIGIPASS programmable, a quel prix?

    Je n'ai pas de site en ligne actuellement. Donc pour l'activation en ligne, c'est "difficile" pour l'instant

     

    Je vien de trouver sur le net ceci :  DIGIPASS KEY 200

    Merci de votre intervention

    Cordialement

    Salva

     

    lundi 15 novembre 2010 12:16
  • Bonjour,

    la clef USB Digipass 200 est une bonne protection mais ne compte pas que sur elle.

    Je te conseille plusieurs fois dans ton programme de faire un test de présence d'un fichier que tu auras copié dans un endroit que seul toi connait comme %systemroot% ou bien dans la base de registre.


    fred
    lundi 15 novembre 2010 13:03

  • Fred75, je pense que le fais de faire une modification dans le registre ou la copie de fichier est largement traçable avec divers outils (Process Monitor, Process Explorer, et bien d'autre)

    Avoir une clef d'enregistrement vérifiable sur le net dans une base de donnée bien protégé n'ai pas piratable (ou pratiquement pas)

    Il y a une solution qui serait je pense aussi fiable qui est la création d'une TABLE WMI (rechercher MOF) a zero ou pas, si la table existe alors l'application est debloqué sinon elle est inutilisable ...

    A bientot


    Cordialement, Troxsa
    lundi 15 novembre 2010 13:21
    Auteur de réponse
  • Merci Troxsa,

     

    J'ai trouvé deux articles intéressants qui expliquent très bien le problème:

     

    http://www.larp64.com/f_cracking.html

     

    http://www.larp64.com/f_lARP64Pro.html#bookmark1


    fred
    lundi 15 novembre 2010 18:26
  • Salut !

     

    Une méthode efficace pour protéger une application est d'utiliser le HWID (Hardware Identification).

    Le HWID étant unique sous chaque système d'exploitation installé, il suffit de demander aux personnes autorisées à utiliser le programme de générer leur "clé" et de l'envoyer afin d'autoriser le programme uniquement sur leurs ordinateurs.

    Le code ci-dessous permet de récupérer la clé de l'ordinateur sur lequel il est exécuté : (il faut être administrateur car on accède au registre.)

    Dim regPID As RegistryKey
      regPID =Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion", False)
      Dim regGUID As RegistryKey
      regGUID = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Cryptography", False)
    
     Dim idProduit As Object
    
      idProduit= Replace(regPID.GetValue("ProductId"), "-", "")
    
      Dim GUID As Object
    
      GUID = Replace(regGUID.GetValue("MachineGUID"), "-", "")
    
    

     

    Une fois la clé obtenue on peut l'inclure au programme et tester à chaque lancement si la clé correspond  par la même méthode.

    Je sais pas si j'ai été clair et si ça correspond bien à ton attente. Le hic étant de faire une étape supplémentaire : demander aux utilisateurs de générer la clé..

     

    • Modifié AtHackX lundi 15 novembre 2010 21:00 Code mis au clair
    lundi 15 novembre 2010 20:48
  • Bonjour,

    Je suis tombé par hasard sur ton poste après avoir lu un peu ce qui se faisait, déjà, me concernant, on le voit dans ma gignature en bas, j'ai largement une cionquantiane de logiciels distribués à mon actif (ludiques statiques et utilitaires), alors je me suis penché sur le problème, toutefois la protection n'est pas infaillible, ni utile de la même façon selon les utilisateurs futurs, l'utilité du produit ainsi que les perspectives de vente.

    En effet, si ça s'adresse à des néophites de l'informatique, ce n'est pas la peine de protéger, ils ont déjà du mal à comprendre comment installer un logiciel. De même si tu en vends peu en nompbre ou prix, c'est pareil, il n'est guère utile de protéger la vente de cinq logiciels par mois.

    Donc, peut être devris-tu commencer par nous dire quel est ce logiciel et ce que tu estimes pouvoir en tirer péciniairement, car sans cette information il est difficile d'aiguiller rationnemmmenent.

    Pour ce qui conserne le fait de craquer une protection, ce n'est pas accessible à tout le monde, et surtout il faut que le logiciel soit d'un grand intérêt pour qu'on se lance dans ce genre de clack.

    Mais d'une façon générale, la meilleure arme contre la copie c'est la nouvelle version permanente ...

    On peut faire une protection en créant dans l'exe un numéro X unique pour chaque logiciel, puis à la première installation le programme va rechercher un fichier caché Y (propres lui aussi à chaque logiciel). Si le programme n'a jamais été installé, il doit demander une clef d'activation via Internet, à ce moment on peut savoir en faisans un fichier des clefs utilisées et de l'enregistrement 'une numéro de certaines pièces de l'ordinateur. Si ce logiciel a déjà été installé (tentative de copie ou de déplacement), ou si c'est sa première utilisation, dans ce cas il aura sa clef d'activation, et la première installation va créer un fichier caché contenant une identification Y. Ensuite, pour les autres utilisations le programme va démarrer que s'il trouve le fichier caché Y. De facto, si on copie le fichier, il ne marchera pas faut d'avoir copié le fichier caché, il demandera donc sa clef d'activation via Internet, mais sa clef lui sera refusé car il l'a déjà eu. In fine, en cas de changement de logiciel de place, de PC, l'utilisateur devra demander par exemple un échange de logiciel, ainsi on repart sur une autre numérotation, etc ... Ceci fonctionne mais c'est lourd pour le distributeur qui doit personnaliser chaque logiciel, chaque clef, chaque fichier caché et maintenir une présence Internet quasi permanente afin de pouvoir répondre à une demande d'acquisition ou de déplacement ...

    Cordialement.

     

     

     

     


    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire
    lundi 15 novembre 2010 20:51
  • Je crois que l'activation via Internet et avec HWID est la plus sûr. Sauvez un fichier ou dans le registre peut-être très facile à découvrir, surtout si quelqu'un décompose ton application!
    Microsoft MVP C# || gabrielmongeon.com
    mardi 16 novembre 2010 14:07
    Modérateur
  • AtHackX, c'est une bonne idée, pour etre encore plus sur il faudra crypté cette clef de registre en plus ou ce n'est pas nécessaire ?

    EhJoe, je pense en partie comme vous sur certain utilisateur du produit. je pense quand même que le fait de mettre une trace local sur la machine utilisateur est tres facile a retracé meme si cela suffit pour des utilisateurs lambda qui ne savent pas comment faire pour certaine choses.

    La conclusion que j'en fais si l'application est pour des utilisateurs lambda ou pour une société ou l'application doit tournée le mieux est certainement une trace local sur les postes (PC) utilisateur comme le registre ou le fameux fichier comme EhJoe le dit.
    Maintenant si l'application est destinée au grand public (hors société) l'activation sur le net sera le plus adapté pour contrer le piratage divers.

     

    A bientot


    Cordialement, Troxsa
    mardi 16 novembre 2010 14:49
    Auteur de réponse
  • Bonjour,

    Le mieux c'est de faire comme l'activation Windows.

    Microsoft fait un hachage de 10 éléments matériels du PC et vérifie ces éléments à chaque démarrage

    http://technet.microsoft.com/fr-fr/library/bb457054.aspx#EDAA

    Cela permet d'éviter que l'utilisateur fasse une copie de son disque dur (très facile quand il s'agit d'une VM) et d'utiliser le logiciel une deuxième fois gratuitement.

     

     


    fred
    mardi 16 novembre 2010 16:57
  • Bonjour Gabriel Mongeon,

    En réponse ... Oui on peut toujours tracer mais ce n'est pas à la portée de tout le monde, pour attiser la dextérité des fortes têtes en assembleur il faut déjà un enjeu économique certains, en sommes-nous là ?

    Concernant la copie d'un fichier, il faut déjà le coder un peu en dedans, lui donner une extension, un nom et une résidence anonyme, changer les dates aussi, ça rend déjà plus difficile une simple recherche ; de toute façon reste un problème : celui de ne pas être bloqué par des droit d'accès ou pire, une matrice ...

    N'est-ce pas feu le bien aimé baron Guy des Cars qui disait dans "Le Faussaire" que pour un artiste-peintre, le début de la célébrité c'est quand on commence à être copié :o)

    Cordialement.

     


    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire
    mardi 16 novembre 2010 17:03
  • @TroXsA : Non il n'est pas nécessaire de la crypter, la clé étant unique sous chaque pc.

     

     

     

     

    mardi 16 novembre 2010 17:26
  • Bonjour,

    Comme je vois, ce n'est pas évident !!!!!!!!! lol lol lol

    Une clef cryptée ce n'est pas l'idéal.

    Donc...... je ne sais pas.

    Merci de vos réponses et avis

    A bientôt

    Salva

     

     

    mercredi 17 novembre 2010 10:12
  • Bonjour Salva,

    C'est surtout par rapport à ce que tu veux faire avec ce programme, sa diffusion, sa valeur, le risque d'être dupliqué ...

    Cordialement.

     


    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire
    mercredi 17 novembre 2010 11:19
  • Bonjour EhJoe,

    Mon programme c'est la gestion d'une collection de timbre.

    Le programme en lui-même, ca m'a pris +/- 3 mois.

    Mais les fichiers il y +2 ans de travail.

    C'est la raison pour la quelle, j'aimerais le protéger

    En ce qui concerne le prix, +/- 50€

    Voila, qu'en pensez-vous?

    A bientôt

    Salva

     

    mercredi 17 novembre 2010 11:52
  • Bonjour Salva,

    Ah ben, j'en pense que le programme ça se trouve presque gratuit assez facilement, donc ce n'est pas le programme en lui-même mais les photos qui sont imporantes, comme tu le dis, et ... est-ce que par hasard ça rentrerait dans les ressources ? Certes ça pourrait faire un gros programme mais là il me semble que ce serait protégé, je ne connais pas la taille ni si ça peut y entrer, sais-tu ?

    Cordialement.

     


    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire
    mercredi 17 novembre 2010 12:08
  • Bonjour,

    Il y a +7500 photos/Images

    Un fichier avec +/- 12 tables.

    Dans le fichier +7500 enregistrements de 20 champs

    Ca fait du boulot !!!!

    Vus la quantité de photos/images, ce n'est pas possible de les mètres dans la ressources, d'autant plus que chaque année il faut ajouter des nouvelles.

    Ces photos/images sont dans un répertoire.

    La particularité de mon programme, c'est qu'il fournis les images et un fichier déjà remplis.

    Les programmes gratuits ne donnent que le fichier vide et pas d'images.

    Chaque chose pour son prix !!!!

    Cordialement

    Salva

     

     

    mercredi 17 novembre 2010 12:25
  • Bonjour,

    Ce qui serait bien c'est de faire un shareware valable 30 jours avec ou pas des fonctions limitées et et laisser la possibilité à l'utilisateur de t'envoyer un mail pour savoir si 50 euros c'est juste, trop ou pas assez. Cela permet de sonder ton "électorat"

     


    fred
    mercredi 17 novembre 2010 12:35
  • Bonjour

    Merci pour cette lecture interressante, ainsi que les liens mentionés.

    Cordialement,


    Jean PERIGNY, Développeur
    samedi 19 février 2011 05:04
  • Tu peux voir de ce côté : c'est facile à utiliser :

    http://www.codeproject.com/KB/vb/registration.aspx?msg=1822077


    Cordialement Pascal http://www.scalpa.info
    samedi 19 février 2011 14:55
  • SOSInformatique,

    Je doute que de faire du copier coller de votre dernier commentaire partout dans les forums soit crédible, c'est plus un état d'esprit de faire votre PUB partout... ! et cela na pas sa place ici !
    si vous voulez vendre votre trouvaille (que du monde soit intéresser) il faut que vous en parliez a un point technique et dire comme ça fonctionne dans l'environnement Visual Studio "VB"
    et faire un site digne de votre savoir faire ...

    je doute vraiment ...  je déconseille toute personne de s'aventurer dedans ... sauf si d'autre viendrait a dire le contraire !

     


    Cordialement,
    Xavier
    Alias Troxsa My M@iL
    samedi 16 avril 2011 08:14
    Auteur de réponse