Introduction à QBDI et ses bindings Python

Magazine
Marque
MISC
Numéro
109
Mois de parution
mai 2020
Spécialité(s)


Résumé

Le présent article traite de l'outil d'instrumentation dynamique QBDI. C'est un framework de DBI (Dynamic Binary Instrumentation), comparable à d'autres projets publics tels qu’Intel PIN, Valgrind ou encore DynamoRIO. Avant d'entrer dans le vif du sujet, quelques rappels peuvent s'avérer nécessaires…


L'instrumentation dynamique de binaires (DBI - Dynamic Binary Instrumentation) est un procédé qui permet d'analyser le comportement d'un programme lors de son exécution grâce à un code dit d' « instrumentation ». Ce code est injecté dans le flot d'exécution standard, tout en gardant le comportement initial du programme.

L'intérêt des outils d'instrumentation dynamique est la possibilité d'analyser l'exécution d'un code, à différents niveaux de granularité. Que ce soit une trace des fonctions appelées, des accès mémoire, ou encore une trace de toutes les instructions exécutées accompagnées des valeurs des registres à chaque instant.

Les exemples d'utilisation sont nombreux, du profiling logiciel à la déobfuscation de binaires, en passant par le fuzzing d'exécutables, ces outils permettent d'automatiser des analyses parfois redondantes et complexes.

1. DBI VS Debugger

L'instrumentation dynamique peut prendre de nombreuses déclinaisons. La forme...

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne
Références


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous