cs_moustachu
Messages postés1079Date d'inscriptionjeudi 14 novembre 2002StatutMembreDernière intervention 1 janvier 2012
-
17 janv. 2007 à 12:42
cs_moustachu
Messages postés1079Date d'inscriptionjeudi 14 novembre 2002StatutMembreDerniè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
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 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.
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 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.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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 !
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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 #
cs_moustachu
Messages postés1079Date d'inscriptionjeudi 14 novembre 2002StatutMembreDerniè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.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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 #
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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 ....
cs_moustachu
Messages postés1079Date d'inscriptionjeudi 14 novembre 2002StatutMembreDerniè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 // !
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 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
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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 !
cs_moustachu
Messages postés1079Date d'inscriptionjeudi 14 novembre 2002StatutMembreDerniè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.
cavo789
Messages postés168Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention28 juillet 20091 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.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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...
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 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%.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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 !
cs_moustachu
Messages postés1079Date d'inscriptionjeudi 14 novembre 2002StatutMembreDerniè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 ??