Vous êtes sur la page 1sur 10

Comment obtenir le numéro de série

d'un programme avec OllyBG

30
septembre

Il y a quelques mois, j'ai participé à quelque chose comme un "Hacker


Competition" pour obtenir un emploi dans un CERT. L'un des tests consistait
à obtenir la clé de série d'un programme simple. L'organisateur m'a envoyé
un exécutable appelé reversing_test.exe

Nous allons travailler avec OllyDbg v1.10. Vous pouvez télécharger cet outil génial à partir d'ici: OllyDbg
v1.10 .

Vous pouvez voir ses détails dans l'image ci-dessous.


La première chose que je fais habituellement 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 les tentatives d'analyse statique.
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é *" Nothing Found. Si le fichier était compressé
avec UPX par exemple, le programme nous en informerait et nous
pourrions le décompresser avec cet outil .
Si nous cliquons sur le bas de la "Section EP", nous verrons certains détails de l'exécutable.

Nous pouvons voir que la taille R. (taille brute) "400" et la taille V (taille
virtuelle) "350" sont similaires dans ".text". La section .text contient les
instructions que le CPU exécute et ce devrait être la seule section qui
inclut le code. Si un jour vous détectez 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 sur le disque il n'a pas de taille (il est emballé Packé) et
dans la mémoire il a une taille (il est déballé lui-même).

Nous avons maintenant l'assurance que le fichier n'a pas été compressé. Il s'agit de l'une des
premières étapes d'une analyse statique. Nous allons faire une analyse dynamique avec
OllyDbg mais je veux savoir si le développeur a fait un effort pour essayer de cacher du
code. Notez que si l'exécutable est compressé, nous ne pourrons pas lire beaucoup de
chaînes dans le fichier. Il est possible que j'en parle dans de futurs articles. ..

La prochaine étape serait d'exécuter le programme en double-cliquant sur l'exécutable.


Après cela, nous pouvons voir qu'une fenêtre MS-DOS est lancée et le programme nous
oblige à taper le numéro de série. Nous tapons une phrase afin de vérifier le comportement
du programme.
Nous ne connaissons pas le numéro de série ... Cela semble logique ...

Maintenant, nous allons exécuter OllyDbg. Il n'a pas besoin d'installation, il suffit de le
télécharger et de le décompresser. Lorsque OllyDbg est ouvert, chargez simplement
l'exécutable en cliquant sur Fichier -> Ouvrir.

Maintenant, nous pouvons voir le code binaire. Ne vous inquiétez pas, rappelez-vous que ce
post est destiné aux débutants. Nous allons cliquer sur le bouton de lecture pour exécuter
l'exécutable qui vient d'être chargé dans notre débogueur et vérifier le comportement du
fichier. Comme indiqué sur l’image suivante.
Le programme a commencé et nous pouvons voir les premières chaînes comme "Appuyez
sur ENTRÉE pour terminer" ...
(S'il vous plaît, cliquez sur l'image pour voir tous les détails)

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 de débogueur ...
C'est vraiment étrange ... C'est comme si le programme connaissait nos intentions et il est
fermé par lui-même lorsque nous essayons de l'exécuter avec un outil de débogage ...
Si nous rechargeons le fichier à nouveau sur OllyDbg, une ligne du code attire notre
attention ... Le programme appelle à l'API "IsDebuggerPresent".

Si nous recherchons cette API sur Microsoft, nous pouvons voir que "Cette fonction permet
à une application de déterminer si elle est en cours de débogage ou non, afin qu'elle 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é par cette technique ... Pour atteindre cet objectif, nous
allons utiliser le plugin " Hide Debugger 1.2.4 ". Il suffit de le télécharger et de
décompresser la DLL dans le même dossier OllyDbg.

Il est nécessaire de redémarrer OllyDbg pour fonctionner avec ce plugin. Si vous cliquez
sur l'onglet Plugins, vous pouvez voir le plugin Hide Debugger. Vous n'avez rien d'autre à
faire.
Nous venons d'installer le plugin pour éviter d'être détecté et maintenant, nous allons
charger et lire à 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 Arg1.
(S'il vous plaît, cliquez sur l'image pour voir tous les détails)

Si nous continuons à chercher cette phrase dans le code, nous pouvons localiser
le code ci-dessous. Nous pouvons voir le String2 = "28939387", le String1 = "
I’m going to looking for this sentence in Olly now ..." et l'API appelle
CompareStringA.

Nous pouvons comprendre que l'exécutable compare ces chaînes entre elles afin
que vous puissiez vérifier si les deux ont la même valeur. Nous pouvons
supposer que la chaîne "28939387" est le numéro de série.

(S'il vous plaît, cliquez sur l'image pour voir tous les détails)

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 dans le bloc-notes et ensuite, nous allons copier uniquement
la valeur "String2": 28939387.

En fin de compte, nous avons juste besoin d'essayer de coller la valeur qui vient d'être copiée dans notre
programme et ... Eh bien !!! Nous avons obtenu le numéro de série de notre programme !!!

Ce message pourrait être appliqué à de nombreux programmes simples qui ont un keygen intégré, mais il
est nécessaire d'avoir plus de connaissances si vous voulez casser des programmes plus complexes.

Ce post se concentre sur vous montrer quelques techniques utilisant OllyDbg. Ce n'est qu'un jeu pour
obtenir plus de compétences d'ingénieur inverseur pour rechercher des logiciels malveillants. S'il vous
plaît, ne me contactez pas pour casser des programmes, c'est illégal ... Je vous recommande d'utiliser un
logiciel gratuit !!!! : P

Vous aimerez peut-être aussi