What the cracking
CRACKING
Le "cracking" est un autre pan du piratage informatique, au même titre que le "hacking" ou le "phreaking" par exemple. Les personnes s'adonnant à ces pratiques sont appelées des "crakers".Le cracking consiste à faire du " reverse engineering " sur un programme, c'est-à-dire à retrouver son code source.Ceci se révèle fort utile pour plusieurs choses :
casser une protection logicielle ;
trouver un mot de passe ;
chercher une faille exploitable ;
trouver un numéro de série ;
accéder à un niveau de jeu supérieur ;etc.
Cet article décrit succintement le cracking utilisé pour "déplomber" des logiciels et le cracking utilisé pour casser des mots de passe logiciels.
Casser un code de protection
Il existe plusieurs sortes de logiciels, les gratuits (freeware), les payants, et les semi-gratuits (shareware), qui eux, sont limités d'une manière ou d'une autre. Il peut s'agir par exemple d'une version de démonstration (et là, il n'y a rien de bon à en tirer pour le cracker), d'une version limitée à n utilisations ou n jours, ou d'une version bridée, avec certaines fonctionnalités désactivées.Le cracking consiste donc, dans ce cas, à ôter les protections mises en place de manière logicielle, pour retrouver une utilisation maximale du logiciel sans payer de licence (ce qui est illégal bien sûr).
Pour y arriver, le cracker devra se munir des trois outils :
un désassembleur.un débugger (qui peut être intégré dans le désassembleur)
un éditeur hexa-décimal.
Le désassembleur permet de revenir au code source initial du logiciel et ce, quelque soit le langage utilisé pour le développement (C, Java, C++ ...).Petit rappel sur le développement : Le langage de développement n'est qu'une "interface" qui permet au développeur de programmer "facilement" ses algorithmes. Une fois le programme développé, le programmateur va "compiler" son programme grâce à un compilateur. In fine, le compilateur génèrera un programme exécutable, qui contiendra des instructions en assembleur, compréhensibles par tous les processeurs des ordinateurs. On peut coder directement en assembleur, mais ceci est un exercice difficile, qui demande de bien connaître les instructions du processeur et de bien savoir gérer la mémoire. Développer en assembleur l'ensemble d'une application conséquente est impensable.Donc, dans un premier temps, le cracker va désassembler le programme exécutable qu'il veut "casser". Une fois en possession du listing des instructions en assembleur, il va devoir rechercher à quel endroit dans le programme est placée la protection logicielle. Pour cela, il suffit le plus souvent de rechercher la chaîne de caractère correspondant au message affiché par le logiciel, expliquant par exemple qu'il faut acheter la licence pour utiliser telle fonctionnalité.Arrivé à ce stade, le cracker doit alors comprendre comment fonctionne la protection. C'est ici qu'intervient le débuggeur. En effet, un débuggeur permet de placer des points d'arrêt dans le programme pour pouvoir examiner l'état des variables et de la mémoire pendant l'exécution du logiciel. C'est donc en avançant pas à pas dans le programme, que le cracker pourra comprendre ce qui se passe et pourra imaginer une solution pour contourner la protection.Une fois que le cracker a compris comment fonctionne le mécanisme de protection, il lui faudra alors programmer en assembleur un autre comportement pour le logiciel, et ceci grâce à un éditeur hexa-décimal ou un assembleur.Cette méthode peut aussi être utilisée pour chercher des vulnérabilités dans unprogramme.Casser un mot de passe logicielLe terme "cracker" un mot de passe désigne tous les moyens possibles pour trouver un mot de passe.Si on reste dans le domaine du "déplombage" des logiciels, voici les deux manières généralement utilisées pour trouver le césame demandé atcher le code : si le logiciel demande un mot de passe, c'est qu'il va forcément vérifier ce mot de passe une fois saisi. Cela veut dire en fait que le logiciel contient une instruction de comparaison du mot de passe. Si c'est le bon, c'est OK, sinon tant pis. La ruse consiste donc à détourner le fonctionnement du logiciel pour lui faire exécuter une autre condition du genre " accepte tous les mots de passe " ou " tous les mots de passe différents sont OK ". Le cracker s'économise ainsi la recherche du mot de passe. Le bout de code qui permet de modifier ainsi l'exécutable s'appelle un " patch " et ces patchs peuvent être trouvés tels quels sur Internet.Générer un mot de passe ou "serial" : le cracker ne possédant pas le mot de passe requis, il va essayer de générer un mot de passe jugé "valide" par le logiciel. Pour cela, il doit étudier l'algorithme de génération du mot de passe dans le programme lui-même (avec la méthode présentée plus haut) et le reprogrammer.Conclusion
Le cracking demande des compétences en programmation assembleur et cette activité est très centrée sur les logiciels, notamment les logiciels de jeu. Bien entendu, il ne suffit pas d'appliquer un "patch" créé par un "cracker" pour prétendre en être un soi-même.
par serhane le crakeur