Qtreanalyzer는 QT 프레임 워크를 사용하는 바이너리를 리버스 엔지니어링하도록 설계된 GHIDRA 분석기입니다. 주요 기능은 QT- 특이 적 객체 및 방법 정보를 복구하여 이진 구조에 대한 귀중한 통찰력을 제공하는 것입니다.
이 분석기는 설치중인 GHIDRA 버전과 연결되어 있습니다. 현재이를 구축해야합니다. 최신 GHIDRA 버전을 위해 내장 확장 프로그램이 제공 될 예정입니다.
QtREAnalyzerQtREAnalyzer 폴더로 이동하십시오 cd QtREAnalyzer Q tREAnalyzer$GHIDRA_DIR 교체하십시오). 예를 들어, 다음 GHIDRA 설치 경로 C:ghidra_11.0.3_PUBLIC 있는 경우 gradle -PGHIDRA_INSTALL_DIR=C:ghidra_11.0.3_PUBLIC 실행합니다. gradle -PGHIDRA_INSTALL_DIR= $GHIDRA_DIR File -> Install Extensions... , + 부호를 클릭하고 QtREAnalyzerQtREAnalyzerdistghidra_*_QtREAnalyzer.zip 선택하고 확인을 클릭하십시오. Qtreanalyzer가 올바르게 설치되어 있는지 확인하려면 CodeBrowser를 열고 Analysis -> Auto Analyze ... A 선택하고 QtReAnalyzer 옵션이 존재하는지 확인할 수 있습니다.

현재 Qtreanalyzer는 RTTI가있는 X32 또는 X64 바이너리에서만 작동합니다 (즉, MSVC 컴파일러로 컴파일). Qtreanalyzer가 RTTI를 사용하여 클래스가 Qobject에서 상속되는지 여부를 찾기 때문에 그렇습니다. RTTI없이 바이너리와 협력하도록이 분석기를 확장하려면 RttiClass.java 파일을 적절하게 수정하는 것입니다.
매우 드문 경우 잘못된 서명이 함수에 적용되거나 부동산이 잘못된 주소의 데이터 유형에 추가됩니다. Qtreanalyzer가 QT 신호, 슬롯 및 Propertie 서명을 해당 함수 주소/Propertie 오프셋에 맵핑하는 방식이 휴대 기반이므로 수정하는 것이 거의 불가능합니다. 이는 10,000 개가 넘는 QT 신호와 슬롯이있는 파일에서 수동으로 실질적인 샘플을 확인하는 파일에서 큰 제한이되어서는 안됩니다.
Qtreanalyzer는 다음과 같은 놀라운 자원이 없으면 불가능했을 것입니다.