
CERT Kaiju est une extension de framework d'analyse binaire pour la suite de rétro-ingénierie logicielle Ghidra. Ce dépôt est un "miroir" -- veuillez soumettre les tickets, rapports de bugs ou pull requests sur le dépôt amont chez @CERTCC : https://github.com/certcc/kaiju
CERT Kaiju est un ensemble d’outils d’analyse binaire pour Ghidra.
Il s’agit d’une implémentation en Java pour Ghidra de certaines fonctionnalités du [CERT Pharos Binary Analysis Framework][pharos], notamment les outils de hachage de fonctions et d’analyse de malwares, mais devrait s’enrichir de nouveaux outils et capacités au fil du temps.
Comme il s’agit d’un nouvel effort, cette implémentation n’offre pas encore la parité complète de fonctionnalités avec l’implémentation originale en C++ basée sur ROSE ; cependant, le passage à Java et à Ghidra a en réalité permis de nouvelles fonctionnalités absentes du cadre original – notamment une meilleure gestion des architectures non x86. Étant donné qu’une réarchitecture significative du cadre et des outils est en cours, et que le passage à Java et à Ghidra offre des capacités différentes de l’implémentation C++, il a été décidé d’utiliser une nouvelle marque afin d’éviter toute confusion entre les implémentations lors de la discussion des différents outils et capacités.
Notre intention pour le futur proche est de maintenir à la fois le cadre original Pharos et Kaiju, côte à côte, car chacun peut offrir des fonctionnalités et capacités uniques.
AVERTISSEMENT : En tant que prototype, de nombreux problèmes peuvent survenir lors de l’évaluation des hachages de fonctions créés par ce plugin. Par exemple, contrairement à l’implémentation Pharos, le module de hachage de fonctions de Kaiju crée des hachages pour des fonctions très petites (par exemple, celles avec une seule instruction comme RET, ce qui provoque beaucoup plus de collisions non intentionnelles). Ainsi, les résultats analytiques peuvent varier entre ce plugin et Pharos fn2hash.
[Des paquets Kaiju préconstruits][prebuilts] sont disponibles. Téléchargez simplement le fichier ZIP correspondant à votre version de Ghidra et installez-le selon les instructions ci-dessous. Il est recommandé d’installer via l’interface graphique de Ghidra, mais il est également possible de décompresser manuellement dans le répertoire approprié pour installer.
CERT Kaiju nécessite les dépendances d’exécution suivantes :
Z3 est fourni précompilé dans les paquets préconstruits, ou vous pouvez compiler Z3 vous-même ou utiliser le paquet de votre distribution Linux.
Lancez Ghidra, et depuis la fenêtre d’ouverture, sélectionnez dans le menu :
File > Install Extension. Cliquez sur le signe plus en haut de la fenêtre
des extensions, naviguez et sélectionnez le fichier .zip dans l’explorateur
de fichiers et cliquez sur OK. L’extension sera installée et une case à
cocher sera marquée à côté du nom de l’extension dans la fenêtre pour vous
indiquer qu’elle est installée et prête.
L’interface vous demandera de redémarrer Ghidra pour commencer à utiliser l’extension. Redémarrez simplement, puis les fonctionnalités supplémentaires de Kaiju seront disponibles pour une utilisation interactive ou dans des scripts.
Certaines fonctionnalités peuvent nécessiter l’activation des plugins Kaiju.
Pour ce faire, ouvrez le Code Browser puis naviguez dans le menu
File > Configure. Dans la fenêtre qui s’affiche, cliquez sur le lien
Configure sous l’icône de la catégorie « CERT Kaiju ». Une fenêtre
contextuelle affichera tous les plugins Kaiju disponibles publiquement.
Cochez tous les plugins que vous souhaitez activer, puis cliquez sur OK.
Vous aurez alors accès aux fonctionnalités interactives des plugins.
Si un plugin n’est pas immédiatement visible une fois activé, vous pouvez le
trouver sous le menu Window dans le Code Browser.
Des versions expérimentales « alpha » des futurs outils peuvent être disponibles dans la catégorie « Experimental » si vous souhaitez les tester. Cependant, ces plugins sont définitivement expérimentaux et non supportés, et ne sont pas recommandés pour une utilisation en production. Nous accueillons cependant les retours précoces !
Les extensions Ghidra comme Kaiju peuvent également être installées manuellement en décompressant le contenu de l’extension dans le répertoire approprié de votre installation Ghidra. Pour plus d’informations, veuillez consulter The Ghidra Installation Guide.
Vous pouvez également compiler l’extension Kaiju directement à partir du code
source. Voir le fichier INSTALL.md inclus dans le répertoire source
principal de Kaiju.
Les outils de Kaiju peuvent être utilisés soit de manière interactive avec interface graphique, soit via un mode « headless » (sans interface) plus adapté aux traitements par lots. Certains outils peuvent n’être disponibles que pour une utilisation graphique ou sans interface, selon leur nature.
Kaiju crée une interface graphique interactive (GUI) dans Ghidra utilisant Java Swing et l’architecture de plugins de Ghidra.
La plupart des outils de Kaiju sont en réalité des plugins d’analyse qui
s’exécutent automatiquement lorsque l’option « Auto Analysis » est choisie,
soit lors de l’import d’un nouvel exécutable à désassembler, soit en
choisissant directement Analysis > Auto Analyze... depuis la fenêtre du
code browser. Vous verrez plusieurs plugins d’analyse CERT sélectionnés par
défaut dans l’outil Auto Analyze, mais vous pouvez activer/désactiver ceux
que vous souhaitez.
Cependant, les outils d’analyse doivent être exécutés avant que les différents outils GUI ne fonctionnent. Dans certains cas particuliers, il peut même être utile d’exécuter l’analyse automatique deux fois pour garantir la production de toutes les métadonnées nécessaires à la création d’un partitionnement et d’informations de désassemblage corrects, ce qui peut à son tour influencer les résultats de hachage.
Les analyseurs sont automatiquement exécutés pendant la phase d’analyse de Ghidra et incluent :