Introduction à OllyDBG 

 

    Ce dont vous avez besoin : OllyDBG

    

    OllyDbg est un analyser, debugger et assembleur 32 bits avec une interface intuitive. Il est bien plus puissant que W32DASM et ses plugins lui permettent même de rivaliser avec le grand SoftIce.

    Voici à quoi ressemble une fenêtre d'un programme désassemblé :

        Sachez que grâce aux icônes que vous voyez ici(1) et au clic droit, vous avez accès à la quasi totalité des fonctions d'Olly.

        Je vais brièvement expliquer les différentes fonction d'Olly qui me semble intéressantes. Sachez qu'il en existe bien d'autres qui ont aussi leur utilité.

 

        (1) : ToolBar

        (Certaines fonctions ne servent pratiquement jamais, je ne les expliquerai pas ici)

        (F3) sert à ouvrir un fichier à désassembler

        (CTRL+F2) sert à recharger le dernier programme ouvert (s'il est en cours d'exécution, il se ferme puis se recharge)

        (ALT+F2) sert à arrêter le programme en cours d'exécution

        (F9) sert à exécuter le programme (au cas où il est en pause sur un BP - Break Point - par exemple)

        (F12) sert à mettre le programme en pause (chez moi le programme plante lorsque je clique dessus)

        (F7) sert à rentrer dans une fonction lors de l'exécution en pas à pas

        (F8) sert à exécuter les fonctions sans rentrer dedans en pas à pas

        (CTRL+F9) sert à exécuter le programme jusqu'à ce qu'il y ait une instruction RET (pratique pour sortir d'une fonction)

        sert à se positionner à une certaine adresse dans le programme

        sert à afficher les chaînes de caractères trouvées lors de l'analyse du programme (il faut toutefois faire un clic droit>Search for>All referenced text strings avant de pouvoir voir quoique se soit)

        (2) Offsets

        Position dans le programme. Pour voir les offsets réels (ceux dans le fichier exécutable) clic droit>View>Executable File

        Pour ajouter un label sur une ligne, appuyez sur ':' puis entrez le nom de votre label.

        (3) Code hexadécimal

        Ici est affiché la valeur en hexa des instructions en asm correspondantes. Si vous double cliquez dessus, vous posez un BP sur la ligne correspondante.

        (4) Instructions assembleur

        Si vous double cliquez sur une ligne, vous pourrez éditer l'instruction sélectionnée. Attention, le patch se fait en mémoire. Si vous voulez conserver les changements : copy to executable>all modifications, vous fermez la fenêtre qui s'ouvre et vous enregistrez.

        (5) Analyse d'Olly / commentaires

        Ici se trouve les fonctions reconnues par Olly ainsi que leurs arguments et/ou vos commentaires. Pour entrez un commentaire, appuyez sur ';' et entrez le texte de votre commentaire.

        (6) Registres généraux

        Ici se trouvent les registres. La couleur rouge indique qu'ils ont été modifié à l'instruction précédente.

        (7) Flags

        Les flags peuvent être modifiés en double-cliquant dessus.

        (8) Fenêtre d'état

        Ici se trouve des informations complémentaires lors de l'exécution pas à pas, comme la valeur d'une variable, si un saut est pris ou pas,...

        (9) Fenêtre de Dump

        Vous voyez ici le code hexadécimal d'une partie de l'exécutable en mémoire. Pour aller à une position précise : clic droit dans cette fenêtre>Goto>Expression et vous entrez l'adresse. Vous pouvez ici aussi donner un label à une adresse. Pour cela vous vous positionner à la bonne adresse puis vous appuyez sur ':' et vous entrez le label.

        (10) Fenêtre de la pile

        (11) Info complémentaires

        Ici sont affichée des infos comme une erreur qui s'est produite,le nombre de fonctions trouvées lors de l'analyse, ...

        (12) Etat

        Indique l'état du programme (PAUSED, RUNNING, TERMINATED)

 

        Le clic droit  

        Le clic droit vous donne accès à de nombreuses fonctions. Celle que je n'ai pas encore citée ici et qui pourra vous servir est Goto>Expression. Vous rentrez l'adresse à laquelle vous désirez vous rendre et il vous y amène.

        Autres astuces

        Si vous utilisez un éditeur hexa, vous regretterez qu'Olly n'affiche pas l'offset réel dans l'exe d'une instruction. Effectivement, il ne l'affiche pas directement mais si vous faites clic droit>View>Executable File, vous aurez une nouvelle fenêtre qui s'affichera avec les offsets réels dans le fichier exe.

        Voilà, maintenant vous êtes prêts à vous attaquer à votre premier programme.

 

 

Bon crack,                  

Crisanar         

[ << Les bases de l'asm ] [ Cours n°1 >> ]

 

Dernière mise à jour le 13/08/2004 18:46