Craquage (informatique)

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche
Page d'aide sur l'homonymie Pour les articles homonymes, voir Craquage (homonymie).

La craquage d'un logiciel (en anglais, cracking ou breaking dans les années 1980[1]) est la modification d'un logiciel pour supprimer ou désactiver des fonctionnalités jugées indésirables par la personne qui craque le logiciel, en particulier les fonctions de protection contre la violation de droit d'auteur, l'affichage de publicité et l'affichage de propositions d'acheter la version payante du logiciel.

Description[modifier | modifier le code]

Une crack désigne l'outil qui permet de réaliser le craquage[2]. Ces outils peuvent être des générateurs de clés, des patches ou des loaders. Un générateur de clés est un programme informatique qui génère une clé de produit, comme un numéro de série, permettant d'activer l'application. Un patch est un petit programme informatique qui modifie le code machine d'un autre programme. Un tel programme permet à un cracker de ne pas avoir à distribuer un exécutable de grande taille lorsque seulement quelques octets d'un programme doivent être modifiés[3]. Un chargeur modifie le flux de démarrage d'un programme ; il ne supprime pas la fonctionnalité indésirable, mais la contourne[4],[5]. Un exemple bien connu d'un loader est un trainer (en), une fonction utilisée pour tricher dans les jeux[6]. Le groupe Fairlight a mentionné dans un de ses fichiers .nfo que ces types de craquage ne sont pas autorisés pour les versions warez[7],[4],[8].

La distribution de copies craquées est illégale dans la plupart des pays. Il y a eu des poursuites judiciaires contre des auteurs de logiciels de craquage[9]. Des ressources pédagogiques pour l'ingénierie inverse et le craquage de logiciel sont légales et disponibles sous la forme de programmes Crackme.

Histoire[modifier | modifier le code]

Des protections logicielles contre la copie existaient déjà sur des logiciels utilisés par les gros système d'IBM dans les années 1970. Sur les ordinateurs personnels, de telles protections existaient déjà sur des logiciels des micro-ordinateurs 8 bits, tels que les Apple II, Atari 800 et Commodore 64. Les éditeurs de logiciels ont par la suite mis en œuvre des méthodes de plus en plus complexes afin d'empêcher la copie sans restriction de leurs logiciels.

Sur l'Apple II, contrairement aux ordinateurs modernes qui utilisent des pilotes de périphériques standardisés pour gérer les communications avec les périphériques, le système d'exploitation contrôlait directement le moteur pas à pas qui déplace la tête du lecteur de disquette et interprétait directement les données brutes, appelées nibbles, de chaque piste pour identifier les secteurs de données. Cela permettait des systèmes de protection complexes contre la copie de disquettes, en stockant des données sur des demi-pistes (0, 1, 2.5, 3.5, 5, 6 ...), des quarts de piste (0, 1, 2.25, 3.75, 5, 6 ... ), toutes combinaisons de ces deux méthodes. Également, plusieurs lecteurs de disquettes n'avaient pas de limite supérieure fixe pour le mouvement de la tête de lecture, et il était parfois possible d'écrire une 36e piste au-dessus des 35 pistes normales. Les programmes de copie Apple II standards ne pouvaient pas lire ces disquettes protégées, car ils supposaient que toutes les disquettes avaient une configuration uniforme de 35 pistes, avec 13 ou 16 secteurs.

Des programmes spéciaux de copie de nibbles tels que Locksmith et Copy II Plus pouvaient parfois dupliquer ces disquettes en utilisant une bibliothèque de méthodes de protection connues. Lorsque des programmes protégés étaient cracqués, ils étaient complètement dépouillés du système de protection contre la copie et transférés sur un disque au format standard que n'importe quel programme de copie Apple II pouvait lire.

L'une des principales voies de piratage de ces premières protections de copie était l'exécution d'un programme qui simule le fonctionnement du processeur. Un tel simulateur fournit un certain nombre de fonctionnalités supplémentaires au pirate, telles que la possibilité d'exécuter les instructions une à une et d'examiner les registres de processeur et les cases de mémoire tout au long de la simulation. Devant une telle attaque, le système de protection contre la copie ne disposait que de peu ou pas de défenses, puisque tous ses secrets étaient rendus visibles par la simulation.

Sur le Commodore 64, plusieurs méthodes ont été utilisées pour protéger les logiciels. Par exemple, pour les logiciels distribués sur des cartouches ROM, des programmes tentaient d'écrire sur la cartouche. Si le logiciel était sur ROM, rien ne se passerait, mais si le logiciel avait été déplacé en mémoire réinscriptible, le logiciel était "écrasé".

Références[modifier | modifier le code]

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Software cracking » (voir la liste des auteurs).
  1. Morton Kevelson, « Isepic », Ahoy!,‎ , p. 71–73 (lire en ligne) :

    « The origin of the term probably lies in the activity burglars perform in the still of the night. »

  2. Mitch Tulloch, Microsoft Encyclopedia of Security, Redmond, Washington, Microsoft Press, (ISBN 0735618771, lire en ligne), p. 68
  3. (en) Paul Craig et Mark Ron, Software Piracy Exposed - Secrets from the Dark Side Revealed, United States of America, Syngress Publishing, , 75–76 p. (ISBN 1-932266-98-4, DOI 10.1016/B978-193226698-6/50029-5), « Chapter 4: Crackers »
  4. a et b FLT, « The_Sims_3_70s_80s_and_90s_Stuff-FLT »,  : « This can be the only reason you have come to the conclusion that a modified startup flow is the same like the imitated behavior of a protection, like an EMU does it. »
  5. (en) Shub-Nigurrath [ARTeam] et ThunderPwr [ARTeam], « Cracking with Loaders: Theory, General Approach, and a Framework », Universitas-Virtualis Research Project, vol. 1, no 1,‎  :

    « A loader is a program able to load in memory and running another program. »

  6. Shub Nigurrath, « Guide on how to play with processes memory, writing loaders, and Oraculumns », Universitas-Virtualis Research Project, vol. 1, no 2,‎
  7. FLT, « Test_Drive_Ferrari_Legends_PROPER-FLT »,  : « Test.Drive.Ferrari.Racing.Legends-SKIDROW was released with a "Loader" and not a cracked exe. This is why you see the original exe renamed to "TDFerrari_o.exe". As this is not allowed and in this case considerably slows down the game with Xlive messages while starting and playing the game, you can see why we have included a proper cracked. »
  8. SKIDROW, « Test.Drive.Ferrari.Racing.Legends.Read.Nfo-SKIDROW »,  : « Yes our "method" is a loader and our competitors have used the same method for "cracking" xlive games like this. »
  9. (en-US) Jacqui Cheng, « Microsoft files lawsuit over DRM crack », sur Ars Technica,

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]