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 22 janv. 2007 à 12:00
Bin.... vérifier tout le temps que c'est OK.
Avec plein de If CestBonCaRouleContinue Then partout dans le logiciel, avec une bonne variété de condition d'acceptation pour qu'ils se ressemblent pas trops, ça doit être bien chiant à tous les trouver pour les faire sauter.
jorion7
Messages postés13Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention27 novembre 2007 4 févr. 2007 à 15:13
Bonjour à tous,
Je réalise quelques logiciels et je protège mes 'oeuvres' d'une facon très simple:
Dans un premier temps, je réalise le programme complet
Ensuite, je met en commentaire les lignes , sous programmes ou fontionsqui ne doivent pas être accessibles aux utilisateurs non enregistrés.
De cette manière mes versions demos sont incassables
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 5 févr. 2007 à 13:26
Salut Moustachu,
Pour le Jmp, le programme (sauf erreur) de ma part est édité en hexa, la personne qui si connait bien à vite fait le tour de trouver les conditions qui, soit te permette de valider un code d'activation de ta source, un fois trouver le "cracker" remplace celle-ci(demande de code) par un JMP, ainsi une fois recomplier, quand tu lances l'appli, plus aucun code(exemple) n'est demandé..
Mais je pense que Renfield, s'aura mieux t'expliquer que moi même...
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 5 févr. 2007 à 13:36
Tout à fait Explorer, JMP est une instruction assembleur Intel x86 qui signifie "Saut inconditionnel" une sorte de Goto en VB
Pour schématiser, tu trouvera à coup sur dans ton programme une fois décompilé en asm un schéma du style :
- Test du code activation
- Si test pas bon -> Saut à #Erreur Code# souvent fait par un JNE d'ailleurs, autre instruction asm 'Saut si non egal'
- Saut à #Suite Prog#
- #Erreur code#
- ..........
- #Suite Prog#
Ce schéma sera cracké généralement en :
- Test du code activation
- Saut à #Suite Prog# C'est que le JMP vient remplacé le JNE (ou autre saut conditionnel)
- Saut à #Suite Prog#
- #Erreur code#
- ..........
- #Suite Prog#
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #