
Débogueur en ligne de commande et Python pour instrumenter et modifier le comportement de logiciels natifs sous Windows et Linux.
flare-qdb est un outil en ligne de commande et scriptable basé sur Python pour évaluer et manipuler l'état natif d'un programme. Il utilise Vivisect pour placer un point d'arrêt sur chaque instruction interrogée et exécute du code Python lorsque celui-ci est atteint.
flare-qdb libère l'analyste pour adopter une approche non linéaire de l'analyse dynamique qui prend en compte les questions qui surviennent au cours du débogage normal et de l'analyse statique. flare-qdb répond à ces questions sans obliger l'analyste à configurer manuellement une session de débogage interactive et à naviguer le compteur de programme jusqu'à cet emplacement de code.
Voici quelques exemples de questions ponctuelles auxquelles flare-qdb peut répondre :
argv[1] ?flare-qdb peut également être utilisé pour faciliter la manipulation automatisée et reproductible de l'exécution du programme. Voici quelques exemples d'applications utiles :
Sleep() pour permettre des tests itératifs rapides d'un serveur de commande et contrôle (C2) personnalisé.MANDATORY_LOW_RID) afin de l'inciter à exécuter son code d'exploit.flare-qdb accepte plusieurs requêtes qui prennent la forme d'un compteur de programme ou d'une expression Vivisect associée à du texte Python à évaluer dans l'environnement de script de flare-qdb. Les expressions Vivisect peuvent être utilisées pour spécifier des valeurs de compteur de programme constantes simples comme "0x401000", des expressions symboliques comme "kernel32.Sleep", et plus encore. Les expressions Vivisect peuvent également intégrer l'état des registres et de la mémoire pour formuler des conditions sophistiquées, comme "not eax or (( edx > 3) and (poi(ebp-8) < 5))".
Le format des arguments de ligne de commande pour cela est :
-at <vexpr-pc> <pythontext>
flare-qdb prend également en charge l'évaluation conditionnelle basée sur la valeur de vérité d'une expression Vivisect :
-at-if <vexpr-pc> <vexpr-conds> <pythontext>
flare-qdb fournit plusieurs fonctions intégrées pour un débogage pratique, disponibles à la fois depuis la ligne de commande et en tant que méthodes de sa classe Qdb.
flare-qdb a été testé principalement sous Windows, mais fonctionne sous Linux. Malheureusement, le port Darwin de la classe vtrace.Trace de Vivisect est incomplet, donc flare-qdb ne supporte pas OSX.
flare-qdb est livré avec De-DOSfuscator, un outil pour décoder les fichiers batch obfusqués en les exécutant. Les détails peuvent être trouvés dans le Guide De-DOSfuscator ou en lisant le blog Cmd and Conquer: De-DOSfuscation with flare-qdb.
Des informations sur l'installation de flare-qdb sont disponibles dans le Guide d'installation.
Des informations sur l'utilisation de flare-qdb en ligne de commande sont disponibles dans le Guide d'utilisation en ligne de commande.
Des informations sur le scripting avec flare-qdb sont disponibles dans le Guide de scripting. Les méthodes de la classe Qdb spécifiques au scripting de flare-qdb peuvent être trouvées dans la Référence des méthodes.
Une référence complète des fonctions intégrées de flare-qdb (disponibles à la fois depuis la CLI et en tant que méthodes d'instance) est disponible dans la Référence des fonctions intégrées ou en tapant flareqdb --help-builtins après avoir installé flare-qdb.
La documentation de De-DOSfuscator peut être trouvée dans le Guide De-DOSfuscator.
Des informations de dépannage peuvent être trouvées dans le Guide de dépannage.
Les remerciements et les réflexions sur les fonctionnalités futures qui pourraient être utiles peuvent être trouvés dans les Notes.