Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
gimphash — Calcul de type Imphash sur les binaires Golang | Kitploit
Outils/GitHubGitHub/nextronsystems/gimphash
Analyse de HachageRétro-ingénierieAnalyse de MalwareAnalyse de Binaires
GitHubnextronsystems/gimphash

gimphash

Calcul de type Imphash sur les binaires Golang

Voir le dépôt
501il y a 4 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

gimphash

gimphash est une méthode proposée pour calculer un équivalent d'imphash pour les binaires Go. Son nom signifie Go-import-hash.

Les binaires Golang contiennent leurs dépendances en tant que partie de l'exécutable. Ces dépendances incluent à la fois les paquets de la bibliothèque standard et les dépendances tierces, et peuvent être utilisées, de manière analogue à un imphash classique, pour identifier un projet Golang.

Les dépendances peuvent être listées à l'aide de la pclntab qui fait partie de chaque binaire Golang (voir aussi cet article de blog de Mandiant). La pclntab contient un certain nombre d'éléments intéressants pour la rétro-ingénierie ; pour le gimphash, nous utiliserons les noms de fonctions qui y sont contenus.

Calcul

  1. Localiser la pclntab dans un binaire Golang
  2. Énumérer les fonctions golang à l'aide de la functab dans la pclntab et parcourir leurs noms :
    1. Ignorer les noms de fonctions commençant par go. ou type. (artefacts de compilation, internes du runtime)
    2. Si un nom de fonction contient vendor/, supprimer cette sous-chaîne et tout ce qui la précède (par ex. transformer vendor/golang.org/x/text en golang.org/x/text)
    3. Ignorer les noms de fonctions contenant internal/
    4. Ignorer les noms de fonctions qui commencent par l'un des paquets de bibliothèque standard suivants :
      • runtime
      • sync
      • syscall
      • type
      • time
      • unicode
      • reflect
      • strconv
    5. Ignorer les noms de fonctions qui ne sont pas publics ou dont les récepteurs ne sont pas publics. Pour ce faire :
      1. Trouver le dernier / dans le nom de la fonction. Si aucun / n'est trouvé, utiliser le début à la place. À partir de cette position, trouver le . suivant.
      2. Extraire le nom de fonction de base comme tout ce qui suit ce .. Si aucun . n'a été trouvé, utiliser tout ce qui suit l'index / calculé à l'étape précédente.
      3. Ignorer la fonction si le premier caractère alphanumérique du nom de fonction de base est une lettre minuscule.
      4. Si un autre . existe dans le nom de fonction de base, ignorer la fonction si le premier caractère alphanumérique après ce . est une lettre minuscule.
    6. Stocker le nom résultant, s'il n'a pas été ignoré jusqu'à présent, dans une liste ordonnée
  3. Calculer le hachage SHA-256 sur les noms concaténés (sans délimiteur)

Implémentations de preuve de concept

Ce dépôt contient un code de preuve de concept dans les langages suivants :

  • C
  • Go

La section release contient des binaires précompilés pour Windows et Linux.

Exemples d'utilisation

Exécuter le calculateur Gimphash sur un seul fichier

root@kitploit:~
./c_gimphash_linux /mnt/malware-repo/Godoh/godoh-windows64.exe
8200e76e42c4e9cf2bb308d76c017cbdcde5cbbf95e99e02b14d05e7b21505f3 /mnt/mal/Godoh/godoh-windows64.exe

Exécuter le calculateur Gimphash sur un dépôt de malwares

root@kitploit:~
find /mnt/malware-repo/ -type f -exec ./go_gimphash_linux {} \; 2>/dev/null
...

Exemple de clustering

Capture d'écran 2022-07-02 à 10 11 38

Télécharger l’outil