Protéger mon application (Pour les pro de la Prog)

Résolu
DD05 Messages postés 53 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 11 juin 2010 - 31 janv. 2007 à 22:30
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 16 sept. 2011 à 11:30
Bonjour,

Je voudrais juste l'avis des pro. de la programmation. Je suis un débutant autodidacte.

J'ai réalisé une application. Elle ne sera installée que sur quelques PC.

Pour éviter qu'elle soit copiée et installée n'importe où, je l'ai protégé en utilisant la Mac adresse des PC.

Lorsque l'application se lance, je vérifie si la Mac adresse que j'ai
entré dans mon code VB6 correspond à la Mac adresse du PC où est
installé mon fichier exe.

Si l'application est installée sur un PC dont la Mac adresse n'a pas était saisie dans le code, l'application ne démarre pas.


Je voudrais savoir si c'est une bonne protection ? J'ai entendu parlé
du reverse engineering. Je ne sais pas ce que c'est exactement mais
peut-on dévérouiller ma protection par Mac adresse avec cette méthode ?

Est-ce qu'un bon Cracker arrivera à lancer mon application sur n'importe quel PC ?


Merci pour vos avis.


DD05

8 réponses

us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
31 janv. 2007 à 23:02
Bonsoir,

Drôle de question. Un cracker s'intéresse-t-il aux programmes débutants ? 
Franchement, le fait déjà de personnaliser un programme à certaines machines, c'est suremment suffisant. Arrêtes la parano ! Un cracker ne viendra pas casser ton programme spécifique à qlq machines, enfin...

Maintenant est-ce une bonne protection ? C'est sûrement pas trop mauvais, surtout si rien ne laisse penser que la protection repose sur une caractéristique du matériel... Je crois (de mémoire) que cela correspond au numéro de formattage... enfin, mon opinion c'est pas sur l'efficacité, mais plutôt sur la souplesse d'utilsation. En effet, si la machine subit un changement (nouveau formattage) est bien ton programme ne serait plus utilisable sans une nouvelle intervention. Et si tu veux le diffuser, (même sous contrôle) tu seras obligé d'intervenir encore dans le code... C'est plutôt pas terrible... le manque de souplesse condannera à échéance ton chef d'oeuvre.

Enfin, c'est mon point de vue... je laisse la parole à d'autres...

Amicalement,
Us.
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
31 janv. 2007 à 23:13
us_30, l'adresse MAC correspond au n° d'identification de la carte réseau sur le réseau, un peu l'équivalent de l'adresse IP sauf qu'il est unique, attribué par le fabricant.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 janv. 2007 à 22:50
Absolument sans aucun doute, suffira d'un 'JMP address' avant ta comparaison.

ciao...
BruNews, MVP VC++
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
31 janv. 2007 à 22:55
"... Est-ce qu'un bon Cracker arrivera à lancer mon application sur n'importe quel PC..."

Oui certainement et sans aucun doute. Et quelque soit la protection que tu mettra en place d'ailleurs.

Il n'existe pas de protection 100% efficace. Il n'existe d'ailleurs aucune protection efficace. La seule efficacité que l'on peut mesurer c'est le temps de résistance de la protection.

Quant à l'adresse MAC elle n'est pas attribuer au PC, mais à son composant réseau. Exemple si tu ajoute des cartes réseaux à ton PC, il aura autant d'adresses MAC que de cartes.  Ca concerne les cartes Ethernet mais aussi les connections wifi, cpl, probablement aussi bluetooth, ...

Le reverse engineering consiste à decompiler ton executable pour comprendre comment il marche.

Et si tu as stocké l'adresse MAc dedant en dur et non criptée, elle va etre très faclement decouvrable et donc modifiable.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0

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

Posez votre question
DD05 Messages postés 53 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 11 juin 2010 1
31 janv. 2007 à 23:09
Merci pour vos réponses.


Je suis un peu parano tu as raison Us car mon application ne sera
diffusée que sur 2 PC et je pense effectivement que ma protection sera
suffisante.

Quant au fait d'intervenir dans le code à chaque fois dans le cas du changement de PC n'est pas un problème pour moi.


A+


DD05
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
1 févr. 2007 à 07:42
La Mac adresse se change en 2 minutes sur la grande majorité des PC actuels, mais si tes utilisateurs ne savent pas que c'est ton mode de protection pas de problème, sinon un autre moyen est le numéro de série du disque dur qui lui ne change jamais.
0
Anguel Messages postés 31 Date d'inscription mardi 8 novembre 2005 Statut Membre Dernière intervention 15 septembre 2011
15 sept. 2011 à 18:02
Bonjour

C'est ancien ce poste , mais vu que il n'est pas vraiment résolu .... je me permet a donner une suggestion ( j'ai pris le code sur ce cite même et j'ai le converti en vb net )

Voila donc:

Tu peux faire une vérification de N° de série ou bien l'adresse MAC ( pendants l’exécution de ton application ) et si c'est pas le bon numéro tu exécute ce code ( lequel va supprimer l’exécutable de son emplacement et le "pirate " restera avec son doigt ....):


Sub effacer()

'Procédure de suppression :

'Initialise une variable contenant un numéro de fichier libre...
' VBto upgrade warning: Num As Short OnWrite(Integer)
Dim Num As Short
Dim Dirr As String = Application.StartupPath & ""
Num = FreeFile

'On crée un batch dans le répertoire de l'appli (de toutes petites notions sont needed)
FileOpen(Num, Dirr & "supp.bat", OpenMode.Output)
PrintLine(Num, "@echo off") 'pour ne pas afficher les lignes de commandes
PrintLine(Num, ":debut") 'un label, comme en VB ou QB
PrintLine(Num, "del """ & Dirr & My.Application.Info.AssemblyName & ".exe""") 'ligne de commande DOS, tout simplement
PrintLine(Num, "if exist """ & Dirr & My.Application.Info.AssemblyName & ".exe"" goto debut") 'clair non ?
PrintLine(Num, "del """ & Dirr & "supp.bat""") 'on efface le batch pour virer toutes traces
FileClose(Num)

'Après avoir créé le batch, on s'en sert évidemment, et on quitte pour le laisser bosser
Shell(Dirr & "supp.bat", AppWinStyle.Hide)
Application.Exit()

'Cool NON ?

End Sub
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 sept. 2011 à 11:30
Toutes ces protections sont souvent inutilement fastidieuse, ou entraînent ensuite des responsabilités fastidieuses (en cas de changement de matériel, etc ...) et sont assez souvent vaines car si l'appli "vaut le coût" elles seront de toutes manières "craquées" et si elles "ne valent pas vraiment le coût", personne ne cherchera à tricher.

Il suffit souvent simplement, notamment s'il y a des documents à éditer, imprimer, partager, etc ... d'y inclure (en dur) le nom et/ou le logo de la société utilisatrice ===>> effet dissuasif en général fort suffisant


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Rejoignez-nous