Protéger son programme

foussouy Messages postés 55 Date d'inscription dimanche 14 août 2011 Statut Membre Dernière intervention 1 février 2013 - 25 nov. 2012 à 09:58
 Utilisateur anonyme - 17 déc. 2012 à 12:31
Bonjour,
Suite à mes recherches qui n'ont rien donné je vous pose donc la question :
J'essaie de protéger mon application de sorte à ce que lorsqu'elle s'installe sur un PC et ne peut être installer que sur celui-ci, un peu à la manière d'un numéro de série mais le problème et que je ne connais pas de code ou quelque chose de ce genre pour la protéger.
J'ai fais des recherches et j'ai trouvé des sujets qui parlait de hash, de protection par lecture de l'adresse ip du processeur, de la carte mère un peu à la manière de Windows mais je ne sais pas comment l'implanter dans mon application .
Si quelqu'un pouvait me donner une solution ^^. Merci d'avance

Je code sous VB 2010 express.

38 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 nov. 2012 à 07:54
Un truc tout bête qui dissuade les "voleurs".
Il n'est vraiment valable, toutefois, que pour les applications personnalisées (de type commercial, par exemple) et non pour les jeux, applications de dessin, etc ... :
Inclure dans son appli, en dur, les "marques" de l'acheteur (le logo, les entêtes) et les faire apparaître sur certains documents et vues.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 nov. 2012 à 08:14
Un autre "truc", valable, lui, pour un ocx que l'on ne vend que pour une seule application. J'ai utilisé ce truc il y a quelques années et l'avait perfectionné (pouvait servir pour plusieurs applications, dont la liste devait être donnée par l'acheteur) :
Lier le nom des applis acceptées à une clé et interrompre (avec message explicite) l'insertion et/ou l'utilisation de l'ocx en l'absence d'un fichier caché quelque part, fichier créé lorsque la clé saisie (à donner) est correcte. Cette méthode part toutefois du principe selon lequel les "tricheurs" qui veulent utiliser cet ocx ne penseront pas à nommer leur appli exactement du même nom que celui pour lequel un "copain" aurait obtenu la clé correspondante.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
26 nov. 2012 à 08:19
Certains sharewares ont un numéro lié au non de l'acheteur.
De ça, en principe, on en change moins souvent que de HDD !


Calade
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 nov. 2012 à 08:22
Certes, Calade, certes, mais :
Par quel code comptes-tu vérifier que le nom du tricheur est bien celui de l'acheteur ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
26 nov. 2012 à 08:26
Si la clé que tu fournis a té calculé en fonction du nom de l'acheteur, elle ne correspondra pas avec le nom du tricheur.


Calade
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 nov. 2012 à 08:34
Tu m'as mal compris ===>> on y va d'un scénario ===>>
Dupont est l'acheteur légal. A l'installation, il lui est donc forcément demandé de donner la clé CLEDUPONT. Et alors ?
- soit du as mis son nom en dur dans ton produit et lui a donné la clé ==>> et dans ce cas, n'importe qui, partant de ce disque d'installation, n'aura qu'à donner cette clé ! ===>> pas bon !!!!
- soit, à l'installation, tu demandes le nom , puis la clé (donnée pour ce nom) et vérifie. OK ===>> cela devient très visible et DURAND, à qui DUPONT aura donné une copie de son disque d'installation, répondre qu'il s'appelle DUPONT puis donnera la clé que DUPONT lui a communiquée.
Et je ne vois absolument pas ce qui ne permettrait de savoir que DURAND n'a pas donné son vrai nom ...

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
26 nov. 2012 à 11:54
Effectivement, dans le cas où l'acheteur légal est de mèche avec le tricheur.
Je n'avais pas prévu ce coup là.


Calade
0
foussouy Messages postés 55 Date d'inscription dimanche 14 août 2011 Statut Membre Dernière intervention 1 février 2013 1
26 nov. 2012 à 12:06
Le logiciel n'est pas payant à l'origine, cela fait 2 ans que je le distribue et il n'est point commercial mais éducatif pour un établissement, il est associé à des livres mais le problème c'est que ce logiciel se retrouve sur les ordinateurs de personnes n'appartenant pas à l'établissement scolaire !
C'est pour cela que la décision de les protéger de cette façon a été prise
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 nov. 2012 à 13:01
Effectivement, dans le cas où l'acheteur légal est de mèche avec le tricheur

C'est forcément le cas, puisqu'il "commence" par lui "donner" une copie du cd d'installation (tu crois qu'il le fait pour lui permettre de faire mieux pousser des fraisiers ?)

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
26 nov. 2012 à 20:58
Salut

