Didacticiel 1 : détection des fichiers de classe Java

Ce didacticiel fournit des instructions pour utiliser l'utilitaire d'analyseur de type de fichier pour analyser un ensemble de données et déterminer les octets magiques. Il explique également comment utiliser le langage de script pour créer et tester une solution.
Dans ce premier didacticiel, vous analysez et détectez des fichiers de classe Java. Ce didacticiel suppose que vous utilisiez la version de l'interface graphique utilisateur basée sous Windows de l'utilitaire d'analyseur de type de fichier.
  1. Installez l'utilitaire d'analyseur de type de fichier.
  2. Lancez l'utilitaire d'analyseur de type de fichier.
  3. Préparez l'ensemble de données pour cet exemple.
    Copiez plusieurs (15 ou plus) fichiers de classe Java (*.class) dans un répertoire de votre système de fichiers. (Dans le cadre de ce didacticiel, le répertoire qui est utilisé est C:\temp\JavaClassFiles.)
    En outre, pour vérifier que votre script correspond uniquement à des fichiers de classe Java, ajoutez quelques fichiers de classe autre que Java au répertoire.
  4. Ajoutez le répertoire d'ensemble de données à l'utilitaire d'analyseur de type de fichier.
    Dans l'utilitaire d'analyseur de type de fichier, cliquez sur
    Ajouter un répertoire
    . Naviguez et sélectionnez le répertoire où vous avez copié les fichiers et cliquez sur
    Ouvrir
    .
  5. Dans le champ
    Filtre de nom de fichier
    , saisissez une expression régulière pour filtrer les fichiers.
    Par exemple, l'expression régulière suivante examine tous les fichiers dans le répertoire sélectionné :
    [\w\s]+.[\w]+
    .
    • (
      \w
      ) tout caractère alphanumérique, chiffre ou tiret bas
    • (
      \s
      ) tout espace vide
    • (
      +
      ) un ou plusieurs des caractères précédents doivent correspondre
    • (
      .
      ) tout caractère unique, y compris lui-même
    Vous pouvez devoir régler cette expression pour trouver les fichiers que vous voulez analyser dans le répertoire spécifié. Par exemple, si un nom de fichier contient un tiret (-), réglez l'expression comme suit :
    [\w\s-]+.[\w]+
    .
  6. Dans le champ
    Nombre d'octets
    , tapez
    1024
    .
    Les octets magiques d'un fichier sont presque toujours contenus dans les 1024 premiers octets d'un fichier. Si vous voulez analyser plus que les 1024 premiers octets de données, vous devez augmenter le nombre d'octets que l'utilitaire d'analyseur de type de fichier peut lire et afficher.
  7. Pour la
    Taille d'unité
    , entrez
    1
    .
  8. Pour
    Type d'analyseur
    , choisissez
    BYTE
    .
  9. Si les fichiers que vous voulez examiner figurent dans des répertoires imbriqués, choisissez l'option
    Analyse récursive
    .
    Si vous choisissez l'option d'analyse récursive ou que vous disposez d'un ensemble de données volumineux, augmentez la taille de segment de mémoire Java allouée à l'utilitaire d'analyseur de type de fichier.
  10. Cliquez sur
    Analyser l'ensemble de données
    . L'utilitaire analyse tous les fichiers du répertoire et affiche les résultats. L'utilitaire répartit chaque fichier en onglets selon son extension. Dans l'onglet
    Tous
    , l'utilitaire affiche tous les fichiers examinés. Dans l'onglet
    .class
    , l'utilitaire affiche seulement les fichiers de classe Java.
  11. Cliquez à nouveau sur
    Analyser les données de tables
    . Cette fois, l'utilitaire met en évidence les octets de chaque fichier qui correspondent entre tous les fichiers.
    Vous pouvez voir que les fichiers de classe Java ont plusieurs octets en commun, y compris les quatres premiers (de 0 à 3) :
    CA FE BA BE
    . Ces octets sont les octets magiques pour les fichiers de classe Java.
    Dans le menu déroulant, en bas, vous pouvez modifier la manière dont l'utilitaire analyse les données de tables. L'option par défaut est COLUMN_MATCH, qui fournit généralement la correspondance la plus précise. Si vous basculez vers ce mode d'analyse, vous devez cliquer à nouveau sur
    Analyser les données de tables
    pour consulter les octets correspondants par ligne.
  12. Maintenant que vous savez quels sont les octets magiques pour les fichiers de classe Java, vous pouvez créer un script pour détecter ce type de fichier. Vous pouvez alors tester votre script à l'aide de l'utilitaire d'analyseur de type de fichier.
    Dans le champ
    Solution
    , entrez le script suivant pour détecter les fichiers de classe Java :
    $Int1 = getHexStringValue('CAFE'); $Int2 = getBinaryValueAt($data, 0x0, 2); assertTrue($Int1 == $Int2); $Int3 = getHexStringValue('BABE'); $Int4 = getBinaryValueAt($data, 0x2, 2); assertTrue($Int3 == $Int4);
  13. Cliquez sur
    Solution de test
    . En haut de l'interface, vous voyez les
    Fichiers correspondants
    . Seuls les fichiers contenant les octets magiques CAFE BABE apparaissent dans la section de "Fichiers correspondants" de l'interface. Les fichiers qui ne contiennent pas ces octets magiques apparaissent dans la section
    Fichiers discordants
    de la moitié inférieure de l'interface.
    • Quand vous analysez l'ensemble de données, l'utilitaire d'analyseur de type de fichier indique que les deux premiers octets d'un fichier de classe Java sont CA FE. Ainsi, dans la première déclaration du script, vous attribuez cette valeur comme chaîne hexadécimale à la variable
      $Int1
      .
    • Dans la deuxième déclaration du script, vous obtenez les deux premiers octets de chaque fichier et attribuez cette valeur à la variable
      $Int2
      . La partie "0x0, 2" de la déclaration indique au moteur de script de démarrer au premier octet et d'obtenir les deux premiers.
    • Dans la troisième déclaration, vous comparez les valeurs des deux variables et recherchez une correspondance.
    • Le processus est répété pour les troisième et quatrième octets ("0x2, 2"), à la recherche d'une correspondance sur BA BE. Les fichiers qui correspondent aux deux évaluations sont décelables par le script et apparaissent dans la partie "Fichiers correspondants" de l'interface.
  14. Dans la section
    Note
    , entrez un commentaire sur la solution, tel que "
    Script personnalisé pour détecter des fichiers de classe Java
    ".
  15. Dans l'interface de l'analyseur de type de fichier, sélectionnez
    Fichier > Enregistrer
    . Donnez au fichier un nom et enregistrez-le dans un répertoire local, tel que
    C:\temp\JavaClassFiles.fgi
    .
  16. Fermez l'interface de l'analyseur de type de fichier et relancez-la. Choisissez
    Fichier > Ouvrir
    , puis recherchez et sélectionnez le fichier
    JavaClassFiles.fgi
    .
    Les paramètres de l'ensemble de données et la solution de script apparaissent dans l'interface. A partir de là, vous pouvez réanalyser l'ensemble de données et affiner votre solution selon les besoins. Cliquez sur
    Modifier l'ensemble de données
    pour ajouter ou supprimer les répertoires contenant des fichiers que vous voulez analyser. Vous pouvez également cliquer avec le bouton droit de la souris sur une ligne et supprimer un seul fichier de l'ensemble de données.
  17. Après avoir débogué votre solution, déployez votre script sur une instance de la règle de signature du type de fichier personnalisé. Vous pouvez alors créer et déployer des politiques qui utilisent cette règle pour détecter le type de fichier personnalisé.