La bibliothèque PyDbg

Nous avons vu dans les sections précédentes comment placer des points d’arrêt, mais comment faire avec PyDbg ?

Une fonction bp_set(address, descriptor= ’’ ’’, restore= True,handler=None) va nous y aider.

L’argument address est l’adresse où nous voulons placer le point d’arrêt logiciel.

Le paramètre descriptor est optionnel et peut être utilisé pour donner un nom au point d’arrêt.

Le paramètre restore détermine si le point d’arrêt doit automatiquement être remis à zéro après avoir récupéré l’en-tête et le paramètre handler spécifie quelle fonction appeler.

Toutes les informations du contexte, des threads et processus vont être renseignées par cette classe lors de l’appel à la fonction.

Nous allons utiliser le script boucle_printf.py des sections précédentes et grâce à un nouveau script, nous allons lire les valeurs du compteur et les remplacer par une valeur aléatoire comprise entre 1 et 100.

Nous allons donc observer, lire et manipuler des données du processus cible en temps réel.

printf_random.py


from pydbg import * 
from pydbg.defines import * 
 
import struct 
import random 
 
def printf_randomizer(dbg): 
     
    # Lecture de la valeur du compteur en ESP + 0x8 comme un DWORD 
  ...
couv_EP2HAFO.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Les points d’arrêt (breakpoints)
Suivant
Mise en pratique : Hooking