Perso, pour protéger mes softs, j'ai choisi l'adresse MAC de la carte réseau, couplée à un texte représentant le nom et le lieu du client.
Je rassemble tout ça dans une clé de 15 caractères "hexa" en jonglant avec des sauts de caractères, des décalages de lettres dans le code ASCII + un chiffre hyper secret qui change à chaque soft (1, 2, 3 ...).
Bien sûr, il faut pouvoir décomposer tout ça en marche arrière avec les mêmes règles pour que le soft compare avec la clé.
Libre cours à ton imagination.
Je n'ai pas à faire à des hackers fous, non plus.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Utilisateur anonyme
26 nov. 2012 à 22:58
Bonsoir jack, il est bien ton système.
Il faut être inventif.
Il y a aussi le stockage d'une clef ou autre à distance que le logiciel va lire avant de démarrer. Mais il faut une connexion internet.
0
foussouy Messages postés 55 Date d'inscription dimanche 14 août 2011 Statut Membre Dernière intervention 1 février 2013 1
26 nov. 2012 à 23:09
Alalala il y en a des idées à prendre mais vous mettez un peu la charue avant les bœufs ^^.
Ce sont toutes des idées très intéressantes surtout celle de Jack mais si j'ai bien compris il faut que la clé générer soit la même que la clé du logiciel sans que le client me l'ai au préalablement communiqué ?
0
Utilisateur anonyme
27 nov. 2012 à 02:31
Bonjour,

Tant qu'à y être. Certains contrôles de VB6 venaient avec deux licenses attachées. Une en exécution et une en conception. Si bien que certains contrôles que l'utilisateur recevait avec un exécutable tiers pouvait être utilisé avec l'exécutable pour lequel il était programmé, mais pas avec un autre. Si bien que la question était redondante sur les forums de Microsoft. "J'ai voulu utiliser le contrôle xxxx, (ou le contrôle calendrier d'Access, qui était protégé de la même façon) dans mon programme VBA mais j'ai un message d'erreur..."
0
foussouy Messages postés 55 Date d'inscription dimanche 14 août 2011 Statut Membre Dernière intervention 1 février 2013 1
9 déc. 2012 à 11:19
Bon c'est bon j'ai réussi à créer un clé Registre "Crypté" ( J'ai utiliser des fonctions mathématiques, des +1, *6,.... ).
Mais je n'arrive pas à vérifier la clé que je crée, enfin j'arrive à vérifier la présence mais je n'arrive pas à avoir sa valeur pour la tester. J'ai chercher plusieurs code tel que :

If My.Computer.Registry.ClassesRoot.OpenSubKey("HKEY_CURRENT_USER\Test\ValeurTest\Maclé") Is Nothing Then
            MsgBox("Cette clé n'existe pas !")
        Else
            MsgBox("Cette clé existe")
        End If


Mais aucun résultat :(
0
Utilisateur anonyme
9 déc. 2012 à 12:43
j'ai réussi à créer un clé Registre "Crypté"
Montre donc ce code là.
0
foussouy Messages postés 55 Date d'inscription dimanche 14 août 2011 Statut Membre Dernière intervention 1 février 2013 1
16 déc. 2012 à 18:17
Mon code est le suivant pour générer la CLE que j’intégrerais au logiciel :

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Randomize()
        Dim a As String
        a = CInt(Rnd() * 1000000000)
        a = a - 85
        a = 3 * a
        a = "Z" & a
        Label1.Text = a
    End Sub


a correspond à la valeur de la clé registre mais je ne sais pas comment faire pour vérifier sa présence :(
0
foussouy Messages postés 55 Date d'inscription dimanche 14 août 2011 Statut Membre Dernière intervention 1 février 2013 1
16 déc. 2012 à 18:20
EDIT : le label sert pour l'instant à l'utilisateur afin qu'il connaisse sa "SERIAL KEY" ^^, je le remplacerais par une textbox ou je ne sais pas quoi pour l'instant ^^
0
Utilisateur anonyme
17 déc. 2012 à 12:31
Pour obtenir la valeur d'une clé registre on utilise GetValue comme montré ici.

Concernant ton code,
1 - Commence par activer Option Strict dans les propriétés de ton projet et corrige les erreurs.
2 - Randomize est obsolète, utilise une instance de la classe Random et sa fonction Next.
3 - Par commodité et en admettant que ta variable 'a' soit un Integer on écrit :
a -= 85

ou :
a *= 3
0
Rejoignez-nous