Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
go_parser — Ancora un parser binario per Golang per IDAPro | Kitploit
Strumenti/GitHubGitHub/0xjiayu/go_parser
Reverse EngineeringDebuggerAnalisi MalwareAnalisi di Binari
GitHub0xjiayu/go_parser

go_parser

Ancora un parser binario per Golang per IDAPro

Vedi Repository
1.3k14032 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Yet Another Golang binary parser per IDAPro

English | 中文


NOTA:

Ora il ramo master più recente è la versione Python3. Il vecchio ramo master è stato rinominato in py2, e temporaneamente non mantenuto.

Istruzioni per il ramo Python3

Questa versione è sviluppata e testata su macOS/Windows, IDA7.4+ e Python3.8.x, Se ci sono problemi su altre piattaforme e versioni, siete invitati a segnalare un issue o inviare Pull Request.

Inoltre, va notato che IDA7.4 su macOS utilizza Python3 installato di default, il che potrebbe impedire il caricamento di librerie di terze parti installate da voi. È necessario passare a Python installato tramite brew. Per il metodo di cambio specifico, fare riferimento a questo script.


Ispirato da golang_loader_assist e jeb-golang-analyzer, ho scritto uno strumento di parsing per binari Go più completo per IDAPro.

Funzionalità principali:

  1. Individuare e analizzare la struttura firstmoduledata nel file binario Go, aggiungendo commenti per ogni campo;
  2. Individuare pclntab (PC Line Table) in base a firstmoduledata e analizzarlo. Quindi trovare, analizzare e recuperare i nomi delle funzioni e i percorsi dei file sorgente all'interno di pclntab. I percorsi dei file sorgente verranno stampati nella finestra di output di IDAPro;
  3. Analizzare stringhe e puntatori a stringhe, aggiungere commenti per ogni stringa e creare dref per ogni puntatore a stringa;
  4. In base a firstmoduledata, trovare ogni type e analizzarlo, aggiungendo commenti per ogni attributo del type, il che sarà molto comodo per i ricercatori di malware nell'analizzare tipi complessi o definizioni di strutture dati;
  5. Analizzare itab (Interface Table).

Informazioni utili per il reverse engineering di binari Go:

E ci sono due funzionalità utili in go_parser:

  1. Funziona correttamente anche per binari con informazioni malformate nell'File Header, specialmente informazioni errate nei Section Headers;
  2. Tutte le funzionalità sopra sono valide per binari compilati con buildmode=pie.

Un risultato di parsing di una struttura dati di configurazione in DDGMiner v5029 (MD5: 95199e8f1ab987cd8179a60834644663) come mostrato di seguito:

E l'elenco dei percorsi dei file sorgente definiti dall'utente:

File del progetto:

  • go_parser.py :File di ingresso, premere [Alt+F7] , selezionare ed eseguire questo file;
  • common.py: Definizione di variabili e funzioni comuni;
  • pclntbl.py: Analisi di pclntab (PC Line Table);
  • strings.py: Analisi di stringhe e puntatori a stringhe;
  • moduldata.py: Analisi di firstmoduledata;
  • types_builder.py: Analisi di types ;
  • itab.py: Analisi di itab (Interface Table);

Inoltre, str_ptr.py analizza i puntatori a stringhe specificando manualmente l'indirizzo di inizio e fine dei puntatori a stringhe.

Nota

  1. Questo strumento è scritto in Python3 e testato su IDA7.4+;
  2. Il modulo di parsing delle stringhe è stato migrato da golang_loader_assist, e ho aggiunto la funzionalità di parsing dei puntatori a stringhe. Per ora supporta solo architettura x86 (32bit e 64bit).

Riferimenti

  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与实战案例
Scarica lo strumento