
WindowsおよびLinux上でネイティブソフトウェアの動作を計測・変更するためのコマンドラインおよびPythonデバッガ。
flare-qdbは、ネイティブプログラムの状態を評価・操作するためのコマンドラインおよびスクリプト可能なPythonベースのツールです。Vivisectを使用して、クエリされた各命令にブレークポイントを設定し、ヒット時にPythonコードを実行します。
flare-qdbは、アナリストが通常のデバッグや静的解析の過程で生じる疑問に対応するために、非線形な動的解析アプローチをとることを可能にします。flare-qdbは、アナリストが手動でインタラクティブデバッガセッションを設定したり、プログラムカウンタをそのコード位置に移動したりする必要なく、これらの疑問に答えます。
以下は、flare-qdbが答えられる具体的な質問の例です:
argv[1]の値に依存するか?flare-qdbは、プログラム実行の自動化された再現可能な操作を容易にするためにも使用できます。以下は有用なアプリケーションの例です:
Sleep()の引数を上書きする。MANDATORY_LOW_RID)であると伝え、エクスプロイトコードを実行させる。flare-qdbは、プログラムカウンタまたはVivisect式と、flare-qdbスクリプト環境で評価するPythonテキストを組み合わせた複数のクエリを受け付けます。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でも動作します。残念ながら、Vivisectのvtrace.TraceクラスのDarwin移植は不完全であるため、flare-qdbはOSXをサポートしていません。
flare-qdbにはDe-DOSfuscatorが付属しています。これは、難読化されたバッチファイルを実行してデコードするためのツールです。詳細はDe-DOSfuscator ガイドまたはブログCmd and Conquer: De-DOSfuscation with flare-qdbを参照してください。
flare-qdbのインストールに関する情報は、インストールガイドを参照してください。
コマンドラインでのflare-qdbの使用に関する情報は、コマンドライン使用ガイドを参照してください。
flare-qdbのスクリプト作成に関する情報は、スクリプトガイドを参照してください。flare-qdbのスクリプト作成に特化したQdbクラスのメソッドは、メソッドリファレンスに記載されています。
flare-qdbの組み込み関数(CLIおよびインスタンスメソッドとして利用可能)の完全なリファレンスは、組み込み関数リファレンスまたはflare-qdbインストール後にflareqdb --help-builtinsと入力することで参照できます。
De-DOSfuscatorのドキュメントは、De-DOSfuscator ガイドにあります。
トラブルシューティング情報は、トラブルシューティングガイドにあります。
謝辞および将来の機能に関する考えは、ノートにあります。