Un (vrai) pirate est quelqu'un qui voudrait faire circuler la vraie
information à tout le monde et d'une manière gratuite. En gros, le pirate
pense que tous les logiciels sont des sources d'informations. Il les distribue
donc à toutes ces connaissances gratuitement. Normalement, un bon pirate ne
devrait jamais, même s'il le peut, détruire ou modifier un bien qui ne lui
est pas propre. Par exemple les pirates de réseau ne devraient pas foutre
en l'air un site par simple plaisir. Par contre, il ne se génera pas pour
récupérer toutes les informations qu'il pourrait y trouver.
Voilà, ça a l'air simple, mais les auteurs de logiciels voyant qu'ils
ne vendaient aucun de leurs logiciels et que 90% d'entres eux étaient simplement
copiés sur disquette, les programmeurs ont inventés pleins de méthodes de
protection contre la copie (c'est asez normal). Mais les très bon pirates
sont aussi de très bons programmeurs et vice-versa. Les pirates réussissent
donc à percer le secret de protection des logiciels (on dit alors que le
pirate "cracke" le logiciel). Résultat: des protections de plus en plus dures
à percer.
Bon, je ne suis sûrement pas là pour vous apprendre à déplomber les
logiciels, ce serait illégal, et la vie de PrograZine serait en jeu. Cet
article a été fait à la demande d'un lecteur qui pensait que ce serait bien
de savoir comment les pirates s'y prennent, sans entrer dans les détails.
>Les méthodes de Cracking
En ce moment, une catégorie de logiciels a pris une place très
importante en micro-informatique: les sharewares (que je regroupe avec les
freewares).
Le programmeur inconnu vient d'écrire un programme qu'il trouve bien
et voudrait le commercialiser. Il veut donc se faire connaitre et montrer de
quoi est capable son programme. Il va donc sortir son programme en version
limitée pour que l'utilisateur puisse se faire une idée des possibilités
de son logiciel.
En fait, dans la plupart des sharewares, les logiciels sont fournis
en version complète!! eh oui. Seulement cette version complète n'est pas
accessible directement. Et c'est ces versions complètes que le pirate
essaie de dénicher.
Il faut savoir qu'il n'y a pas 36 possibilités de proposer des
versions limitées:
- les limites dans le temps: le logiciel ne sera utilisable que pendant
15 jours par exemple. Mais les programmes sont livrés en version complète.
Cette sécurité est la moins sûre. Il suffirait de faire croire au logiciel
qu'il est toujours la même date. Sur certains logiciels, n'importe qui sachant
se servir de l'horloge sous DOS ou sous Win pourrait déplomber le logiciel ...
- les limites dans le nombre d'utilisation: Le programme ne sera
utilisable que 10 fois par exemple. D'un point de vue interne, le programme
va forcément noter une valeur à un endroit du disque (souvent les fichiers
systèmes de Win) et incrémenter cette valeur à chaque utilisation.
La méthode de déplombage n'est, encore une fois, pas très dure. Il
suffit de trouver un programme qui note toute l'arborescence du disque dur
avant et après chaque utilisation (en temps normal, c'est utilisé pour
la desinstallation des logiciels).
- les protections par code: Le programme sera en version d'essai et
il sera attribué un numéro différent à chaque shareware.
Au moment du paiement, l'utilisateur reçoit une clé permettant d'activer
la version complète du logiciel. L'idée est donc de faire comme si on avait
payé. La méthode d'obtention de la clé est très différente suivant les cas:
soit on vous demande d'allez chercher la clé parmis une base de données Minitel,
soit l'auteur vous envoie la clé.
Mais dans les deux cas, le programme va vous demander votre clé de
paiement. Il ne le vous dit pas forcément, mais il compare cette clé au
numéro d'identification du shareware, si les numéros sont les mêmes, c'est bon,
la version complète est activée. Evidemment, c'est un peu simplifié, en général,
un fichier du disque va avoir quelquepart parmis ces nombreux octets, 3 ou
4 octets qui représentent le numéro interne du shareware, avec pas loin, la
bonne clé. Evidemment, la plupart du temps, ces informations sont codées.
Le pirate va donc essayer de décoder ces informations. La, chacun
a sa méthode, mais la plus générale, c'est de "débugger" le programme.
Ca vous parait peut-être bizarre, tous les sharewares ne sont pas vendus
par mico$oft, pourquoi bogueraient-ils ?
En fait, il ne bogue pas (enfin, plus ou moins). Mais un débugger est un programme qui
permet de savoir ce que fait exactement le programme à chaque instant. Bien
sûr, il faut s'y connaître un peu, car le débugger vous dit ce que fait
le programme, mais en assembleur !! donc, faut s'accrocher.
Le pirate va donc faire défiler des millions de lignes de codes pour
finalement s'arreter à deux ou trois instructions qui controlent la procédure
de codage. Une fois cette procédure trouvée, il va falloir modifier le fichier
éxecutable pour dire au programme (toujours en assembleur), de sauter la
vérification. C'est une manière radicale, mais pas très "propre".
La deuxième méthode est donc de ne pas toucher au programme éxecutable
et de noter comment est codée la clé. En trouvant l'algorithme de codage, le pirate
pourra trouver la clé gratuitement. Comme ça, le programme sera en version
complète, proprement. Mais c'est une méthode très difficile.
La seconde méthode consiste à désassembler le programme. C'est assez
similaire au debugage, mais ça marche pour tous les programmes, contrairement
au débugage qui est parfois stoppé par le programme. Une fois la partie
d'algorithme de codage trouvée, il faut la rechercher et le modifier dans le
fichier executable.
Pour les programmes limités dans le temps, il faut faire croire au
logiciel, que c'est toujours le même jour qu'on l'execute. La plupart du temps,
il suffit de noter la date lors de l'installation et de toujours la remettre
avant chaque utilisation (ou rendre ça automatique par un programme). Un
programme universel a été écrit pour ces genres de protections: DateCracker. Je
ne vous direz pas où le trouver, mais sachez que ça existe.
Pour cracker les sharewares limités dans le nombre d'utilisation, il
faut procéder un peu comme quand on met des vies infinies dans les jeux avec
Game Wizard par exemple. On scanne tout le disque, en notant la taille des
fichiers et le contenu des plus importants (WINDOWS\*.INI, fichiers cachés, ...)
On installe ensuite le logiciel, puis on refait un scanne après chaque éxecution
pour voir ce qui a changé. De la sorte, on pourra isoler une partie d'un fichier
(un nombre par exemple) qui s'incrémente à chaque utilisation. Il suffira après
de noter le nombre d'origine à chaque éxecution pour faire croire que c'est
toujours la première fois.
C'est une méthode assez lourde, c'est pourquoi il vaut mieux utiliser
des désinstalleurs qui font le boulot de scan du disque.
Une autre méthode consisterait à chercher dans le fichier éxecutable
du logiciel, tous les noms de fichiers. Peut-être pourrait-on trouver le nom
du fichier de protection. Helas (?), bien souvent les fichiers éxecutables sont
compréssé, ce qui fait qu'on ne peut pas voir les chaines de caractères en clair.
Mais, pour décomprésser ces programmes, et donc voir toutes les informations
en clair (ou presque), il existe de nombreux programme qui reconaissent la
plupart des algo de compression de fichier .EXE (PkLite, etc ...): UNP par
exemple.
Pour tous les autres logiciels, ça se corse. Chaque logiciel ayant
sa méthode de protection, il n'y a pas grand chose de général. Mais il y a
quand même des protections "classiques":
- les protections par disquettes "incopiables": le logiciel est
distribué sur disquette et ne veut s'installer qu'à partir des disquettes sources.
En fait, une simple copie (COPY du DOS par exemple) ne suffit pas. Il faut copier
PHYSIQUEMENT la disquette source, pour que le logiciel ne voit aucune différence.
Ce type de protection n'est plus beaucoup utilisé.
- les protections par dongle: le logiciel a besoin d'un petit bidule
qui se branche sur le port parallèle du PC juste pour dire qu'on a acheté ce
logiciel. Ce petit bidule envoit en fait constamment le même code au PC.
Pour cracker cette protection, il faut cherche le bout de programme
qui accède au port parallèle et enlever le test.
- les protections par CD: très à la mode en ce moment, le logiciel ne
vaut démarrer que si il trouve le CD original. Même chose que pour les disquettes,
mêmes si on recopie tout le CD (faut déjà avoir pas mal de place), il manque
toujours quelque chose. Tous les CDs contiennent une zone d'information propre
qui renseigne sur le nom du CD, le fournisseur, etc ... Cette zone n'est
accessible que si le programeur passe par les routines de gestion des CDs.
Pour cracker ces logiciels, il faut simuler la présence du vrai CD en
récupérant cette fameuse zone d'information sur le CD original. Un logiciel
qui s'appelle CD Cracker fait cela.
Bien sûr, il reste toujours les methodes radicales qui consistenet à
tout désassembler et regarder gentillement et lentement chaque bout de
programme, mais c'est pratiquement impossible dans 95% des cas. (essayez de
désassembler Quake !!).
>les outils du cracker
- d'assez bonnes connaissances de l'assembleur et du hardware de sa
machine.
- un très bon logiciel de débugging: SoftIce sur PC.
- un très bon désassembeur: IDA sur PC.
- un décomprésseur de fichiers éxecutables (car certains éxecutables
sont compréssés et décompréssés seulement lors de l'éxecution): UNP (ou autres)
- une connaissance de quelques sites-clés sur Internet: FTP-SEARCH par
exemple.
- beaucoup d'astuces, de chance et de patience ... :)
>le hacking
Un hacker est un pirate des réseaux, son but est de pénetrer sur
différents sites et d'y récupérer des informations parfois confidentielles.
Je ne parlerai ici que du piratage des sites Internet. Les autres
réseaux doivent marcher à peu près pareil.
Avant tout, il faut savoir que le net ressemble beaucoup à une machine
Unix. C'est à dire que chacun à des niveaux de privilèges et ne peut pas
violer les droits des autres. Par exemple; les serveurs sont des systèmes
UNIX purs. Si vous vous connectez en utilisateur "anonymous", vous avez des
droits limités. Par contre, si vous êtes membre de l'organisation qui gère
le FTP (comme tous les hébergeurs de pages WEB), vous avez le droit a un
peu plus de choses, comme par exemple de laisser vos fichiers sur ce serveur.
Mais il y a certains répertoires qui ne sont accessibles que d'une et une seule
personne, le maitre absolu des systèmes UNIX, l'utilisateur nommé ROOT. Il
a tous les droits, car c'est lui qui est chargé de corriger les problèmes,
installer les apllications, etc ... il doit forcèment pouvoir tout modifier.
Et c'est ce compte que les hackers tentent de récupérer. Bien sûr,
il est protégé par mot de passe. Le but du jeu est donc de récupérer ce mot
de passe. Là, il y a des milliers de méthodes, la plus connue est d'utiliser
les bugs des sytèmes UNIX pour pouvoir se connecter en root. Personne ne connait
par coeur tous les bugs d'un système UNIX particulier. C'est pourquoi des
programmes appelés "exploits" s'échangent. Chacun ayant eu la chance de tomber
sur un bug de sa machine par hasard, va distribuer ces programmes pour
permettre à d'autres ayant la même machine d'en faire autant.
Mais, c'est quoi UNIX, est-ce que je peux me connecter en root avec
mon PC ? eh oui ! car depuis quelques temps existe un système d'exploitation entièrement
VRAI multitâches (pas comme qui vous savez) entièrement compatible UNIX, ça
s'appelle Linux, donc vous pouvez vous débrouillez pour vous connecter en
root sur certains sites.
Il y a d'autres méthodes où l'on est pas obligés d'avoir un système
UNIX, mais je ne les connais pas.
Voilà, j'espère avoir fait le tour de la question. J'espère aussi ne
pas en avoir dit de trop, c'est un sujet assez délicat à aborder.
Si quelqu'un veut expliquer en quoi consiste les autres branches du
mouvement pirate (phreaking, carding, warez, etc ...) qu'il n'hésite pas !!
Ce document est la propriété de discase.
La rédaction ainsi que l'auteur déclinent toutes résponsabilité vis-â-vis des conséquences que pourrait
entrainer le contenu de cet article.