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
caracal — Statischer Analyzer für Starknet-Smart-Contracts | Kitploit
Tools/GitHubGitHub/crytic/caracal
Statische AnalyseSchwachstellenanalyseCode-Analyse
GitHubcrytic/caracal

caracal

Statischer Analyzer für Starknet-Smart-Contracts

Repository anzeigen
148112vor 2 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

Caracal

Caracal ist ein statisches Analysewerkzeug für die SIERRA-Darstellung von Starknet-Smart-Contracts.

Features

  • Erkennungsmodule zur Erkennung von anfälligem Cairo-Code
  • Drucker zur Berichterstattung von Informationen
  • Taint-Analyse
  • Datenflussanalyse-Framework
  • Einfach in Scarb-Projekten auszuführen

Installation

Precompiled binaries

Precompiled binaries sind auf unserer Releases Seite verfügbar. Wenn Sie den Cairo-Compiler 1.x.x verwenden, nutzen Sie die Binärdatei v0.1.x, andernfalls, wenn Sie den Cairo-Compiler 2.x.x verwenden, nutzen Sie v0.2.x.

Aus dem Quellcode erstellen

Sie benötigen den Rust-Compiler und Cargo. Erstellen aus Git:

root@kitploit:~
cargo install --git https://github.com/crytic/caracal --profile release --force

Erstellen aus einer lokalen Kopie:

root@kitploit:~
git clone https://github.com/crytic/caracal
cd caracal
cargo install --path . --profile release --force

Verwendung

Erkennungsmodule auflisten:

root@kitploit:~
caracal detectors

Drucker auflisten:

root@kitploit:~
caracal printers

Eigenständig

Um eine eigenständige Cairo-Datei zu verwenden und wenn Sie eine lokale Cairo-Compiler-Binärdatei haben, reicht es, auf die Datei zu verweisen. Andernfalls wird ein gebündelter Compiler verwendet und Sie müssen den Pfad zur corelib-Bibliothek entweder mit der --corelib CLI-Option oder durch Setzen der Umgebungsvariablen CORELIB_PATH angeben. Erkennungsmodule ausführen:

root@kitploit:~
caracal detect path/file/to/analyze
root@kitploit:~
caracal detect path/file/to/analyze --corelib path/to/corelib/src

Drucker ausführen:

root@kitploit:~
caracal print path/file/to/analyze --printer printer_to_use --corelib path/to/corelib/src

Cairo-Projekt

Wenn Sie ein Cairo-Projekt mit mehreren Dateien und Contracts haben, müssen Sie möglicherweise angeben, welche Contracts mit --contract-path. Die lokale Cairo-Compiler-Binärdatei wird verwendet, falls verfügbar, andernfalls wird ein gebündelter Compiler verwendet. In letzterem Fall müssen Sie auch die corelib angeben, wie oben für den eigenständigen Fall erläutert. Der Pfad ist das Verzeichnis, in dem sich cairo_project.toml befindet. Erkennungsmodule ausführen:

root@kitploit:~
caracal detect path/to/dir
root@kitploit:~
caracal detect path/to/dir --contract-path token::myerc20::... token::myerc721::...

Drucker ausführen:

root@kitploit:~
caracal print path/to/dir --printer printer_to_use

Scarb

Wenn Sie ein Projekt haben, das Scarb verwendet, müssen Sie Folgendes in Scarb.toml hinzufügen:

root@kitploit:~
[[target.starknet-contract]]
sierra = true

[cairo]
sierra-replace-ids = true

Übergeben Sie dann den Pfad zum Verzeichnis, in dem Scarb.toml liegt. Erkennungsmodule ausführen:

root@kitploit:~
caracal detect path/to/dir

Drucker ausführen:

root@kitploit:~
caracal print path/to/dir --printer printer_to_use

Erkennungsmodule

Die Cairo-Spalte repräsentiert die Compiler-Version(en), für die das Erkennungsmodul gültig ist.

Drucker

  • cfg: Exportiert das CFG jeder Funktion in eine .dot-Datei
  • callgraph: Exportiert den Funktionsaufrufgraphen in eine .dot-Datei

So können Sie beitragen

Schauen Sie im Wiki zu den folgenden Themen nach:

  • Wie man ein Erkennungsmodul schreibt
  • Wie man einen Drucker schreibt

Einschränkungen

  • Inline-Funktionen werden nicht korrekt verarbeitet.
  • Da es über der SIERRA-Darstellung arbeitet, ist es nicht möglich, den Ort eines Fehlers im Quellcode zu melden, sondern wir können nur SIERRA-Anweisungen/ das, was in einem SIERRA-Programm verfügbar ist, melden.
Tool herunterladen
Nr.ErkennungsmodulErkanntesAuswirkungKonfidenzCairo
1controlled-library-callBibliotheksaufrufe mit einem benutzergesteuerten Klassen-HashHochMittel1 & 2
2unchecked-l1-handler-fromErkennt L1-Handler ohne Überprüfung der AbsenderadresseHochMittel1 & 2
3felt252-unsafe-arithmeticErkennt benutzergesteuerte Operationen mit dem felt252-Typ, der nicht überlauf-/unterlaufsicher istMittelMittel1 & 2
4reentrancyErkennt, wenn eine Speichervariable vor einem externen Aufruf gelesen und danach geschrieben wirdMittelMittel1 & 2
5read-only-reentrancyErkennt, wenn eine View-Funktion eine Speichervariable liest, die nach einem externen Aufruf geschrieben wurdeMittelMittel1 & 2
6unused-eventsEreignisse definiert, aber nicht ausgelöstMittelMittel1 & 2
7unused-returnNicht verwendete RückgabewerteMittelMittel1 & 2
8unenforced-viewFunktion hat View-Dekorator, ändert aber den ZustandMittelMittel1
9tx-originErkennt Verwendung der Transaktionsursprungsadresse als ZugriffskontrolleMittelMittel2
10unused-argumentsNicht verwendete ArgumenteNiedrigMittel1 & 2
11reentrancy-benignErkennt, wenn eine Speichervariable nach einem externen Aufruf geschrieben, aber nicht vorher gelesen wirdNiedrigMittel1 & 2
12reentrancy-eventsErkennt, wenn ein Ereignis nach einem externen Aufruf ausgelöst wird, was zu einer falschen Reihenfolge führtNiedrigMittel1 & 2
13dead-codePrivate Funktionen, die nie verwendet werdenNiedrigMittel1 & 2
14use-after-pop-frontErkennt Verwendung eines Arrays oder eines Span nach dem Entfernen von Element(en)NiedrigMittel1 & 2