
Debugger da riga di comando e Python per strumentare e modificare il comportamento del software nativo su Windows e Linux.
flare-qdb è uno strumento da riga di comando e scriptabile basato su Python per valutare e manipolare lo stato di programmi nativi. Utilizza Vivisect per impostare un breakpoint su ogni istruzione interrogata ed esegue codice Python quando viene colpito.
flare-qdb libera l'analista di adottare un approccio non lineare all'analisi dinamica che si adatta alle domande che sorgono nel corso del normale debugging e dell'analisi statica.
flare-qdb risponde a queste domande senza richiedere all'analista di impostare manualmente una sessione di debug interattiva e navigare il contatore di programma fino a quella posizione di codice.
Ecco alcuni esempi di domande puntuali a cui flare-qdb può rispondere:
argv[1]?flare-qdb può anche essere utilizzato per facilitare la manipolazione automatizzata e ripetibile dell'esecuzione del programma. Ecco alcuni esempi di applicazioni utili:
Sleep() per consentire test iterativi rapidi di un server di comando e controllo (C2) personalizzato.MANDATORY_LOW_RID) per indurlo a eseguire il suo codice exploit.flare-qdb accetta più query che prendono la forma di un contatore di programma o espressione Vivisect abbinata a del testo Python da valutare nell'ambiente di scripting di flare-qdb. Le espressioni Vivisect possono essere utilizzate per specificare semplici valori costanti del contatore di programma come "0x401000", espressioni simboliche come "kernel32.Sleep" e altro. Le espressioni Vivisect possono anche incorporare lo stato dei registri e della memoria per articolare condizioni sofisticate, come "not eax or (( edx > 3) and (poi(ebp-8) < 5))".
Il formato dell'argomento da riga di comando per questo è:
-at <vexpr-pc> <pythontext>
flare-qdb supporta anche la valutazione condizionale basata sul valore di verità di un'espressione Vivisect:
-at-if <vexpr-pc> <vexpr-conds> <pythontext>
flare-qdb fornisce diversi builtins per un debug conveniente, disponibili sia dalla riga di comando che come metodi della sua classe Qdb.
flare-qdb è stato testato principalmente su Windows, ma funziona su Linux. Purtroppo, la porta Darwin della classe vtrace.Trace di Vivisect è incompleta, quindi flare-qdb non supporta OSX.
flare-qdb include De-DOSfuscator, uno strumento per decodificare file batch offuscati eseguendoli. I dettagli si trovano nella Guida a De-DOSfuscator o leggendo il blog Cmd and Conquer: De-DOSfuscation with flare-qdb.
Informazioni sull'installazione di flare-qdb sono disponibili nella Guida all'installazione.
Informazioni sull'uso di flare-qdb da riga di comando sono disponibili nella Guida all'uso da riga di comando.
Informazioni sulla creazione di script con flare-qdb sono disponibili nella Guida agli script. I metodi della classe Qdb specifici per la creazione di script con flare-qdb si trovano nel Riferimento ai metodi.
Un riferimento completo dei builtins di flare-qdb (disponibili sia da CLI che come metodi di istanza) è disponibile nel Riferimento ai builtins o digitando flareqdb --help-builtins dopo aver installato flare-qdb.
La documentazione di De-DOSfuscator si trova nella Guida a De-DOSfuscator.
Informazioni sulla risoluzione dei problemi si trovano nella Guida alla risoluzione dei problemi.
Riconoscimenti e considerazioni su funzionalità future che potrebbero essere utili si trovano nelle Note.