
Depurador de linha de comando e Python para instrumentar e modificar o comportamento de software nativo no Windows e Linux.
flare-qdb é uma ferramenta baseada em Python, usada em linha de comando e scriptável, para avaliar e manipular o estado de programas nativos. Ela usa o Vivisect para definir um breakpoint em cada instrução consultada e executa código Python quando atingida.
O flare-qdb libera o analista para adotar uma abordagem não linear de análise dinâmica que acomoda as perguntas que surgem durante a depuração normal e a análise estática. O flare-qdb responde a essas perguntas sem exigir que o analista configure manualmente uma sessão interativa de depuração e navegue pelo contador de programa até aquele local de código.
Aqui estão alguns exemplos de perguntas pontuais que o flare-qdb pode responder:
argv[1]?O flare-qdb também pode ser usado para facilitar a manipulação automatizada e repetível da execução de programas. Aqui estão alguns exemplos de aplicações úteis:
Sleep() para permitir testes iterativos rápidos de um servidor de comando e controle (C2) personalizado.MANDATORY_LOW_RID) para induzi-la a executar seu código de exploit.O flare-qdb aceita múltiplas consultas que assumem a forma de um contador de programa ou expressão Vivisect emparelhada com algum texto Python para avaliar no ambiente de script do flare-qdb. Expressões Vivisect podem ser usadas para especificar valores simples constantes de contador de programa como "0x401000", expressões simbólicas como "kernel32.Sleep", e mais. Expressões Vivisect também podem incorporar estado de registradores e memória para articular condições sofisticadas, como "not eax or (( edx > 3) and (poi(ebp-8) < 5))".
O formato do argumento de linha de comando para isso é:
-at <vexpr-pc> <pythontext>
O flare-qdb também suporta avaliação condicional baseada no valor de verdade de uma expressão Vivisect:
-at-if <vexpr-pc> <vexpr-conds> <pythontext>
O flare-qdb fornece várias funções embutidas para depuração conveniente, que estão disponíveis tanto na linha de comando quanto como métodos de sua classe Qdb.
O flare-qdb foi testado principalmente no Windows, mas funciona no Linux. Infelizmente, a porta Darwin da classe vtrace.Trace do Vivisect está incompleta, então o flare-qdb não suporta OSX.
O flare-qdb vem com o De-DOSfuscator, que é uma ferramenta para decodificar arquivos batch ofuscados executando-os. Detalhes podem ser encontrados no Guia De-DOSfuscator ou lendo o blog Cmd and Conquer: De-DOSfuscation with flare-qdb.
Informações sobre a instalação do flare-qdb estão disponíveis no Guia de Instalação.
Informações sobre o uso do flare-qdb na linha de comando estão disponíveis no Guia de Uso em Linha de Comando.
Informações sobre scripts com flare-qdb estão disponíveis no Guia de Scripts. Métodos da classe Qdb específicos para scripts do flare-qdb podem ser encontrados na Referência de Métodos.
Uma referência completa das funções embutidas do flare-qdb (disponível tanto na CLI quanto como métodos de instância) está disponível na Referência de Funções Embutidas ou digitando flareqdb --help-builtins após instalar o flare-qdb.
A documentação do De-DOSfuscator pode ser encontrada no Guia De-DOSfuscator.
Informações de solução de problemas podem ser encontradas no Guia de Solução de Problemas.
Agradecimentos e ideias sobre funcionalidades futuras que possam ser úteis podem ser encontrados nas Notas.