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