Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ghidra-evm — Ghidra-Modul zum Disassemblieren, Dekompilieren und Analysieren von Ethereum-Smart-Contract-Bytecode. Erkennt unsichere Anweisungen, extrahiert versteckte Methoden und erstellt Kontrollflussgraphen für die Sicherheitsprüfung. | Kitploit
Tools/GitHubGitHub/adelapie/ghidra-evm
Statische AnalyseSchwachstellenanalyseReverse EngineeringBinäranalyse
GitHubadelapie/ghidra-evm

ghidra-evm

Ghidra-Modul zum Disassemblieren, Dekompilieren und Analysieren von Ethereum-Smart-Contract-Bytecode. Erkennt unsichere Anweisungen, extrahiert versteckte Methoden und erstellt Kontrollflussgraphen für die Sicherheitsprüfung.

Repository anzeigen
14929vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Ghidra EVM-Modul

front

In den letzten Jahren haben Angriffe auf bereitgestellte Smart Contracts in der Ethereum-Blockchain aufgrund von Programmierfehlern zu erheblichen Diebstählen von Geldern geführt. Da Smart Contracts nach der Kompilierung und Bereitstellung schwer zu ändern und zu aktualisieren sind, haben verschiedene Praktiker die Bedeutung der Überprüfung ihrer Sicherheit in der Blockchain betont, wo nur der Bytecode der Ethereum Virtual Machine (EVM) verfügbar ist. In dieser Hinsicht kann Reverse Engineering durch Disassemblierung und Dekompilierung effektiv sein.

ghidra-EVM ist ein Ghidra-Modul für das Reverse Engineering von Smart Contracts. Es kann verwendet werden, um Ethereum Virtual Machine (EVM) Bytecode aus der Ethereum-Blockchain herunterzuladen und den Smart Contract zu disassemblieren und zu dekompilieren. Darüber hinaus kann es Erstellungs-Code analysieren, Vertragsmethoden finden und unsichere Anweisungen lokalisieren.

Es besteht aus einem Prozessormodul, einem benutzerdefinierten Lader und Plugins, die Ethereum VM (EVM) Bytecode disassemblieren und einen Kontrollflussgraphen (CFG) eines Smart Contracts generieren.

Die letzte Version verwendet die Ghidra 9.1.2 API. Sie basiert auf der crytic evm_cfg_builder-Bibliothek (https://github.com/crytic/evm_cfg_builder), um Ghidra beim CFG-Erstellungsprozess zu unterstützen.

Ghidra-evm besteht aus:

  • Ein Lader, der Byte- und Hex-Code aus .evm- bzw. .evm_h-Dateien liest (Siehe Beispiele).
  • Die SLEIGH-Definition des EVM-Befehlssatzes unter Berücksichtigung der Ghidra-Kernel-Einschränkungen (Siehe Hinweise).
  • Ein Hilfsskript, das evm_cfg_builder und ghidra_bridge verwendet, um Ghidra bei der Erstellung des CFG und der Untersuchung der Funktionseigenschaften eines Smart Contracts zu unterstützen.
  • Eine Sammlung von Skripten, die beim Reverse Engineering verschiedener Aspekte eines Smart Contracts helfen:

Installationsanweisungen

  • Installieren Sie ghidra_bridge gemäß den Anweisungen unter https://github.com/justfoxing/ghidra_bridge
  • Installieren Sie die crytic evm_cfg_builder-Bibliothek gemäß den Anweisungen unter https://github.com/crytic/evm_cfg_builder
  • Installieren Sie die letzte ghidra-evm Release-Datei unter ghidra_evm/dist/:
    • Öffnen Sie Ghidra
    • Datei -> Erweiterungen installieren
    • Klicken Sie auf '+' und wählen Sie die Zip-Datei, z.B. ghidra_9.1.2_PUBLIC_20201102_ghidra_evm.zip
    • Klicken Sie OK
    • Starten Sie Ghidra neu

Kompilierungsanweisungen

Der Inhalt des ghidra-evm-Verzeichnisses kann verwendet werden, um ein Ghidra-Modul in Eclipse mit Prozessor und Lader zu erstellen, um ghidra_evm zu erweitern oder zu debuggen.

Tutorials

middle

Integration mit externen symbolischen Ausführungswerkzeugen

SkriptBeschreibung
teetherEs markiert den kritischen Pfad in Ghidra, bevor der Exploit generiert wird. Erfordert teether.

Hinweise

  • Der CFG wird gemäß evm_cfg_builder erstellt: JUMP- und JUMPI-Befehle werden verwendet.
  • Eine Sprungtabelle von 32x32 (evm_jump_table) wird entsprechend generiert, um Verzweigungen in den Fenstern für Disassemblierung und Kontrollfluss zu erkennen und anzuzeigen.
  • Ghidra wurde nicht entwickelt, um mit Architekturen und Speichern mit einer Wortgröße > 64 Bit umzugehen. Dies bedeutet, dass Anweisungen wie PUSH32 im Dekompilierungsfenster nicht korrekt angezeigt werden.

Lizenz

Ghidra-evm ist unter der AGPLv3 lizenziert und verbreitet.

Danksagungen

  • Diese Arbeit wurde von der Europäischen Kommission im Rahmen des H2020-Programms Projekt M-Sec unter der Fördernummer 814917 unterstützt.
  • Ghidra-EVM wurde im Arsenal-Track der Black Hat Asia 2021 vorgestellt. Die Folien finden Sie hier.
Tool herunterladen
SkriptBeschreibung
search_codecopy.pyBei der Analyse des Erstellungs-Codes in einem Smart Contract sehen wir nur die _dispatcher-Funktion, die CODECOPY verwendet, um den Laufzeitcode in den Speicher zu schreiben. Dieses Skript sucht nach nützlichen CODECOPY-Befehlen und findet die Smart Contract-Methoden, die im Laufzeitteil des Vertrags versteckt sind.
search_dangerous_instructions.pyAnweisungen wie CALL, CALLCODE, SELFDESTRUCT und DELEGATECALL können manchmal missbraucht werden, um Gelder auf einen anderen Vertrag zu übertragen. Dieses Skript findet sie und erstellt für jedes Vorkommen eine Markierung.
load_external_contract.pyLädt Smart Contract Bytecode aus der Blockchain in eine .evm_h-Datei herunter, die in ghidra-evm geladen werden kann.
TutorialBeschreibung
NutzungEinfache Nutzungsanweisungen mit test.evm
Analyse des Erstellungs-BytecodesVerwendung von search_codecopy.py zur Analyse des Erstellungs-Codes und zum Auffinden verborgener Methoden
Suche nach gefährlichen AnweisungenVerwendung von search_dangerous_instructions.py zur Analyse eines SELFDESTRUCT-Vorkommnisses
Herunterladen von Smart Contract Bytecode aus der Blockchain in GhidraVerwendung von load_external_contract.py zum Herunterladen von EVM-Bytecode aus der Blockchain in eine .evm_h-Datei