
Windows 및 Linux에서 네이티브 소프트웨어 동작을 계측하고 수정하기 위한 명령줄 및 Python 디버거.
flare-qdb는 명령줄 및 스크립트 가능한 Python 기반 도구로, 네이티브 프로그램 상태를 평가하고 조작합니다. Vivisect를 사용하여 각 쿼리된 명령어에 중단점을 설정하고, 적중 시 Python 코드를 실행합니다.
flare-qdb는 분석가가 일반적인 디버깅 및 정적 분석 과정에서 발생하는 질문에 대응할 수 있도록 동적 분석에 비선형적 접근 방식을 취할 수 있게 해줍니다. flare-qdb는 분석가가 대화형 디버거 세션을 수동으로 설정하고 프로그램 카운터를 해당 코드 위치로 이동시키지 않고도 이러한 질문에 답합니다.
다음은 flare-qdb가 답할 수 있는 특정 질문의 몇 가지 예시입니다:
argv[1]의 값에 의존합니까?flare-qdb는 또한 자동화되고 반복 가능한 프로그램 실행 조작을 용이하게 하는 데 사용될 수 있습니다. 유용한 응용 프로그램의 몇 가지 예시는 다음과 같습니다:
Sleep()에 대한 인수를 재정의하여 사용자 정의 명령 및 제어(C2) 서버의 신속한 반복 테스트를 허용합니다.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에서도 작동합니다. 불행히도 Darwin 포트의 Vivisect vtrace.Trace 클래스가 불완전하여 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의 내장 함수(CLI 및 인스턴스 메서드 모두 사용 가능)에 대한 전체 참조는 내장 함수 참조 또는 flare-qdb 설치 후 flareqdb --help-builtins 입력으로 확인할 수 있습니다.
De-DOSfuscator 문서는 De-DOSfuscator 가이드에서 찾을 수 있습니다.
문제 해결 정보는 문제 해결 가이드에서 확인할 수 있습니다.
감사의 말과 유용할 수 있는 향후 기능에 대한 생각은 참고에서 확인할 수 있습니다.