Peut-on
empêché son programme d'être cracker?
|
C'est une question qui revient
souvent, et je réponds à chaque fois, car c'est un des
thèmes que j'aime bien.
Tout d'abord, quelle est
la définition d'un crackeur ? :
- c'est un passionné, qui adore l'informatique, qui en vient
à cracker un logiciel pour le plaisir.
La plupart des crackeurs ne crackent pas un soft parce qu'ils en ont
besoin, mais parce que la protection utilisée leurs plaît.
Ou que cette protection est déclarée inviolable par
le concepteur.
Ne surtout pas confondre Crackeur et Hackeur!
- Crackeur : personne qui déjoue la protection d'un logiciel,
conçoit des générateurs de clés,...
- Hackeur : personne qui déjoue les système de protections
internet pour s'introduire dans un PC ou sur un serveur FTP.
Si l'on met une protection
par numéro de série qui serait généré
par telle ou telle chose, il y a un moment ou le serial que l'utilisateur
entre va être comparé au serial valide pour être
enregistré.
Et c'est bien là le problème. Il existe un logiciel
qui s'appelle SoftIce, qui est capable de faire tourner votre PC pas
à pas, comme le debugger de Delphi.
Et avec un peu de connaissance sur les API Windows, le crackeur a
vite fait de trouver où se niche le bon serial.
Il y a bien des Anti-SoftIce pour Windows et pour NT, mais les crackeurs
ont conçus des Anti-Anti-SoftIce.
Comment procède un crackeur
?
- La 1 ère étape
consiste à voir de quel style de protections il s'agit.
- Ensuite, le crackeur observe les réactions du logiciel s'il
entre un mauvais numéro de série ;
évitez de mettre des messages du style : "Mauvais code
d'enregistrement" (ce sont des indices facilement repérables
)
- Le programme est-il crypté, packé ou autres :
pour voir cela il y a des softs qui révèlent des tas
de chose sur un exe.
Dès que le crackeur àrepéré de quelle
protection commerciale il s'agit, il n'a qu'à télécharger,
sur des sites spéciaux, l'utilitaire anti(cette protection)
( il y a pratiquement un anti-xxx pour chaque protection commerciale
)
Prenons l'exemple du Packeur Petite (http://www.lockless.com/),
soit disant indépackable, l'anti Petite existe et marche très
bien. Et cela est valable pour pas mal de protections commerciales.
- Une fois l'exécutable
remis à neuf, il est désassemblé avec Windasm,
afin de retrouver les indices que le programmeur aura mis sans faire
exprès et en pensant bien faire en prévenant l'utilisateur,
qu'il a entré un mauvais code.
- Une fois que le crackeur a trouvé cet indice, il observe
le code ASM, pour comprendre où se trouve la routine.
Et là la plupart des crackeurs savent très bien renverser
une protection à leur avantage.
Le If que vous mettez dans votre application et qui va décider
si le soft est enregistré ou pas, n'est autre qu'un interrupteur,
et le crackeur recherche cet interrupteur, pour le mettre sur ON quelque
soit le code.
Bien sûr ceci est une grosse approche, certaines protections
sont plus ardues que d'autres.
Mais à mon Humble avis, aucune protection n'est InCrackable.
Car c'est bien une Personne qui a créé cette protection.
Et bien pourquoi une autre personne ne serait-elle pas du même
niveau si ce n'est plus, pour déjouer cette protection.
Vous avez sûrement entendu parler des Cartes de crédit,
soit disant inviolables. Vous devez sûrement vous souvenir de
la personne qui avait alerté les banques en disant qu'il avait
trouvé l'algorithme des cartes bancaires et qu'il savait leur
faire dire oui tout le temps. Et bien le cracking c'est pareil mais
en plus simple.
Comment protéger un logiciel alors ???
A mon avis (personnel), si le crackeur veut cracker votre logiciel,
il y mettra le temps qu'il faudra, mais je vous garantie qu'il
y arrivera (car il y a aussi une entraide entre les crackeurs, comme
celle des codeurs Delphi ou autre).
Les protections par Dongle ne sont pas si efficaces que cela (un Dongle
est une protection physique sous forme de petit circuit-imprimé
qui se branche derrière votre PC). Ces Dongles ne sont rien
d'autre qu'une sorte différente d'interrupteur.
On peut bien sûr fournir
une version Light en téléchargement.
Là bien sûr, votre soft sera incrackable, mais si votre
soft est assez intéresant, il sera trés vite disponible
en version complète sur les sites que l'on appelle Warez (sites
américains et français qui proposent des téléchargement
illégaux)
Cela dit je ne dis pas de ne pas protéger vos applications,
au contraire, mais soyez inventifs.
La simple protection par mot de passe est trop simple. Evitez si possible
les protections toutes faites.
Ce qu'il faut éviter :
- Les comparaisons directes
avec le serial valide.
Essayez de découper le serial en petit morceaux et comparez
chaque morceaux séparément et dans le désordre.
- Les boîtes de message d'alerte, style "Votre mot de passe
n'est pas valide".
C'est la 1 ère chose que cherche le crackeur novice.
- Les crypteurs commerciaux, sauf si vous avez fait une bidouille,
pour cacher les sections de l'EXE ou autres.
Un crypteur commerciale laisse une griffe dans les section de l'exe,
ce qui est très gênant vu qu'il existe pas mal de décrypteurs.
Mais bon la signature du crypteur n'est pas toujours directement visible,
certaines chaînes Hexa sont aussi une signature.
- Evitez de mettre dans votre programme, une phrase du style "Merci
pour votre enregistrement".
Je sais il faut bien remercier l'utilisateur, mais vous pouvez le
faire par mail en lui envoyant le serial.
Car cette phrase sera visible dans le désassemblage de votre
exe.
- Si le serial est valide ne mettez pas votre application en Full
directement, demander un reboot pour chaque mot de pass entré.
L'utilisateur honnête devra rebooter qu'une seule fois (2 si
il se plante), et cela ne le gênera pas trop. Le crackeur sera
embêté de devoir rebooter chaque test.
- Une fois l'utilisateur enregistré, évitez de mettre
le serial trop visible, Un KeyGen aurra vite fait d'être programmé.
Découpez votre serial, crypter les différentes parties,
etc... (selon votre imagination)
- Evitez de rabâchez la meme protection pour chaque version
differente.
Si vous voulez faire payer pour une nouvelle version de votre produit,
ne faites pas la même protection, que la version précédente,
car cela pourrait etre une base pour le crackeur.
Sachez qu'il y a des didactels de cracking, comme pour la programmation.
Le crackeur débutant n'a qu'à lire quelques lignes pour
déjouer votre application.
Bien sûr, il y a plusieurs
façons de protéger une application, mais je ne les connaît
pas toutes.
Essayez d'embêter un peu les crackeurs novices.
Pourquoi un soft est-il cracké:
- Parce qu'il est trés intérrésant.
- la protection est nouvelle (cela attirera les crackeurs confirmés)
- l'auteur dit que son soft est inviolable (une bêtise pure)
- le prix du soft est trés élevé : (Le crackeur
va le cracker pour le mérite, sans vraiment en avoir besoin).
- ...
Je ne prétends pas être le roi de la protection, pas
du tout et loin de là. Je sais juste quelques petites choses,
sur les actions d'un crackeur. Je connais la mentalité de certains
crackeurs.
Certains, quand ils vont lire cet article, diront, mais qui c'est
ce DelphiCool, tant c'est un crackeur ??? (hein ...)
- Si oui, et alors ?
- Si non ça change quoi ?
De grâce ne m'envoyez pas de mail en me demandant si je suis
un crackeur ou pas, je ne répondrais pas.
Certain diront qu'un crackeur n'est pas capable de faire un programme
complet. Erreur pas mal de programmes ont pour auteur des crackeurs,
et je vous assure qu'ils sont trés bien. ( et FreeWare bien
sûr ).
Seul un FreeWare est sur de ne pas être cracké.
PS
: Ne vous basez pas sur mes applications, qui sont protégées,
mais FreeWare. Leurs protections sont ridicules, c'est juste un moyen
de comptabiliser les utilisateurs. Et comme les utilisateurs ne sont
pas des crackeurs, ça marche, ;-) (Attention, je ne dis pas
qu'un codeur Delphi n'est pas capable de cracker mes softs, mais chacun
son domaine)
par
DelphiCool
Haut
de page
|