Crack (informatique)

Article connexe : Craquage (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, 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 :

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 :

Outils du cracker

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

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é :

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

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