Piratage pendant que vous êtes endormi Comment obtenir le numéro de série d'un programme avec OllyDbg
Il y a quelques mois, je participais à quelque chose comme un « Concours de Hacker » pour obtenir un emploi dans un CERT. L'un des essais a consisté à obtenir la clé de série d'un programme simple. L'organisateur m'a envoyé un fichier exécutable appelé reversing_test.exe
Nous allons travailler avec OllyDbg v1.10. Vous pouvez télécharger cet outil génial d'ici: OllyDbg v1.10.
Vous pouvez voir les détails dans l'image ci-dessous.

La première chose que je fais d'habitude dans ces cas est de vérifier si l'exécutable est compressé ou non. Certains programmes emballent certains de leurs codes afin de limiter notre tentative d'analyser statiquement. Pour atteindre cet objectif, nous allons utiliser peid. Dans l'image ci-dessous vous pouvez voir que le programme ne détecte aucune compression « Rien trouvé * ». Si le fichier a été compressé avec UPX par exemple, le programme nous offre ses conseils à ce sujet et nous pourrions décompressez avec cet outil.

Si l'on clique sur le fond « Section EP », nous verrons les détails de certains exécutables.

Nous pouvons voir la taille R. (Taille Raw) « 400 » et la V.Size (Taille virtuelle) « 350 » sont similaires dans « .text ». La section .text contient les instructions que la CPU exécute et il devrait être la seule section qui inclut le code. Si un jour vous constatez que le R.Size est « 0 » et le V.Size est « 1000 », par exemple, ce serait un indicateur que l'exécutable est compressé, car le disque ne dispose pas de la taille (il est emballé ) et dans la mémoire, il a une taille (elle-même est déballé).

L'étape suivante consisterait à exécuter le programme en double-cliquant sur l'exécutable. Après cela, on peut voir qu'une fenêtre MS-DOS est lancé et le programme nous oblige à taper le numéro de série. Nous tapons une phrase afin de vérifier le comportement du programme.
Maintenant, nous allons courir OllyDbg. Il ne nécessite pas d'installation, il suffit de télécharger et décompresser. Lorsque OllyDbg est ouvert, il suffit de charger le fichier exécutable en cliquant sur Fichier -> Ouvrir.

Maintenant, nous pouvons voir le code binaire. Ne vous inquiétez pas, rappelez-vous ce poste est axé sur les débutants. Nous allons cliquer sur le bouton de lecture pour lancer l'exécutable vient d'être chargé dans notre débogueur et vérifier le comportement du fichier.

Le programme a commencé et nous pouvons voir les chaînes comme premières « Appuyez sur ENTER pour terminer ».

(S'il vous plaît, cliquez sur l'image pour voir les détails entiers)
Mais. Quelque chose se passe. Le programme ne nous oblige pas à taper le numéro de série comme il se produit lorsque nous ouvrons l'application sans utiliser un débogueur. Il est vraiment étrange. Il est comme le programme connaît nos intentions et il est fermé par lui-même quand nous essayons de l'exécuter avec un outil de débogage.
Si le chargement à nouveau le fichier sur OllyDbg, une ligne du code attire notre attention. Le programme appelle à l'API « de IsDebuggerPresent ».

Si nous cherchons cette API sur Microsoft, nous pouvons voir que « Cette fonction permet à une application de déterminer si oui ou non il est débogué, afin qu'il puisse modifier son comportement ».
Ok, le programme est fermé lorsqu'il est ouvert dans un débogueur. Il existe de nombreuses options pour éviter d'être détectés par cette technique. Pour atteindre cet objectif, nous allons utiliser le plug-in « Cacher Debugger 1.2.4 ». Il suffit de le télécharger et décompresser le DLL dans le dossier du même OllyDbg.
Il est nécessaire de redémarrer OllyDbg afin de travailler avec ce plugin. Si vous cliquez sur l'onglet Plugins vous pouvez voir Masquer le plugin Debugger. Vous n'avez pas besoin de faire quoi que ce soit d'autre.

Nous venons d'installer le plug-in pour éviter d'être détecté et maintenant, nous allons charger et jouer à nouveau l'exécutable. Maintenant, le programme nécessite de taper le numéro de série. Bonne nouvelle.

Nous allons taper une phrase qui sera facilement reconnaissable.
Si nous revenons à OllyDbg nous pouvons voir notre phrase dans le Arg1.

(S'il vous plaît, cliquez sur l'image pour voir les détails entiers)
Si nous continuons à la recherche de cette phrase par le code que nous pouvons trouver le code ci-dessous. On peut voir le String2 = « 28939387 », le String1 = « Je vais chercher cette phrase dans OllyDbg maintenant. » Et l'appel API CompareStringA.
On peut comprendre que l'exécutable compare ces chaînes à l'autre pour que vous puissiez vérifier si les deux ont la même valeur. On peut supposer que la chaîne « 28939387 » est le numéro de série.
(S'il vous plaît, cliquez sur l'image pour voir les détails entiers)
OllyDbg nous propose de copier la valeur de cette ligne en cliquant à gauche sur la ligne qui nous intéresse.
Ensuite, nous allons coller la valeur de la ligne du bloc-notes puis, nous allons copier uniquement la valeur « String2 »: 28.939.387.
En fin de compte, nous avons juste besoin d'essayer coller la juste valeur copiée dans notre programme et. Bien. Nous avons obtenu le numéro de série de notre programme.
Ce poste pourrait être appliquée à un grand nombre des programmes simples qui ont un intégré mais il keygen est nécessaire d'avoir plus de connaissances si vous voulez casser des programmes plus complexes.