Leçon de cracking

par Sirius Black

Intro :

Bon, avant toute chose ce cours est destiné aux "newbies", comprenez par là les petits nouveaux dans le domaine underground qu'est le piratage informatique. Dans notre cas on va s'intéresser à une des branches : le cracking.

Le cracking est l'art de détourner, voire casser les protections d'un programme informatique. Comment faire ? Tout simplement en modifiant le programme en question.

Le cracking sert le plus souvent (quasiment tout le temps) à transformer un programme limité dans son utilisation afin d'acceder à ce qui nous était restraint. Le plus souvent on cracke des logiciels en démo, des sharewares, des freewares. On distingue plusieurs types de protections :

1 - Les logiciels complet limité à une durée d'utilisation (par exemple les produits macromédia comme flash, dreamweaver et director qui sont proposés en démo limités à 30 jours d'utilisation).

2 - Les logiciels avec une protection cd (les jeux vidéos dans la plupart des cas) : il demande la présence du cd pour fonctionner, en fait il lit les infos contenus sur un des secteurs du cd (le premier je croit), ce sont des infos que auxquelles nous ne pouvons pas accéder (seul l'ordinateur peut les lire).

3 - Les logiciels dont on a "gelé" certaines commandes (elles nous sont inaccessibles), j'en sait pas plus.

4 - Les Sharewares / Freewares que vous pouvez utiliser à condition de vous enregistrer (sans quoi vous êtes un horls la loi). Un des plus connus est Winzip, vous avez droit à une période dite d'évaluation, après cette période le prog ne se bloque pas mais vous êtes censé l'acheter.

Bon je croit que j'ai fait le tour (cela dit il y a aussi les protections avec des clés que l'on branche derrière l'ordinateur mais la c'est pour les très gros logiciels). Nous avons dit précedemment que le cracking consistait à modifier un programme. Si vous avez déjà eu la curiosité d'ouvrir un fichier exécutable avec un éditeur de texte vous avez sûrement vu des tones de caractères incompréhensibles (avec parfois un mot où un nom lisible). Il existe des logiciels appelés désassembleur où débuggeur (pas tout à fait pareil) qui permettent d'éditer un .exe dans un langage compréhensible (quoique assez difficilement). Dans le domaine de la programmation on parle de "niveaux de langage", plus un langage a un niveau haut plus il ressemble à celui des hommes (plus évolué), en revanche plus il est bas plus il s'approche du langage de la machine (la suite de zéro et de un). Le désassembleur ouvre les programmes dans un langage appelé assembleur (asm en abréviation) qui est le plus bas des langages de haut niveaux (celui qui est à la fois le plus proche de la machine mais quand même compréhensible par l'homme).

Le hic c'est que le désassembleur ne fait que lire le prog. Si vous avez fait de la programmation vous devez savoir que quand on écrit des instructions que ce soit en pascal, C++, Java... vous passez par la phase de compilation où l'ordinateur transforme vos écrits en langage machine. Il est impossible de recompiler un programme. C'est pourquoi on fait appelle à un autre type d'utilitaires : les éditeurs hexadécimaux.

Représentation des données : Ce paragraphe c'est pour les nuls en infos (désolé pour certains) car c'est des bases à savoir absolument. Les confirmés peuvent le passer sans problème. Pour commencer vous savez tous que l'ordinateur calcule juste avec des zéros et des un (c'est la base dite binaire car il n'y a que deux choix), nous autres humains on utilise la base décimale (avec 10 choix : 0,1,2,3,4,5,6,7,8,9 avec lesquels on fait tous les chiffres). Il existe autant de bases que l'on veut (c'est juste la façon de coder qui change) mais seules quelques unes sont utilistés. Une des plus connus est la base hexadécimale (16 choix donc plus que ce qu'on utilise, on a du ajouter des lettres aux chiffres : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F). Le F correspond en décimal au chiffre 15, le E au 14... L'avantage de cette base c'est la place qu'elle prend pour la représenter (plus la base est grande moins il faut de place). La place utilisé en mémoire elle, est la même quelque soit la façon dont sont codés les données. Ainsi le F vaut 15 en décimal mais aussi 1111 en binaire... Un bit désigne la plus petite valeur informatique : elle ne peut prendre que deux valeurs : zéro ou un. Donc un nombre codé sur un deux bits peut prendre les valeurs 00,01,10,11, sur 4 bits 0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110 et 1111. Désolé si je suis long mais j'essaie d'expliquer le plus possible. Un chiffre codé sur 8 bits s'appelle un octet (ça vous connaissez) donc valeur mini = 0, valeur max = FF en hexa, 255 en décimal et 1111 1111 en binaire. Le rôle de l'éditeur hexadécimal est d'ouvrir un fichier quel qu'il soit, en hexadécimal bien sûr, mais aussi en octets.

Voilà, l'intro est close. Passer à l'étape suivante.