Télécharger l'article Télécharger l'article

Si vous voulez apprendre comment un programme se protège contre la copie illégale, vous devrez d’abord acquérir de bonnes notions de programmation en Assembleur. Lorsque vous serez prêt, muni de quelques utilitaires dédiés, vous pourrez examiner le fonctionnement des bibliothèques DLL appelées par ce logiciel pour en décortiquer les mécanismes de protection parfois complexes, puis les modifier de telle façon que vous n’ayez plus besoin d’enregistrer ou d’acheter ce programme pour l’utiliser indéfiniment et à votre gré.

  1. Pour pouvoir casser la protection d’un logiciel, vous devrez acquérir de bonnes notions de ce qu’est la programmation en Assembleur. Il s’agit d’un langage de programmation de bas niveau qui est défini par un fabricant spécifiquement pour une gamme de microprocesseurs pour produire, après compilation, un langage machine lisible sous forme hexadécimale .
  2. Pour examiner et modifier les DLL, vous avez besoin de différents outils, entre autres, d'un désassembleur. Il existe une version gratuite d'IDA sur cette page , comparée à la version Pro, elle est toutefois limitée. Vous pouvez également essayer dotPeek , un décompilateur qui supporte les DLL et décompile le code assembleur .NET en C#  [1] . Une autre option est OllyDbg , avec lequel vous pouvez ouvrir gratuitement des fichiers DLL.
  3. La procédure varie en fonction du désassembleur que vous employez. Cela vous montrera quels sont les fichiers DLL qui sont chargés par le programme. Utilisez un utilitaire de débogage pour voir quelles sont les fonctions appelées par les DLL  [2] .
  4. Beaucoup de programmes utilisent un algorithme basé sur un comptage logiciel pour se prémunir contre la copie, de telle sorte qu’à chaque utilisation, ce compteur lit l’enregistrement antérieur dans un fichier du disque, effectue une comparaison avec une valeur fixée par le code puis enregistre son nouveau compte après incrémentation. Si la valeur lue sur le disque correspond à la valeur fixée, le compteur ne pourra plus s’incrémenter et verrouillera l’exécution du logiciel. Votre but consistera donc à trouver la routine de code correspondant à ce comptage afin de la rendre inopérante.
    • Il n’est absolument pas certain que l’algorithme de protection du programme que vous voulez casser correspond en tous points à celui, très simplifié, que nous venons de décrire. Les développeurs de systèmes de protection de logiciels sont des professionnels hautement spécialisés dans ce domaine très particulier et utilisent des algorithmes parfois très complexes pour combattre la piraterie. Vous serez donc probablement amené à passer de longues heures à rechercher quelle méthode de protection s’applique à votre programme dans la réalité.
  5. Lorsque vous aurez repéré cette fonction, positionnez un point d’arrêt dans SoftIce pour qu’il stoppe le déroulement du programme lorsqu’il arrivera à ce niveau d’exécution. Cela vous permettra de suivre le déroulement du reste du code en mode pas à pas pour bien comprendre ce qui se passe au moment de l’appel de cette fonction.
  6. Maintenant que vous avez identifié et atteint le code de la fonction de comptage, il vous est possible de le modifier de telle sorte que le compteur n’atteigne jamais le point où il pourra bloquer l’exécution de votre logiciel. Vous pourrez par exemple faire en sorte que le compteur reste figé et ne change plus de valeur ou bien injecter un saut de programme permettant de passer par-dessus cette routine de comptage.
  7. Après l'avoir désassemblé et édité, vous devez compiler une nouvelle version du programme pour que vos modifications se propagent dans les fichiers DLL et les autres dépendances  [3] .
    Publicité

Avertissements

  • Le piratage informatique est illégal et sévèrement réprimé dans la plupart des pays du monde.
  • Il est illégal d’accéder aux codes sources des logiciels commerciaux ou de ceux qui ne sont pas explicitement couverts par une licence open source .
Publicité

À propos de ce wikiHow

Cette page a été consultée 18 786 fois.

Cet article vous a-t-il été utile ?

Publicité