
Командная строка и отладчик Python для инструментирования и изменения поведения нативного программного обеспечения на Windows и Linux.
flare-qdb — это инструмент на основе Python с возможностью командной строки и скриптования для оценки и манипуляции состоянием нативной программы. Он использует Vivisect для установки точки останова на каждом запрашиваемом инструкции и выполняет Python-код при срабатывании.
flare-qdb освобождает аналитика для нелинейного подхода к динамическому анализу, который учитывает вопросы, возникающие в ходе обычной отладки и статического анализа. flare-qdb отвечает на эти вопросы без необходимости ручной настройки интерактивного сеанса отладчика и перемещения программного счетчика к этому месту в коде.
Вот несколько примеров точечных вопросов, на которые может ответить flare-qdb:
argv[1]?flare-qdb также может использоваться для автоматизированного, повторяемого манипулирования выполнением программы. Вот несколько примеров полезных применений:
Sleep() для быстрого итеративного тестирования собственного сервера управления и контроля (C2).MANDATORY_LOW_RIDflare-qdb принимает несколько запросов в форме программного счетчика или выражения Vivisect в паре с некоторым Python-текстом для вычисления в среде скриптования flare-qdb. Выражения Vivisect можно использовать для указания простых постоянных значений программного счетчика, таких как "0x401000", символьных выражений, таких как "kernel32.Sleep", и т.д. Выражения Vivisect также могут включать состояние регистров и памяти для формулирования сложных условий, например "not eax or (( edx > 3) and (poi(ebp-8) < 5))".
Формат аргумента командной строки для этого:
-at <vexpr-pc> <pythontext>
flare-qdb также поддерживает условное вычисление на основе истинностного значения выражения Vivisect:
-at-if <vexpr-pc> <vexpr-conds> <pythontext>
flare-qdb предоставляет несколько встроенных функций для удобной отладки, которые доступны как из командной строки, так и в качестве методов его класса Qdb.
flare-qdb в основном тестировался на Windows, но работает и на Linux. К сожалению, порт Darwin класса vtrace.Trace от Vivisect неполный, поэтому flare-qdb не поддерживает OSX.
flare-qdb поставляется с De-DOSfuscator — инструментом для декодирования обфусцированных пакетных файлов путем их выполнения. Подробности можно найти в Руководстве по De-DOSfuscator или прочитав блог Cmd and Conquer: De-DOSfuscation with flare-qdb.
Информация об установке flare-qdb доступна в Руководстве по установке.
Информация об использовании flare-qdb из командной строки доступна в Руководстве по использованию командной строки.
Информация о скриптовании с flare-qdb доступна в Руководстве по скриптованию. Методы класса Qdb, специфичные для скриптования flare-qdb, можно найти в Справочнике методов.
Полная справка по встроенным функциям flare-qdb (доступным как из CLI, так и в качестве методов экземпляра) доступна в Справочнике встроенных функций или после установки flare-qdb, набрав flareqdb --help-builtins.
Документация по De-DOSfuscator находится в Руководстве по De-DOSfuscator.
Информация по устранению неполадок находится в Руководстве по устранению неполадок.
Благодарности и мысли о будущем функционале, который может быть полезен, можно найти в Заметках.