******************************************************************************
{{{{{{{{{{{{{{{{{{{{{{{{{  What is the Cracking ?  }}}}}}}}}}}}}}}}}}}}}}}}}}}
******************************************************************************

Salut a tous, je vais tenter de vous expliquer les bases du cracking. Ce cours s'adresse donc aux débutants en la matière. Tout d'abord il faut bien mettre les choses au point : quesque le cracking ? Eh Bien c'est simple, vous avez du remarquer que certains logiciels étaient limités a une certaine période d'utilisation (les sharewares) ou alors que certains jeux, une fois copiés vous indiquent que votre CD n'est pas valide ! Eh bien le but du cracking est de modifier le source du programme pour enlever les vérifications d'authenticités.
Mais comment peut-on procéder pour réaliser une telle chose ?
Il faut tout d'abord se familiariser avec un language appellé l'assembleur (asm). Ce language est la traduction des instructions qui sont envoyées au processeur lors de l'éxécution d'un programme. Il nous faudra trouver dans le programme un test quelque part qui regarde si notre logiciel est REGISTER ou si notre CD est valide dans le cas d'un jeu et il ne restera plus qu'a modifier ce test a notre convenance. Pour pouvoir vous adonner a cette discpline qu'est le cracking il faut tout d'abord posséder un certain nombre de logiciels. Vous aurez besoin de certains programmes indispensables. En voici une liste : (On verra leur utilité dans ce qui va suivre)
- W32dasm  -  un désassembleur idéal pour débuter
- SOFTice4  -  Le débugger de NuMega - INDISPENSABLE !
- Un éditeur hexadécimal tel que FxEdit ou HexWorkshop.
- Procdump
- Borland resource workshop
(essayez : http://www.crackstore.com pour les trouver)

Je vais vous expliquez l'utilité du désassembleur et du débugger par la suite mais commençons déja par l'éditeur hexadecimal. Tout programme informatique est en fait une suite de 0 et de 1. Pour que ce soit plus compréhensible, nous pouvons le lire en hexadecimal. L'hexadecimal est une numérotation avec une base de 16. Mais rassurez vous, vous n'aurez pas besoin de savoir convertir les bits en hexa. Les opcodes en hexadécimal correspondent à ce qui est envoyé réellement au processeur. Nous chercherons donc a comprendre le fonctionnement d'un programme en regardant sa traduction en assembleur (car ce language est compréhensible par l'homme contrairement a l'hexadécimal) puis lorsque nous aurons trouvé ou il faut agir nous prendrons l'éditeur hexadécimal et nous modifierons ce que bon nous semble. Il convient donc d'apprendre déjà quelques instructions et leurs correspondance en hexa.

Les plus utilisées lors de vos débuts seront les instructions de saut. Elles permettent de déplacer le pointeur d'execution vers un endroit du programme en fonction d'une condition(cela peut aussi être un saut prédéfini). Le saut basique est l'instruction JMP(saut prédéfini) qui correspond a EB en hexadécimal (il existe aussi E9 si le saut est plus long).
Mais la plupart des sauts rencontrés seront conditionnels. C'est à dire qu'ils sauteront si une condition déterminée au dessus est vrai.
Par exemple le saut JE ne sautera que si les deux valeurs testées aux dessus sont égales ou valent 0.
( JE = 74 en hexa).
A l'inverse le saut JNE ne saute que lorsque les valeurs sont différentes et non égales a 0.
(JNE = 75 en hexa)
Il vous sera donc fréquent d'intervertir ces 2 sauts. Prenons un exemple : vous voulez enregistrer un shareware a votre nom. Vous indiquez donc votre nom et un faux numéro. En traçant le programme (voir la partie d'après) vous trouver que c'est un JE qui vous envoie a l'endroit du programme où celui-ci indique que le code est faux par une boite de message. (genre : "INVALID REGISTRATION CODE :!"). Vous devinez donc que ce saut est effectué seulement si votre sérial est faux. En le changeant en un JNE les conditions se veront inversées et lorsque vous entrerez de fausses informations, le programme croira que votre sérial est bon et ainsi vous aurez accès à toutes les fonctions du logiciel. Rassurez vous c'est normal si vous comprenez pas encore tout cela, mais ça va venir, persévérez dans votre apprentissage.

TiPiaX/VDS