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
Strumenti/GitHubGitHub/adelapie/ghidra-evm
Analisi StaticaAnalisi delle VulnerabilitàReverse EngineeringAnalisi di Binari
GitHubadelapie/ghidra-evm

ghidra-evm

Modulo Ghidra per disassemblare, decompilare e analizzare il bytecode degli smart contract di Ethereum. Rileva istruzioni non sicure, estrae metodi nascosti e genera grafi di flusso di controllo per l'audit di sicurezza.

Vedi Repository
149295 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

Modulo Ghidra EVM

front

Negli ultimi anni, gli attacchi agli smart contract distribuiti sulla blockchain Ethereum hanno portato a una significativa quantità di fondi rubati a causa di errori di programmazione. Poiché gli smart contract, una volta compilati e distribuiti, sono complessi da modificare e aggiornare, diversi professionisti hanno suggerito l'importanza di rivedere la loro sicurezza nella blockchain dove è disponibile solo il bytecode della Ethereum Virtual Machine (EVM). In questo senso, il reverse engineering tramite disassemblaggio e decompilazione può essere efficace.

ghidra-EVM è un modulo Ghidra per il reverse engineering di smart contract. Può essere utilizzato per scaricare il bytecode della Ethereum Virtual Machine (EVM) dalla blockchain Ethereum e disassemblare e decompilare lo smart contract. Inoltre, può analizzare il codice di creazione, trovare metodi del contratto e individuare istruzioni insicure.

Comprende un modulo processore, un caricatore personalizzato e plugin che disassemblano il bytecode della Ethereum VM (EVM) e generano un grafico di controllo di flusso (CFG) di uno smart contract.

L'ultima versione utilizza l'API Ghidra 9.1.2. Si basa sulla libreria crytic evm_cfg_builder (https://github.com/crytic/evm_cfg_builder) per assistere Ghidra nel processo di generazione del CFG.

Ghidra-evm consiste in:

  • Un caricatore che legge codice byte ed hex rispettivamente da file .evm e .evm_h (Vedi esempi).
  • La definizione SLEIGH del set di istruzioni EVM tenendo conto delle limitazioni del core di Ghidra (Vedi Note).
  • Uno script helper che utilizza evm_cfg_builder e ghidra_bridge per assistere ghidra nella generazione del CFG e nell'esplorazione delle proprietà delle funzioni di uno smart contract.
  • Una collezione di script che aiutano nel reverse engineering di diversi aspetti di uno smart contract:

Istruzioni di installazione

  • Installa ghidra_bridge, seguendo le istruzioni su https://github.com/justfoxing/ghidra_bridge
  • Installa la libreria crytic evm_cfg_builder, seguendo le istruzioni su https://github.com/crytic/evm_cfg_builder
  • Installa l'ultimo file di rilascio di ghidra-evm da ghidra_evm/dist/:
    • Apri ghidra
    • File -> Installa Estensioni
    • Clicca su '+' e seleziona il file zip, ad esempio ghidra_9.1.2_PUBLIC_20201102_ghidra_evm.zip
    • Clicca OK
    • Riavvia Ghidra

Istruzioni di compilazione

Il contenuto della directory ghidra-evm può essere utilizzato per creare un modulo Ghidra in Eclipse con processore e caricatore per estendere o eseguire il debug di ghidra_evm.

Tutorial

middle

Integrazione con strumenti di esecuzione simbolica esterni

ScriptDescrizione
teetherSegna il percorso critico in Ghidra prima di generare l'exploit. Richiede teether.

Note

  • Il CFG viene creato secondo evm_cfg_builder: vengono utilizzate le istruzioni JUMP e JUMPI.
  • Una tabella di salto 32x32 (evm_jump_table) viene generata di conseguenza per rilevare e mostrare i rami nelle finestre di disassemblaggio e controllo di flusso.
  • Ghidra non è stato progettato per gestire architetture e memorie con dimensione di parola > 64 bit. Ciò significa che istruzioni come PUSH32 non vengono visualizzate correttamente nella finestra di decompilazione.

Licenza

Ghidra-evm è concesso in licenza e distribuito sotto AGPLv3.

Ringraziamenti

  • Questo lavoro è stato supportato dalla Commissione Europea attraverso il Progetto M-Sec del Programma H2020 con Grant 814917.
  • Ghidra-EVM è stato presentato nel track arsenal di Black Hat Asia 2021. Puoi trovare le slide qui.
Scarica lo strumento
ScriptDescrizione
search_codecopy.pyQuando si analizza il codice di creazione in uno smart contract possiamo vedere solo la funzione _dispatcher che utilizza CODECOPY per scrivere il codice runtime in memoria. Questo script cerca istruzioni CODECOPY utili e trova i metodi dello smart contract nascosti nella parte runtime del contratto.
search_dangerous_instructions.pyIstruzioni come CALL, CALLCODE, SELFDESTRUCT e DELEGATECALL possono talvolta essere abusate per trasferire fondi a un altro contratto. Questo script le trova e crea un'etichetta per ogni occorrenza.
load_external_contract.pyScarica il bytecode dello smart contract dalla blockchain in un file .evm_h che può essere caricato in ghidra-evm
TutorialDescrizione
UtilizzoSemplici istruzioni di utilizzo con test.evm
Analizzare il bytecode di creazioneUtilizzo di search_codecopy.py per analizzare il codice di creazione e trovare metodi nascosti
Cercare istruzioni pericoloseUtilizzo di search_dangerous_instructions.py per analizzare un'occorrenza di SELFDESTRUCT
Scaricare il bytecode dello smart contract dalla blockchain in GhidraUtilizzo di load_external_contract.py per scaricare il bytecode EVM dalla blockchain in un file .evm_h