Accueil🇫🇷Chercher

Crack (informatique)

Un crack est un programme qui s'applique sur un logiciel pour en modifier son code, dans le but d'utiliser gratuitement un logiciel payant[1], par exemple.

Terminologie

Lorsque des personnes redistribuent des applications dites « craquées », on parle alors de warez. Lorsqu'une personne a trouvé comment craquer un logiciel, elle peut alors créer une version modifiée de celui-ci ou programmer un outil de piratage dédié qui permettra à d'autres personnes d'utiliser le logiciel en question sans l'avoir acheté au préalable.

Il ne faut pas confondre un crack avec un patch :

  • un patch est la modification d'une application (logiciel, jeux vidĂ©o…) pour apporter de nouvelles fonctionnalitĂ©s, corriger des bugs ou modifier son fonctionnement. En gĂ©nĂ©ral, le patch est fourni par le crĂ©ateur du logiciel ;
  • un crack est un type particulier de patch car il n'est pas officiel et son application n'est pas autorisĂ©e par l'Ă©diteur du logiciel concernĂ©.

Les cracks sont créés par des crackers. L'activité d'analyse et de modification des logiciels (souvent désignée par l'ingénierie inversée) est interdite dans la plupart des contrats de licences utilisateur des logiciels propriétaires.

Utilité

Craquer un logiciel ou une application peut avoir plusieurs utilités :

  • pouvoir utiliser un logiciel protĂ©gĂ© ou une fonctionnalitĂ© bridĂ©e ou payante sans avoir achetĂ© la licence correspondante au prĂ©alable, qui peut ĂŞtre considĂ©rĂ©e comme trop chère ou dĂ©mesurĂ©e par rapport aux fonctionnalitĂ©s apportĂ©es ;
  • pouvoir tester pleinement le logiciel concernĂ© avant de l'acheter, dans le cas d'une pĂ©riode d'essai trop courte ou trop limitante ;
  • relever un dĂ©fi ;
  • tricher dans un jeu vidĂ©o ;
  • permettre une interopĂ©rabilitĂ©, une amĂ©lioration ou une modification du fonctionnement du logiciel qui est Ă  l’origine non prĂ©vue par son Ă©diteur ;
  • pouvoir utiliser un logiciel sans devoir utiliser le CD correspondant (crack « No CD ») (aujourd'hui dĂ©suet).

Outils du cracker

Le cracker peut utiliser plusieurs outils pour arriver Ă  ses fins :

  • des logiciels de dĂ©tection, pour dĂ©tecter le langage de programmation et les technologies utilisĂ©s par l'application Ă  craquer et ses Ă©ventuels outils de protection ;
  • des logiciels d'anti-protection spĂ©cialisĂ©s, permettant de dĂ©protĂ©ger le logiciel concernĂ© et de dĂ©sobfusquer si besoin son code pour faciliter son analyse et sa modification ;
  • un dĂ©sassembleur, permettant d'analyser et de modifier le logiciel Ă  partir de son code en assembleur ;
  • un dĂ©bogueur, qui permet de visualiser l'Ă©tat du programme pendant son exĂ©cution et notamment les donnĂ©es qu'il conserve en mĂ©moire (fonctionnalitĂ© souvent comprise dans un logiciel multifonction comme x64dbg ou IDA) ;
  • des logiciels de suivi divers qui permettent de tracer les accès aux dossiers et aux fichiers du logiciel, au registre de Windows le cas Ă©chĂ©ant et Ă  des serveurs distants, dans le but de comprendre son fonctionnement et de trouver d'Ă©ventuelles failles dans son système d’activation ;
  • un Ă©diteur hexadĂ©cimal, permettant de modifier prĂ©cisĂ©ment le programme ou un de ses fichiers binaires comme un fichier DLL si besoin ;

MĂ©thodes du cracker

Le but d'un crack est de contourner une limitation présente dans un logiciel payant, comme son enregistrement avec une clé ou un fichier de licence, et d'autres informations comme un nom d'utilisateur ou une adresse e-mail.

Pour ce faire, le cracker va procéder à de l’ingénierie inversée : le logiciel à craquer est soigneusement analysé et décortiqué à l'aide d'un désassembleur et le cracker essaye ensuite de trouver la fonction de protection qui s'occupe de vérifier son statut d'activation ou la validité de la licence saisie. Le but du cracking est ainsi de faire en sorte que la fonction concernée valide toujours la clé ou le fichier de licence entré dans le logiciel. Une fois que la fonction est repérée, celle-ci peut être grossièrement remplacée par l'instruction NOP (qui signifie « No Operation » en anglais ou « ne rien faire ») ou plus souvent détournée pour empêcher son exécution.

Cependant, certains crackers préfèrent ne pas modifier le code du logiciel pour assurer la stabilité et la durabilité de leur version craquée au fil des mises à jour, et en étudient de fait la fonction de protection. Ils peuvent alors réaliser un générateur de clés valides (« keygen » en anglais) pour permettre l'activation du logiciel, ou une DLL détournée appelée « hook » qui va s'attacher au logiciel pendant son exécution et modifier à la volée des données stockées en mémoire pour lui faire croire qu'il est activé. Les développeurs de logiciels propriétaires essayent cependant de complexifier ces processus d'analyse et de modification en utilisant des techniques et des logiciels de protection bien connus comme l'anti-débogage, l'obfuscation, la vérification régulière de la licence saisie depuis un ou plusieurs serveurs distants ou encore le calcul de la somme de contrôle du fichier exécutable principal pour détecter d'éventuelles modifications non désirées.

Certains crackers expérimentés peuvent également rechercher des vulnérabilités spécifiques dans le système d'activation du logiciel concerné qui pourraient s'appliquer dans des conditions bien spécifiques et être exploitables à partir d'un outil codé pour l'occasion comme un script. Dans le cas où le logiciel en question a été programmé dans un langage de haut niveau, celui-ci peut être décompilé pour obtenir une représentation plus ou moins précise de son code source. Cela est notamment possible avec des langages semi-compilés comme le C# ou le Visual Basic .NET qui sont traduits dans un langage intermédiaire pendant la compilation, ou des langages de script comme le Python ou le Batch dont le code source aurait été intégré dans un fichier exécutable avec des outils spécialisés.

Protections Ă  contourner

Le cracker peut faire face à des objectifs et des contraintes multiples lors du craquage d'un logiciel donné :

  • trouver une clĂ© ou un fichier de licence pour l'activer ;
  • trouver l'algorithme de gĂ©nĂ©ration des clĂ©s ou des fichiers de licence, afin d'enregistrer le logiciel avec n'importe quel nom, par exemple ;
  • enlever les diverses limitations du logiciel telles que :
    • la limitation de certaines fonctionnalitĂ©s utiles ou exclusives ;
    • l'affichage de fenĂŞtres intempestives d'activation appelĂ©es « Nag screen ».

Pour arriver à ses fins, le cracker doit souvent déjouer de nombreuses embûches comme :

  • l'anti-dĂ©bogage, qui rend le dĂ©bogage bien plus difficile Ă  mettre en place ;
  • l'obfuscation ou la virtualisation du code rĂ©alisĂ©es par des logiciels de protection divers, qui rendent le dĂ©bogage et l’ingĂ©nierie inversĂ©e très pĂ©nible et complexe ;
  • la vĂ©rification de la licence depuis un ou plusieurs serveurs distants, qui complexifie son processus de dĂ©tournement ou de suppression ;
  • le calcul de la somme de contrĂ´le du fichier exĂ©cutable principal, qui pourrait dĂ©tecter d'Ă©ventuelles modifications non dĂ©sirĂ©es et qui entraĂ®nerait l'affichage de fenĂŞtres d'avertissement ralentissant le travail du cracker ;
  • le chiffrement ou la compression, qui rendent l'exĂ©cutable plus difficile Ă  analyser, voire illisible.

Musique

Les outils de patch et les générateurs de clés publiés par les crackers ou les groupes de crackers possèdent souvent une musique électro ou rétro 8-bit dans le style des musiques de Game Boy, qui sont appelées chiptunes.

Notes et références

  1. Voir nom commun 2, sur le site fr.wiktionary.org

Articles connexes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.