Peut-on empêcher un programme d'être cracké ?

Delphicool

Protection des applications Delphi contre le crack

- Titre : Peut-on empêcher un programme d'être cracké ?

- Auteur : Delphicool

- Parution : 1 janvier 2005

- Mise à jour : 7 décembre 2019

- Licence : Copyright ® 2005 Delphicool. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Définition d'un crackeur

- II. Le problème

- III. Comment procède un crackeur ?

- IV. Comment protéger un logiciel alors ???

- V. Ce qu'il faut éviter

- VI. Conclusions

I - Définition d'un crackeur

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 leur plaît.

Ou que cette protection est déclarée inviolable par le concepteur.

Il ne faut 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èmes de protection Internet pour s'introduire dans un PC ou sur un serveur FTP.

II - Le problème

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 où 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 AntiSoftice pour Windows et pour NT, mais les crackeurs ont conçu des Anti AntiSoftice.

III - Comment procède un crackeur ?

La 1re é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 choses sur un exe. Dès que le crackeur a repéré de quelle protection commerciale il s'agit, il n'a qu'à télécharger, sur des sites spéciaux, l'utilitaire anticette protection ; il y a pratiquement un antixxx pour chaque protection commerciale. Prenons l'exemple du Packeur Petite, soi-disant indépackable, l'antiPetite 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 quel que 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. Alors 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, soi-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.

IV - Comment protéger un logiciel alors ???

À mon avis (personnel), si le crackeur veut cracker votre logiciel, il y mettra le temps qu'il faudra, mais je vous garantis qu'il y arrivera (car il y a aussi une entraide entre les crackeurs, comme celle des codeurs Delphi ou autres).
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 Dongle 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éressant, 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échargements 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. Évitez si possible les protections toutes faites.

V - Ce qu'il faut éviter

1. Les comparaisons directes avec le serial valide.
Essayez de découper le serial en petits morceaux et comparez chaque morceau séparément et dans le désordre.

2. Les boîtes de message d'alerte, style « Votre mot de passe n'est pas valide ».
C'est la première chose que cherche le crackeur novice.

3. Les crypteurs commerciaux, sauf si vous avez fait une bidouille, pour cacher les sections de l'exe ou autres.
Un crypteur commercial laisse une griffe dans les sections 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.

4. Évitez 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.

5. Si le serial est valide ne mettez pas votre application en Full directement, demandez un reboot pour chaque mot de passe entré.
L'utilisateur honnête devra rebooter qu'une seule fois (deux s'il se plante), et cela ne le gênera pas trop. Le crackeur sera embêté de devoir rebooter chaque test.

6. Une fois l'utilisateur enregistré, évitez de mettre le serial trop visible, un KeyGen aura vite fait d'être programmé.
Découpez votre serial, crypter les différentes parties, etc. (selon votre imagination).

7. Évitez de rabâcher la même protection pour chaque version différente.
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 être une base pour le crackeur.
Sachez qu'il y a des didacticiels de cracking, comme pour la programmation.
Le crackeur débutant n'a qu'à lire quelques lignes pour déjouer votre application.

VI - Conclusions

Bien sûr, il y a plusieurs façons de protéger une application, mais je ne les connais pas toutes. Essayez d'embêter un peu les crackeurs novices.

Pourquoi un soft est-il cracké ?

1. Parce qu'il est très intéressant.

2. La protection est nouvelle (cela attirera les crackeurs confirmés).

3. L'auteur dit que son soft est inviolable (une bêtise pure).

4. Le prix du soft est très élevé (le crackeur va le cracker pour le mérite, sans vraiment en avoir besoin).

5. …

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 ? 'tends c'est un crackeur ! » (hein…)

1. Si oui, et alors ?

2. 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épondrai pas.

Certains 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 sûr de ne pas être cracké !

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…