Protéger son appi

Résolu
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012 - 17 janv. 2007 à 12:42
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012 - 5 févr. 2007 à 16:37
Bonjour,



Je vous expose un problème connu et un peu récurrent : La protection d'une application.



Il existe des sources, des messages sur le Forum, un peu tout se dit et je n'ai pas toujours la
compétence de différencier la "bonne pratique". La mauvaise pratique ressemble souvent à la bonne
pratique...mais c'est une mauvaise pratique.



Il s'agit plutôt de faire une sorte de compilation des connaissances de tout le monde.



Je vais essyer de structurer mon propos...attention, le message risque d'être un peu long.





//** Pour résumer ce qui va suivre : **/


Comment réaliser la persistance d'informations pour tous les utilisateurs d'une machine et décourager les
simples cracker (pas les gateaux apéro...) de bidouiller trop facilement notre protection ?
//**



Il ne s'agit pas de monter une protection béton qui couterait les millions d'euros.



Qu'il s'agisse d'une application démo, d'une version avec fichier de licence (exemple http://www.vbfrance.com/code.aspx?ID=3227
),
le problème récurrent est où et comment stocker les informations ? Si une application est bloquée, limitée,complète elle doit l'être pour tous
les utilisateurs de la machine.



Les réponses souvent données :
- Base de registre
  -> Apparemment, des logiciels permettent de surveiller l'activité de la BDR. Les problèmes de droits sont rarement
     évoqués, car un utilisateur "lambda" n'a le droit d'écrire dans la BDR que dans HKCU. Du coup pas de partage des
     données entre tous les utilisateurs...-> KO
    
- Répertoire application, répertoire windows : Problème de droits en écriture pour les profils utilisateurs standard.
 ->KO
 
