
Kommandozeilen- und Python-Debugger zur Instrumentierung und Modifizierung des Verhaltens nativer Software unter Windows und Linux.
flare-qdb ist ein kommandozeilenbasiertes und skriptfähiges Python-Werkzeug zur Bewertung und Manipulation des nativen Programmszustands. Es verwendet Vivisect, um an jeder abgefragten Anweisung einen Haltepunkt zu setzen und beim Erreichen Python-Code auszuführen.
flare-qdb befreit den Analysten davon, einen nichtlinearen Ansatz für die dynamische Analyse zu verfolgen, der die Fragen berücksichtigt, die im Verlauf der normalen Fehlersuche und statischen Analyse auftauchen. flare-qdb beantwortet diese Fragen, ohne dass der Analyst manuell eine interaktive Debugger-Sitzung einrichten und den Programmzähler zu dieser Codestelle navigieren muss.
Hier sind einige Beispiele für gezielte Fragen, die flare-qdb beantworten kann:
argv[1] ab?flare-qdb kann auch verwendet werden, um automatisierte, wiederholbare Manipulationen der Programmausführung zu ermöglichen. Hier sind einige Beispiele für nützliche Anwendungen:
Sleep(), um schnelle iterative Tests eines benutzerdefinierten Command-and-Control (C2)-Servers zu ermöglichen.MANDATORY_LOW_RID) ist, um es zur Ausführung seines Exploit-Codes zu veranlassen.flare-qdb akzeptiert mehrere Abfragen in Form eines Programmzählers oder eines Vivisect-Ausdrucks, gepaart mit einem Python-Text, der in der flare-qdb-Skriptumgebung ausgewertet wird. Vivisect-Ausdrücke können verwendet werden, um einfache konstante Programmzählerwerte wie "0x401000", symbolische Ausdrücke wie "kernel32.Sleep" und mehr anzugeben. Vivisect-Ausdrücke können auch Register- und Speicherzustände einbeziehen, um anspruchsvolle Bedingungen zu formulieren, wie z.B. "not eax or (( edx > 3) and (poi(ebp-8) < 5))".
Das Befehlszeilenargumentformat hierfür lautet:
-at <vexpr-pc> <pythontext>
flare-qdb unterstützt auch die bedingte Auswertung basierend auf dem Wahrheitswert eines Vivisect-Ausdrucks:
-at-if <vexpr-pc> <vexpr-conds> <pythontext>
flare-qdb bietet mehrere eingebaute Funktionen für komfortables Debugging, die sowohl von der Befehlszeile als auch als Methoden seiner Qdb-Klasse verfügbar sind.
flare-qdb wurde hauptsächlich unter Windows getestet, funktioniert aber auch unter Linux. Leider ist der Darwin-Port der vtrace.Trace-Klasse von Vivisect unvollständig, daher unterstützt flare-qdb OSX nicht.
flare-qdb wird mit De-DOSfuscator ausgeliefert, einem Werkzeug zum Dekodieren verschleierter Batch-Dateien durch deren Ausführung. Details finden Sie im De-DOSfuscator-Leitfaden oder im Blogbeitrag Cmd and Conquer: De-DOSfuscation with flare-qdb.
Informationen zur Installation von flare-qdb finden Sie im Installationsleitfaden.
Informationen zur Verwendung von flare-qdb in der Befehlszeile finden Sie im Befehlszeilen-Nutzungsleitfaden.
Informationen zur Skripterstellung mit flare-qdb finden Sie im Skriptleitfaden. Die für die Skripterstellung mit flare-qdb spezifischen Methoden der Qdb-Klasse finden Sie in der Methodenreferenz.
Eine vollständige Referenz der in flare-qdb integrierten Funktionen (sowohl über die CLI als auch als Instanzmethoden verfügbar) finden Sie in der Builtins-Referenz oder durch Eingabe von flareqdb --help-builtins nach der Installation von flare-qdb.
Die Dokumentation zu De-DOSfuscator finden Sie im De-DOSfuscator-Leitfaden.
Informationen zur Fehlerbehebung finden Sie im Fehlerbehebungsleitfaden.
Danksagungen und Gedanken zu zukünftigen, möglicherweise nützlichen Funktionen finden Sie in den Notizen.