QTreanalyzer est un analyseur Ghidra conçu pour les binaires inversés des ingénieurs qui utilisent le cadre QT. Sa fonction principale est de récupérer les informations d'objet et de méthode spécifiques au QT, fournissant des informations précieuses sur les structures binaires.
Cet analyseur est lié à la version Ghidra sur laquelle il est installé. Est actuellement nécessaire pour le construire; Des extensions construites seront fournies à l'avenir pour les dernières versions Ghidra.
QtREAnalyzerQtREAnalyzer cd QtREAnalyzer Q tREAnalyzer$GHIDRA_DIR par votre répertoire d'installation). Par exemple, si vous avez le chemin d'installation de Ghidra suivant C:ghidra_11.0.3_PUBLIC vous exécuteriez gradle -PGHIDRA_INSTALL_DIR=C:ghidra_11.0.3_PUBLIC . gradle -PGHIDRA_INSTALL_DIR= $GHIDRA_DIR File -> Install Extensions... , cliquez sur le signe + et sélectionnez le QtREAnalyzerQtREAnalyzerdistghidra_*_QtREAnalyzer.zip et cliquez sur OK. Pour vérifier que QTrEanalyzer est correctement installé, vous pouvez ouvrir CodeBrowser et sélectionner Analysis -> Auto Analyze ... A et vérifier que l'option QtReAnalyzer existe.

Actuellement, QTreanalyzer ne fonctionne qu'avec des binaires x32 ou x64 qui ont RTTI (c'est-à-dire compilé avec le compilateur MSVC). Il en est ainsi puisque QTreanalyzer utilise RTTI pour trouver si les classes héritent de QObject. Cela dit que si l'on veut étendre cet analyseur pour travailler avec des binaires sans RTTI, tout ce qui est nécessaire à faire est de modifier le fichier RttiClass.java de manière appropriée.
Dans de très rares cas, une signature incorrecte sera appliquée à une fonction ou une propriété sera ajoutée à un type de données dans l'adresse incorrecte. Ceci est presque impossible à corriger car la façon dont QTreanalyzer mappe les signaux QT, les emplacements et les signatures propriétés au décalage d'adresse / propriété de fonction correspondant est basé sur l'heuristique. Cela ne devrait pas être une limitation majeure, dans un fichier avec plus de 10 000 signaux QT et des machines à sous vérifiant manuellement un échantillon substantiel, je n'ai trouvé qu'une poignée de symboles étiquetés par erreur.
QTreanalyzer n'aurait pas été possible sans les ressources incroyables suivantes: