[
- |
[
- Explications :
Le monde du cracking
|
L'enregistrement fait référence au fait d'avoir payé le shareware.
J'ai divisé la chose
en 2 parties
![]() |
Les
protections standards
- le nag-screen - le time-trial - les fonctions désactivées / la démo / la démo réactivable - l'enregistrement par serial, unlock code, regkey ou keyfile - le CD check |
![]() |
Les
protections renforcées
- le checksum - le CRC - les routines d'anti-debugging - la cryptologie - les anti-copies CD - les packers ( compresseurs ), crypters et protecteurs - les dongles |
Le Nag-screen
Le nag-screen est une jolie
boite windows qui vous rappelle que vous utilisez un logiciel qui n'a pas
été payé.
Son apparition se fait généralement au lancement du programme
et parfois en cours de son utilisation.
Logiciels
: Winzip, premières version d'Acdsee, etc.
Solution(s)
: On le fait disparaitre en émulant le mode enregistré,
en fesant sauter le programme par dessus, etc.
Le time-trial
L'utilisation du logiciel
vous est assuré pendant une durée limitée (généralement
30 jours).
Après cela, le logiciel
ne peut plus être lancé ou seulement partiellement.
Logiciels
: Xara3D, Winrar, PaintShopPro, etc
Solution(s)
: On peut casser ce système en "gelant" le temps, en déroutant
les conditions en cas de fin de durée ou en émulant le mode
enregistré,etc.
Les fonctions désactivées / la démo / la démo réactivable
Les fonctions désactivées
sont des utilisations que le logiciel vous refuse si vous n'êtes
pas enregistré. Dès que l'enregistrement a été
effectué, vous recevez un code ou autre, vous permettant de faire
fonctionner votre logiciel de façon compléte.
Le programme est donc COMPLET
mais bridé.
Logiciels
: Winrar, GifMovieGear,etc.
Solution(s)
: On émule le mode enregistré, etc.
La démo est par principe
basé sur le même principe sauf qu'à la différence,
les fonctions désactivées ne peuvent pas être relancées.
Vous devez recevoir une version complète du logiciel pour pouvoir
les utiliser.
Lors de la compilation du
logiciel, ces fonctions sont ABSENTES du code !
Logiciels
: Dance/Rave/... Ejay, Adobe Photoshop, LordPE ( ancienne version. Depuis
le 26/03/2002, en release complète ! ), etc
Solution(s)
: Si la fonctionnalitée est facilement modélisable, on la
reconstruit ( niveau + ou - élevé en cracking/reversing )
sinon rien !
Bien que le terme de démo
soit souvent utilisé à tort pour décrire un shareware
qui peut, malgrè tout, être activé avec toutes ses
fonctionnalitées ; par principe, la démo est INCRACKABLE
!
Ce système de protection
indéplombable se retrouve assez souvent mais présente deux
inconvénients majeurs pour les concepteurs / éditeurs des
logiciels.
En effet, il faut prévoir
deux versions du logiciel : une complète et l'autre tronquée
ce qui représente un coût financier et horaire assez important
selon la complexité et la taille du logiciel.
La démo complétable
est l'envoi d'un ou plusieurs fichiers (DLL, etc) par le concepteur / éditeur
après paiement, qui permettront au programme de fonctionner complètement.
Logiciels
: J'ai oublié son nom : /
Solution(s)
: Distribution des fichiers manquants ( donc non crackage ) ou Reverse
Engeenering si possible...sinon rien.
L'enregistrement par serial, unlock code, regkey ou keyfile.
Certainement la protection la plus utilisée pour débloquer un shareware. L'intérêt financier est en effet très intéressant : on maile un code (serial, unlock code) ou un petit fichier (regkey, keyfile) à l'acheteur au lieu de plusieurs kilos, voir mégas d'un programme.
Le serial est un code débloquant,
calculé à partir du nom de l'utilisateur et éventuellement
d'autres informations ( société, e-mail ), voir pour les
plus vicieux sur les caractéristiques de votre PC !
Logiciels
: Beaucoup ! Winzip, CloneCD, etc.
Solution(s)
: Trouver un serial, réaliser un keygen si possible, émuler
le mode enregistré, etc.
L'unlock code est juste un
code à insérer. Il peut être universel ( = toujours
le même pour n'importe qui ) ou basé sur des informations
que le logiciel renvoit : code qu'il faut fournir au concepteur pour pouvoir
calculer l'unlock code.
Logiciels
: Xara3D, etc
Solutions
: Trouver ce code, réaliser un keygen s'il n'est pas universel,
émulé le mode enregistré,etc.
Le keyfile est un fichier
d'enregistrement que le logiciel doit trouver dans un certain endroit,
généralement son répertoire, pour pouvoir être
enregistré.
Logiciels
: Backup Assistant, etc.
Solutions
: Créer un keyfile ou un keymaker, émulé le mode enregistré,
etc.
Le regkey est un fichier
qui va, après avoir été cliqué, placer des
informations dans une ( ou des ) clé( s ) de la base de registre.
Ces informations seront contrôlées par le logiciel pour pouvoir
être en mode enregisté.
Logiciels
: Aspack, etc
Solutions
: Créer une regkey ou un keymaker, émulé le mode enregistré,etc
Le CD Check
Essentiellement pour les
jeux sur CD, le CD Check est le simple contrôle de la présence
du CD de jeu dans le lecteur. Si celui-ci n'est pas présent ou ne
présente pas les caractéristiques d'un CD original, le jeu
ne se lance pas.
Logiciels
: des jeux comme Half-Life, Age of empire, etc.
Solutions
: Renverser les conditions du lecteur vers le disque,etc.
Les protections renforcées
font appels généralement à une aide extérieure
( logiciels de protections, dongles, etc) pour pouvoir assurer l'intégrité
du logiciel.
Le but est de protéger
avant tout le logiciel d'un déplombage et éventuellement
de pouvoir accompagner l'utilisateur pour l'enregistrement du logiciel.
Un des plus connu dans ce cas est VBox qui propose une interface d'achat
du logiciel ( exemple sur les produits Macromédia : Flash... ) et
de tenter de protéger le logiciel contre toute tentative d'attaque.
: )
Le checksum
Le checksum est une technique
basé sur la protection anti-virale.
En effet, les virus infectant
les fichiers, peuvent se greffer sur les executables, etc en injectant
leur code en fin de fichier. Leurs techniques de camouflage et de furtivité
leur permettent de sauvegarder certains paramétres ( taille, date
de modification, de création du fichier infectée ), les laissant
normaux aux yeux des néophytes. Toutefois, on peut tester l'intégrité
d'un fichier en comparant la somme de tous ses bytes ( checksum ) avec
la somme de tous ses bytes avant l'infection ( dernièr scannage
par l'AntiVirus ).
Il est évident qu'après
infection, il y aura une différence très supérieur
de plusieurs centaines d'octets. De même pour un programme cracké
!
Prenons un exemple bidon
: j'ai un 75## ( = jnz ou jne ) qui ne se fait jamais et moi, je veux !
Donc solution simpliste,
je patche en 74## ( = jz ou je ), le programme saute bien.
|
|
727475616C460000 | 727474616C460000 |
S = 72+74+75+61+
6C+46+00+00 S = 26E |
S = 72+74+74+61+
6C+46+00+00 S = 26D |
Le checksum du programme a changé !
Habituellement, le logiciel vous annonce la couleur avec un "le programme a été modifié" ou "virus détecté, merci de réinstaller le programme" ou ne se lance pas.
Logiciels
: Comspeed ( tut de +Frog's Print ), une vieille version de winzip, etc.
Solutions
: Patché la condition sur le test du checksum, faire un total
de bytes identique.
Le CRC ( Code de Redondance Cyclique )
Le contrôle du CRC fonctionne sur le même principe que le checksum. La méthode de calcul est différente mais la différence entre 2 CRC indique que le fichier a été modifié.
Logiciels
: Pas rencontré pour l'instant.
Solutions
: Patcher la condition sur le test CRC, fixer la valeur du CRC avec
celle du prog patché.
Les routine d'anti-débuggage
Cette méthode de protection
doit être couplé à un compresseur et/ou crypter d'éxécutable
pour être efficace.
Le principe est de détecter
et/ou de faire planter le débugger dont le cracker se sert, afin
qu'il ne puisse pas arriver jusqu'au code d'un programme.
Si le programme est packé
et/ou crypté, on se retrouve aveugle car le désassemblage
ne peut être fait et le débuggage "impossible".
Nombreuses routines existent
: Meltice, int 68h, exception...
Logiciels
: De plus en plus ! Mais surtout du fait de l'application de logiciels
protecteurs comme ASProtect, Armadillo..., qui peuvent faire de l'anti-debugging.
Solutions
: Patcher soit-même les strings de son Softice pour éviter
certaines détections ( SICE, NTSICE...), utiliser Frogsice qui cachera
notre debugger et détournera les tentatives de détection,
tracer avec Softice, etc.
La cryptologie
L'ajout de cryptographie
( RSA, MD5... ) dans des logiciels présente l'intérêt
de rendre la protection très résistante face à une
attaque de crackers, même expérimentés...
Logiciels
: le plus connu pour ça, CLONE CD ( ! ) ainsi que Winrar, etc. (
source : Aciburn )
Solutions
: Manger du poisson et acheter du café !
Les anti-copie CD
Relativement connu des graveurs
fous de CD, ces techniques ( illegal TOC, dummy files... ) et ces logiciels
de protection ( Safedisc, Laserlok, Securom, CD-Cops... ) sont plus ou
moins anéantis par des logiciels comme CloneCD.
Logiciels
: principalement des jeux, Opposing Force, Red Alert 2, etc.
Solutions
: CloneCD pour la copie et étude pour rippage,etc.
Les packers, crypters et protecteurs
Ces trois protections ont
le point commun de rendre le désassemblage impossible à froid.
En effet, notre executable
( exe, DLL, etc ) a été compressé ( packer ), crypté
( crypter ), voir les 2, puis on y a détourné son point d'entrée
( là où commence notre programme ), afin qu'au lancement
une routine puisse décompresser et/ou décrypter le corps
de notre programme.
Une fois, la chose faite,
on se rebranche sur le point d'entrée et le programme se lance.
L'étude du programme
doit donc se faire théoriquement en Live ( debbugger ) afin de pouvoir
voir quelque chose du code.
Le protecteur inclut en
plus des techniques d'anti-debugging, de tests du PE Header afin de rendre
plus dur le travail du cracker.
Packer : UPX, Aspack, Petite,
PECompact,etc.
Crypter et protecteurs :
PE-Protect, Asprotect, PEShield, Y0da's Crypter, tElock, Vbox (se basant
sur le même principe ), etc.
Logiciels
: CloneCD, Flash, Dreamweaver,etc.
Solutions
: manual unpacking ou generic unpacker, c'est-à-dire : faire
un Dump sur le disque de notre exécutable quand celui-ci a fini
de se décompresser. Le code est alors potentiellement désassemblable.
Reste le problème des IAT plus ou moins en état, car le programme
dumpé peut ne pas fonctionner.
Les Dongles
Certainement la protection
la plus chère et la moins souple !
Le dongle est une protection
matériel ( sorte de prise ) que l'on branche sur le port imprimante
ou USB.
Le logiciel envoit un appel
vers le port où le dongle est fixé et celui-ci renvoit une
réponse que le logiciel interprétera.
Il est très rare
de tomber sur ce type de protection, car les logiciels l'utilisant ne sont
pas distribués comme shareware et on comprend pourquoi !
A quoi, cela servirait-il
d'acheter l'utilisation d'une protection de plusieurs centaines d' euros,
si l'on met en distribution en shareware le logiciel protégé
? Cela reviendrait à mettre un morceau de viande dans une cage aux
lions ! ( oui, l'image est un peu exagérée. ; ) Mais le challenge
de dédongler un programme est assez intéressante en terme
de connaissances.
Donc, vous l'aurez compris,
rencontrer une protection par dongle sera rare ; à moins que vous
n'en croisiez une sur votre école / fac / travail...
![]() |
![]() |
Logiciels
: Des "lourds" ! Seuls ceux très chers peuvent se permettrent ce
genre de protection lourde et coûteuse : WinDev, AutoCad, 3D StudioMax,
etc.
Solutions
: Emulation du dongle, patch des conditions..., cela reste très
variable selon le logiciel et le type de dongle.
Voilà j'espère
avoir fait un peu le tour des protections majeures que l'on peut rencontrer
dans le monde des sharewares et des logiciels professionnels.