- Reste le répertoire "Documents and Settings/All Users/Application Data" (Il s'appelle différemment pour les autres OS bien sûr ;o))
  -> On stocke les données dans un fichier super bien crypté.
 
On enregistre dans ce fichier (allez, nommons le myfile.key) une clé d'activation, le nombre d'utilisation...



Bon, on a aussi envi qu'une simple réinstallation ne permette pas de relancer un programme bloqué ou
que l'activation est conservée.





Problèmes :


    - myfile.key est donc installé par l'installeur mais pas désintallé ni réinstallé s'il existe déjà.
        -> Si le fichier est supprimé manuellement avant ré-installation, ça passe.
        -> Certains logiciel supervise l'installation afin de supprimer tous les fichiers installés. Là encore, ça passe.
    - le fichier myfile.key est sauvegardé après installation et recopié une fois le logiciel bloqué...les infos de blocage sont perdues...





Questions :

    Q1- Comment conserver les données (dans un simple fichier, plusieurs, autres ?) ?
    Q2- Si on choisit de limiter une application, comment se rendre compte que l'utilisateur ne change pas à chauqe fois la date avant de lancer l'application ?
    Q3- Si on choisit un code d'activation par exemple, un test est fait dans le programme du genre If codeActivationCorrect Then...
        Apparemment, je n'y connais rien, mais en debuggant le programme, on peut passer le test et du coup, bah, le programme croit quel'activation est OK.
        Comment tester ... sans IF ? Bon, on peut déjà empêcher le debug visiblement
http://www.vbfrance.com/codes/PROTECTION-ANTI-DEBUG_39635.aspx
...
   
Merci à ceux qui ont eu le courage de lire jusqu'ici :oP...et ceux qui proposent une réponse



++
Moustachu
 




 




 




 




 





++ Moustachu

27 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
17 janv. 2007 à 13:26
Boudiout...J'ai tous lu !!!, mais une réponse..dur..dur...
A+
Exploreur
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
17 janv. 2007 à 13:27
Salut,


J'ai croisé un prog que je ne citerais pas qui me disait cracker
régulièrement des executables (Genre sharewares limités dans le temps
ou les fonctionnalités).


Il me disait qu'il avait pas souvent de difficultés réelles... à part
quand l'executable était crypté. Une petite recherche sous Google
semble donner des résultats en matière de cryptage d'exe.


M'enfin bon.


Open source powaaa.
3
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
17 janv. 2007 à 13:31
Ahahah oui mais il n'y a pas de solution miracle ! C'est simple plus tu ajoute de methode de protection plus tu sera protegé. C'est un peu le principe utiliser par les logiciel casse couille. Car en general plus tu proteges moins l'utilisateur est satisfait. Pas de protection c'est encore LA protection. Mais biensur il est evident que cela ne peut pas s'appliquer aux programme qui manipule des informmation critique dans ce cas il faut multiplier les source.

Quoi qu'il en soit tout ce qui est sur le poste client est potentiellement vulnerable ! Je dis bien TOUT on ne peux pas dire j'ai verouillé mon application quand les protection ne s'applique qu'au client. Car celui qui est maitre de son pc peux craquer n'importe quoi. Par contre c'est beaucoup plus dure si on ajoute un tier ! Principe du windows geuine et autre activation par internet. Car dans ce cas l'heure la date et toutes les autres informations sont stocker sur un materiel dont l'utilisateur n'a pas acces. Mais encore faut il qu'il est internet ou que sa machine soit en reseau !

Par exemple de nombreuse societe utilise une machine tier pour insteller les logiciel et gerer les licence de ce fait chaque poste est monitoré et toute modifications est controlé. Tu as aussi le verouillage materiel comme certains logiciel de dessin ou de 3d qui utilise des clefs usb ou serie pour verouillé le logiciel la encore ce n'est qu'un eprotection client de ce fait rtien n'empeche de crée sa propre clef meme si cela necessite une bonne connaissance. On peux aussi louer ou acheter les connaissance d'autre personne pour craquer ou outrepasser les protection de sa machine.

Donc pour moi il n'y a pas de solution miracle pour une installation sur un post client. On ne peux que multiplier les protection pour brouiller les pistes ou tenter de dissuader d'eventuel pirate.

@+

E.B.
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
17 janv. 2007 à 13:50
Réponse ultra simple et (je l'espère) très claire :

Quelle que soit ta méthode utilisée comme protection, le premier "apprenti" un peu averti (moi, par exemple) éclatera de rire avant de craquer ton système de protection ...

Sauf si (et ce n'est pas "tout-à-fait" légal à moins d'obtenir une autorisation généralement liée à la réputation de la société distributrice, telle Microsoft) tu subordonnes la bonne exécution à un n° de disque dur ... et ne libères ... que sur ce disque là !

Tout le reste est foutaise pure et simple, sauf en ce qui concernerait le fonctionnement d'OCX liés, quant à eux, au nom de l'appli qui les contient.

A l'époque des disquettes, on pouvait encore agir matériellement (un petit trou). On ne le peut à l'époque des CD et des DVD.
 En plus du fait qu'il n'est pas permis d'empêcher une copie : même si tu le faisais (et c'est possible en raturant le cd, en comptant les octets demeurant utilisables, en en faisant une condition de poursuite de l'installation, etc...) il te faudrait faire un CD par acheteur !... .... le premier venu s'étant "cassé la figure" par une copie simple se dirigera alor's sans attendre vers une image.... et basta !

Amitiés et bonne chance dans ta recherche de la solution !
3

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

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
17 janv. 2007 à 13:52
Et même la protection par authentification ou activation, n'est pas des plus efficaces.

Il n'y a qu'à voir pour Vista. Cela fait des semaines que les cracks existe sur le web alors que les versions officielles ne sont pas encore sorties (plus que quelques jours). Encore plus fort, on peut même trouver une copie du serveur d'authentification à faire tourner en VM. Dans ce cas votre Windows ne sera pas cracké puisqu'il sera considéré comme authentifier sur un serveur Microsoft.

A l'heure actuelle la protection la plus efficace reste la protection matérielle, mais elle ne tiens pas très longtemps non plus.

Cela dépend aussi de la catégorie de public visé par ton logiciel. Si ton logiciel a une diffusion confidentielle, prennons l'exemple arbitaire d'un logiciel spécifique au métier banquaire, il est beaucoup moins probable que tu trouve non seulement des crackers, mais surtout des utilisateurs du crack. Contrairement à Windows, ou non seulement le panel de crackers est plus important, mais surtout le panel des utilisateurs interessés par une version cracké est sans comune mesure.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
17 janv. 2007 à 14:09
Ouhlalaaaaa... merci à vous tous...et moi aussi j'ai tout lu !

J'ai bien conscience qu'il n'y a pas de solutions miracles mais bien comme le dit EB, plutôt une solution casse-couille ... pour celui qui souhaite copier. La protection matérielle, on peut émuler de faux lecteurs ou copier des cd en gardant le même numéro de série, pour l'authentification via le web, on peut réussir à créer un faux serveur.

Je ne pensais pas à des solutions bien compliquées mais juste limiter une appli dans le temps par exemple ou un nombre d'exec qui soit pénible à controurner et pas trop pénible à mettre en place.

Il faut aussi que la protection soit en rapport avec le prix de l'appli.

++ Moustachu
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
17 janv. 2007 à 14:21
"...Il faut aussi que la protection soit en rapport avec le prix de l'appli...." et avec le risque de piratage aussi, ce que je disais dans ma réponse précédente. Pas necessaire de faire une usine à gaz, si le public visé n'est pas potentiellement un public crackeur.

Concernant, la protection matérielle, je pensais plus (et ce le cas de E.B. aussi je pense) à des protections par dongle qu'il faut faire fabriquer, ou alors programmer soit-même en fonction du client.

Effectivement, la protection que demande à inserer le cd, ne tient pas bien longtemps. Une image iso, un montage en lecteur virtuel et hop la protection a sauté.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
17 janv. 2007 à 14:26
Re-salut, Moustachu ...

Bon... un truc ? (ou plutôt un non-truc) ?

Dans ton installateur : une fonction recensant les volumes présents !

Je m'explique :
Il est devenu aujourd'hui rare de ne trouver que le disque C !!!

Si tu trouves un autre volume , sers-t'en pour y insérer un "drapeau".
Pourquoi ?
Ben... parce que les malins chercheront toujours à tourner la difficulté par une réinstallation, en général sur leur C, au besoin "nettoyé" de toute trace antérieure.

En mettant ton drapeau sur un autre volume et en vérifiant, lors de chaque installation, que ce "drapeau" n'existe pas déjà dans CHACUN des volumes présents (sinon tu "jettes"), là oui, tu les casses, les c***lles !

Celà n'est toutefois possible qu'en cas de présence de plusieurs volumes !

Je placerais personnellement un tel "drapeau" sur chacun des volumes présents et "jetterais" si j'en trouve un seul !

Utiliser la base de registre est un leurre..... totalement inefficace, contrairement à ce que d'aucuns tre raconteront ....

Amitiés
Jacques
0
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
17 janv. 2007 à 14:28
Tu as raison pour le public visé..pour un petit logiciel. Photoshop n'est pas fait pour les cracker et pourtant...

Oui, même par Dongle...il y a toujours des logiciels qui prennent l'empreinte...et puis j'ai encore un carton avec un dongle port parallèle...mais j'ai plus de port // !

++ Moustachu
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
17 janv. 2007 à 14:28
Et il ne faut pas oublié aussi que plus tu proteges moins tu es compatible par exemple tout les programme qui installe des driver ou cache des dll ou qui enregistre des extension dans le shell. Tout ça c'est bon pour surcharger son service apres vente :p

@+

E.B.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
17 janv. 2007 à 14:29
Pardon !
j'oubliais l'essentiel : donne à tes drapeaux une date de création de ton choix, bien évidemment, pour que les malins ne trouvent pas ces fichiers par une simlple recherche sur la date et l'heure de création !.... pardi !
0
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
17 janv. 2007 à 14:31
jmfjacques>Merci de ta réponse. Tu ne peux pas empêcher quelqu'un d'avoir une clé usb à l'install et pas après...il se peut aussi que tu n'ai pas le droit d'écrire sur un disque réseaux... là ça risque d'embêter l'utilisateur normal je trouve.

++ Moustachu
0
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
17 janv. 2007 à 14:37
Ebartsoft>Oui, mieux vaut éviter de pourrir les postes après installation. Le SAV risque de sonner mais plus le service achat !!

++ Moustachu
0
cavo789 Messages postés 168 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 28 juillet 2009 1
18 janv. 2007 à 12:45
En fonction de qui utilises votre soft, il y a quelques moyens de protection que vous pouvez mettre en place.

Pour faire simple (et je sais que l'utilisation est fort limitative) : dans ma boîte, nous avons tous un login sous Windows; login qui est bien sûr unique.   En fonction de ce login, je connais avec certitude mon utilisateur.   Via une base de données sur mon serveur; je peux donner des droits d'accès aux utilisateurs connus.     Un cracker aura tôt fait de réduire à néant mon code mais un utilisateur lambda utilisant mon soft (soit un EXE) ne saura pas comment la protection est codée ni où se trouve la database (qui sera référencée seulement depuis mon code et je pourrais crypter le chemin d'accès (que je stockerais p.e. sous forme de constante) et que je décrypterais en temps réel lors de la connexion).    C'est limitatif (faut être en entreprise) mais je crois que cela pourra aider certain.

Il me semble aussi que dans un monde plus ouvert (soit j'écris un EXE et je le mets à disposition sur mon site internet),  je pourrais faire à peu près la même chose en ayant ma database sur mon site.   Il y a certainement plusieurs limitations dont celle-ci : il faut que mon client soit connecté en permanence sur internet voire au minimum lors du lancement de l'EXE;

Comme vous l'avez tous dit, il n'existe pas à ma connaissance de solutions miracles (sinon pourquoi trouve-t-on tant et tant de soft piratés) mais il est quand même possible, à notre niveau, de mettre l'un ou l'autre mécanisme visant à, au minimum, rendre la tâche de piratage ou d'usurpations des droits méchament compliqués.

A chaque besoin son astuce.

Christophe
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
18 janv. 2007 à 13:10
Bonjour cavo,

Une seule question : quand tu fermes ta porte à double-tour, c'est pour te protéger de qui ? de l'innocent du village ou du truand ?


Je n'ose ici relater une expérience faire (sous Pick) en 1992. ....je vais la résumer :


- une société prestataire de services avait conçu et fait payer (cher... 700.000 francs nouveaux) une protection


- à mon arrivée à un certain CTI (Centre de Traitement de l'Information) d'un certain Ministère de renom, j'ai émis des réserves... on s'est moqué de moi... et on m'a demandé d'essayer de "violer".


- la chose ayant été faite en moins de 15 minutes, on a appelé le responsable de la société pour lui "demander des comptes", bien sur... Ce dernier s'est contenté, bouche bée... de déclarer (tenez-vous bien...) : "Ah oui, bien sur, si l'on fait çà !... Mais il ne faut pas le faire !"

Une précision : les 15 minutes n'ont été nécessaires que pour trouver la faille.
Ensuite : le viol ne demandait que moins de 3 secondes...

Sans Commentaires ...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 janv. 2007 à 13:22
t'es pervers quand même, pas franchement sexy un systeme de protection.....
alors le viol.....

(15 minutes de préliminaires, 3 secondes le passage a l'acte, "Sans commentaire", ok, mon 'lapin' ^^)

ok, je sors !

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
18 janv. 2007 à 13:42
renfield -->

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
18 janv. 2007 à 14:23
Il y a un autre probleme et de taille. Si on concoi son programme en ce disant je vais une protection pour tel ou tel type d'utilisateur rien n'empeche l'utilisateur susmentionné de telechargé un crack ou un patch fait par un autre type d'utilisateur. Par consequent il faut toujours envisagé le pire des cas. Donc il n'y pas de protection "efficace" à 100%.

@+

E.B.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
18 janv. 2007 à 14:44
Toi, ami Renfield, tu vas voir... (je vais te faire tomber de ton cheval....il me faut juste retrouver mes bolas argentinas ...)

Une réponse pour toi : Ce scénario, c'est parce que j'ai vieilli .... Avant c'était exactement le contraire (3 secondes de préliminaires et une bonne demie-heure pour le reste...)


Ah ! Je viens de les retrouver, ces bolas... Zut alors ... Elles ont vieilli elles-aussi, nom de nom.... (mais il y en a toujours 3... tiens ...)
Bon... je sors aussi !
0
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
22 janv. 2007 à 10:18
Bon allééé, si vous sortez tous, il n'y aura plus personne !!

Encore une fois, la question de base n'était pas de trouver une illusoire protection 100% efficace mais bien des pistes (que vous avez soulevées d'ailleurs...)

Quelque soit la solution choisie, il faut bien à un moment donné faire un test du genre "If CestBonCaRouleContinue Then..." Il parraît que c'est "mal" car on voit très vite en assembleur la structure IF..Comment faire si on ne fait pas un test ??

++ Moustachu
0
Rejoignez-nous