QTreanalyzer es un analizador de Ghidra diseñado para binarios de ingeniería inversa que utilizan el marco QT. Su función principal es recuperar información de objetos y métodos específicos de QT, proporcionando información valiosa sobre las estructuras binarias.
Este analizador está vinculado a la versión de Ghidra en la que se está instalando. Actualmente es necesario para construirlo; Las extensiones construidas se proporcionarán en el futuro para las últimas versiones de Ghidra.
QtREAnalyzerQtREAnalyzer cd QtREAnalyzer Q tREAnalyzer$GHIDRA_DIR con su directorio de instalación). Por ejemplo, si tiene la siguiente ruta de instalación de Ghidra C:ghidra_11.0.3_PUBLIC ejecutaría gradle -PGHIDRA_INSTALL_DIR=C:ghidra_11.0.3_PUBLIC . gradle -PGHIDRA_INSTALL_DIR= $GHIDRA_DIR File -> Install Extensions... , haga clic en el signo + y seleccione QtREAnalyzerQtREAnalyzerdistghidra_*_QtREAnalyzer.zip y haga clic en Aceptar. Para verificar que QTreanalyzer se instale correctamente, puede abrir CodeBrowser y seleccionar Analysis -> Auto Analyze ... A y verifique que exista la opción QtReAnalyzer .

Actualmente, QTreanalyzer solo funciona con binarios X32 o X64 que tienen RTTI (es decir, compilado con el compilador MSVC). Esto es así ya que QTreanalyzer usa RTTI para encontrar si las clases heredan de Qobject. Dicho esto, si uno quiere extender este analizador para trabajar con binarios sin RTTI, todo lo que es necesario hacer es modificar el archivo RttiClass.java adecuadamente.
En casos muy raros, se aplicará una firma incorrecta a una función o se agregará una propiedad a un tipo de datos en la dirección incorrecta. Esto es casi imposible de solucionar, ya que la forma en que QTreanalyzer mapea las señales QT, las ranuras y las firmas de propiedades a la dirección de función/compensación de propiedades correspondientes se basa en heurística. Esto no debería ser una limitación importante, en un archivo con más de 10 000 señales de Qt y ranuras verificando manualmente una muestra sustancial, solo encontré un puñado de símbolos etiquetados erróneamente.
QTreanalyzer no habría sido posible sin los siguientes recursos sorprendentes: