
Depurador de línea de comandos y Python para instrumentar y modificar el comportamiento de software nativo en Windows y Linux.
flare-qdb es una herramienta basada en Python, utilizable desde la línea de comandos y mediante scripts, diseñada para evaluar y manipular el estado nativo de un programa. Utiliza Vivisect para establecer un punto de interrupción en cada instrucción consultada y ejecuta código Python al alcanzarlo.
flare-qdb libera al analista para adoptar un enfoque no lineal del análisis dinámico, que se adapta a las preguntas que surgen durante la depuración normal y el análisis estático. flare-qdb responde estas preguntas sin que el analista tenga que configurar manualmente una sesión de depurador interactivo y navegar hasta esa ubicación de código con el contador de programa.
Estos son algunos ejemplos de preguntas puntuales que flare-qdb puede responder:
argv[1]?flare-qdb también se puede utilizar para facilitar la manipulación automatizada y repetible de la ejecución del programa. Aquí hay algunos ejemplos de aplicaciones útiles:
Sleep() para permitir pruebas iterativas rápidas de un servidor de comando y control (C2) personalizado.MANDATORY_LOW_RID) para inducirla a ejecutar su código de explotación.flare-qdb acepta múltiples consultas que toman la forma de un contador de programa o una expresión de Vivisect emparejada con texto Python para evaluar en el entorno de scripting de flare-qdb. Las expresiones de Vivisect se pueden usar para especificar valores constantes simples de contador de programa como "0x401000", expresiones simbólicas como "kernel32.Sleep", y más. Las expresiones de Vivisect también pueden incorporar el estado de registros y memoria para articular condiciones sofisticadas, como "not eax or (( edx > 3) and (poi(ebp-8) < 5))".
El formato de argumento de línea de comandos para esto es:
-at <vexpr-pc> <pythontext>
flare-qdb también admite la evaluación condicional basada en el valor de verdad de una expresión de Vivisect:
-at-if <vexpr-pc> <vexpr-conds> <pythontext>
flare-qdb proporciona varias funciones integradas para una depuración conveniente, que están disponibles tanto desde la línea de comandos como como métodos de su clase Qdb.
flare-qdb se ha probado principalmente en Windows, pero funciona en Linux. Desafortunadamente, el puerto Darwin de la clase vtrace.Trace de Vivisect está incompleto, por lo que flare-qdb no es compatible con OSX.
flare-qdb incluye De-DOSfuscator, una herramienta para decodificar archivos batch ofuscados ejecutándolos. Los detalles se pueden encontrar en la Guía de De-DOSfuscator o leyendo el blog Cmd and Conquer: De-DOSfuscation with flare-qdb.
La información sobre la instalación de flare-qdb está disponible en la Guía de instalación.
La información sobre el uso de flare-qdb desde la línea de comandos está disponible en la Guía de uso de línea de comandos.
La información sobre la creación de scripts con flare-qdb está disponible en la Guía de scripting. Los métodos específicos de la clase Qdb para scripting con flare-qdb se pueden encontrar en la Referencia de métodos.
Una referencia completa de las funciones integradas de flare-qdb (disponibles tanto desde la CLI como como métodos de instancia) está disponible en la Referencia de funciones integradas o escribiendo flareqdb --help-builtins después de instalar flare-qdb.
La documentación de De-DOSfuscator se puede encontrar en la Guía de De-DOSfuscator.
La información sobre resolución de problemas se puede encontrar en la Guía de resolución de problemas.
Los agradecimientos y reflexiones sobre funcionalidades futuras que pueden ser útiles se pueden encontrar en las Notas.