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
go_parser — Encore un analyseur binaire Golang pour IDAPro | Kitploit
Outils/GitHubGitHub/0xjiayu/go_parser
Rétro-ingénierieDébogueursAnalyse de MalwareAnalyse de Binaires
GitHub0xjiayu/go_parser

go_parser

Encore un analyseur binaire Golang pour IDAPro

Voir le dépôt
1.3k1403il y a 2 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

Un autre analyseur de binaires Golang pour IDAPro

Anglais | 中文


NOTE :

Maintenant, la branche master la plus récente est la version Python3. L'ancienne branche master a été renommée en branche py2, et n'est temporairement plus maintenue.

Instructions pour la branche Python3

Cette version est développée et testée sur macOS/Windows, IDA7.4+ et Python3.8.x. Si vous rencontrez des problèmes sur d'autres plateformes et versions, vous êtes invités à soumettre un problème ou une Pull Request.

De plus, il convient de noter que IDA7.4 sur macOS utilise Python3 installé par défaut, ce qui peut entraîner l'échec du chargement des bibliothèques tierces que vous avez installées. Vous devez basculer vers Python installé par brew. Veuillez vous référer à ce script pour les méthodes de basculement spécifiques.


Inspiré par golang_loader_assist et jeb-golang-analyzer, j'ai écrit un outil d'analyse de binaires Go plus complet pour IDAPro.

Principales fonctionnalités :

  1. Localiser et analyser la structure firstmoduledata dans le fichier binaire Go, et ajouter un commentaire pour chaque champ ;
  2. Localiser pclntab (table de lignes PC) en fonction de firstmoduledata et l'analyser. Ensuite, trouver, analyser et récupérer les noms de fonctions et les chemins de fichiers sources dans le pclntab. Les chemins de fichiers sources seront affichés dans la fenêtre de sortie d'IDAPro ;
  3. Analyser les chaînes et les pointeurs de chaînes, ajouter un commentaire pour chaque chaîne, et créer un dref pour chaque pointeur de chaîne ;
  4. Selon firstmoduledata, trouver chaque type et l'analyser, ajouter un commentaire pour chaque attribut du type, ce qui sera très pratique pour les chercheurs en malwares pour analyser un type complexe ou une définition de structure de données ;
  5. Analyser itab (table d'interface).

Informations utiles pour le travail de rétro-ingénierie sur les binaires Go :

Et il y a deux fonctionnalités utiles dans go_parser :

  1. Il fonctionne également bien pour les binaires avec des informations d'en-tête de fichier malformées, en particulier des informations d'en-tête de section malformées ;
  2. Toutes ces fonctionnalités ci-dessus sont valables pour les binaires construits avec buildmode=pie.

Un résultat d'analyse d'une structure de données de configuration dans DDGMiner v5029 (MD5: 95199e8f1ab987cd8179a60834644663) comme ci-dessous :

Et la liste des chemins de fichiers sources définis par l'utilisateur :

Fichiers du projet :

  • go_parser.py : Fichier d'entrée, appuyez sur [Alt+F7] , sélectionnez et exécutez ce fichier ;
  • common.py: Définition des variables et fonctions communes ;
  • pclntbl.py: Analyse de pclntab (table de lignes PC) ;
  • strings.py: Analyse des chaînes et des pointeurs de chaînes ;
  • moduldata.py: Analyse de firstmoduledata ;
  • types_builder.py: Analyse des types ;
  • itab.py: Analyse de itab (table d'interface) ;

De plus, str_ptr.py analysera les pointeurs de chaînes en spécifiant manuellement l'adresse de début et l'adresse de fin des pointeurs de chaînes.

Remarque

  1. Cet outil est écrit en Python3 et testé sur IDA7.4+ ;
  2. Le module d'analyse des chaînes a été migré depuis golang_loader_assist, et j'ai ajouté la fonctionnalité d'analyse des pointeurs de chaînes. Il ne prend en charge que l'architecture x86 (32 bits et 64 bits) pour l'instant.

Références

  1. Analyzing Golang Executables
  2. Reversing GO binaries like a pro
  3. Reconstructing Program Semantics from Go binaries.pdf
  4. Go二进制文件逆向分析从基础到进阶——综述
  5. Go二进制文件逆向分析从基础到进阶——MetaInfo、函数符号和源码文件路径列表
  6. Go二进制文件逆向分析从基础到进阶——数据类型
  7. Go二进制文件逆向分析从基础到进阶——itab与strings
  8. Go二进制文件逆向分析从基础到进阶——Tips与实战案例
Télécharger l’outil