Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
caracal — Starknet スマートコントラクト向け静的解析ツール | Kitploit
ツール/GitHubGitHub/crytic/caracal
静的分析脆弱性分析コード分析
GitHubcrytic/caracal

caracal

Starknet スマートコントラクト向け静的解析ツール

リポジトリを見る
1481172年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Caracal

Caracal は、Starknet スマートコントラクトの SIERRA 表現に対する静的解析ツールです。

機能

  • 脆弱な Cairo コードを検出する検出器
  • 情報を報告するプリンター
  • テイント解析
  • データフロー解析フレームワーク
  • Scarb プロジェクトで簡単に実行可能

インストール

プリコンパイル済みバイナリ

プリコンパイル済みバイナリはリリースページから入手できます。Cairo コンパイラ 1.x.x を使用している場合は v0.1.x のバイナリを、Cairo コンパイラ 2.x.x を使用している場合は v0.2.x を使用してください。

ソースからビルド

Rust コンパイラと Cargo が必要です。 git からビルド:

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

ローカルコピーからビルド:

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

使い方

検出器一覧:

root@kitploit:~
caracal detectors

プリンター一覧:

root@kitploit:~
caracal printers

スタンドアロン

スタンドアロンの Cairo ファイルで使用する場合、ローカルの Cairo コンパイラバイナリがあれば、そのファイルを指定するだけで十分です。それ以外の場合はバンドルされたコンパイラが使用され、--corelib CLI オプションまたは CORELIB_PATH 環境変数を設定して corelib ライブラリへのパスを指定する必要があります。
検出器を実行:

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

プリンターを実行:

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

Cairo プロジェクト

複数のファイルとコントラクトがある Cairo プロジェクトの場合、--contract-path でコントラクトを指定する必要がある場合があります。ローカルの Cairo コンパイラバイナリが利用可能な場合はそれが使用され、それ以外の場合はバンドルされたコンパイラが使用されます。後者の場合、スタンドアロンの場合と同様に corelib を指定する必要があります。パスは cairo_project.toml が存在するディレクトリです。
検出器を実行:

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

プリンターを実行:

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

Scarb

Scarb を使用するプロジェクトの場合、Scarb.toml に以下を追加する必要があります:

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

[cairo]
sierra-replace-ids = true

その後、Scarb.toml が存在するディレクトリへのパスを渡します。 検出器を実行:

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

プリンターを実行:

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

検出器

Cairo 列は、検出器が有効なコンパイラバージョンを示します。

プリンター

  • cfg: 各関数の CFG を .dot ファイルにエクスポート
  • callgraph: 関数呼び出しグラフを .dot ファイルにエクスポート

コントリビュート方法

以下のトピックに関する Wiki を確認してください:

  • 検出器の書き方
  • プリンターの書き方

制限事項

  • インライン化された関数は正しく処理されません。
  • SIERRA 表現上で動作するため、ソースコード内のエラーの場所を報告することはできません。SIERRA の命令や SIERRA プログラムで利用可能な情報のみを報告できます。
ツールをダウンロード
番号検出器検出内容影響度信頼度Cairo
1controlled-library-callユーザー制御のクラスハッシュによるライブラリ呼び出し高中1 & 2
2unchecked-l1-handler-fromfrom アドレスチェックがない L1 ハンドラを検出高中1 & 2
3felt252-unsafe-arithmeticオーバーフロー/アンダーフロー安全でない felt252 型のユーザー制御操作を検出中中1 & 2
4reentrancy外部呼び出しの前にストレージ変数が読み取られ、その後に書き込まれることを検出中中1 & 2
5read-only-reentrancyview 関数が外部呼び出し後に書き込まれたストレージ変数を読み取ることを検出中中1 & 2
6unused-events定義されているが発行されていないイベント中中1 & 2
7unused-return未使用の戻り値中中1 & 2
8unenforced-viewview デコレータがあるが状態を変更する関数中中1
9tx-originトランザクションの発信元アドレスをアクセス制御として使用していることを検出中中2
10unused-arguments未使用の引数低中1 & 2
11reentrancy-benign外部呼び出し後にストレージ変数が書き込まれるが、その前に読み取られないことを検出低中1 & 2
12reentrancy-events外部呼び出し後にイベントが発行され、イベントの順序が乱れることを検出低中1 & 2
13dead-code使用されていないプライベート関数低中1 & 2
14use-after-pop-front配列またはスパンから要素を削除した後の使用を検出低中1 & 2