|
Les
protections standards
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
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.
|
Code hexa original
|
Code hexa patché
|
| 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.
|