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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
slither — SolidityおよびVyper用静的解析ツール | Kitploit
ツール/GitHubGitHub/crytic/slither
静的分析脆弱性分析コード分析
GitHubcrytic/slither

slither

SolidityおよびVyper用静的解析ツール

リポジトリを見るウェブサイト
6.3k1.1k15日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Slither:スマートコントラクト静的解析ツール

Slither Static Analysis Framework Logo

Build Status PyPI Slither - Read the Docs Slither - Wiki

Empire Hacking Slack に参加

Slack Status

- 議論とサポート

Slither は、Python3 で書かれた Solidity および Vyper の静的解析フレームワークです。脆弱性検出器一式を実行し、コントラクトの詳細に関する視覚情報を出力し、カスタム解析を簡単に記述するための API を提供します。Slither により、開発者は脆弱性の発見、コード理解の向上、カスタム解析の迅速なプロトタイピングが可能になります。

  • 特徴
  • 使い方
  • インストール方法
    • uv を使用 (推奨)
    • Pip を使用
    • Git を使用
    • Docker を使用
    • 統合
  • 検出器
  • プリンター
    • クイックレビュープリンター
    • 詳細レビュープリンター
  • ツール
  • API ドキュメント
  • ヘルプ
  • FAQ
  • ライセンス
  • 出版物
    • Trail of Bits の出版物
    • 外部の出版物

特徴

  • 誤検出の少ない脆弱な Solidity コードの検出(トロフィーのリストを参照)
  • ソースコード内のエラー発生箇所の特定
  • 継続的インテグレーションおよび Hardhat/Foundry ビルドへの容易な統合
  • 組み込みの「プリンター」による重要なコントラクト情報の迅速なレポート
  • カスタム解析を Python で記述するための検出器 API
  • Solidity >= 0.4 で書かれたコントラクトの解析機能
  • 中間表現 (SlithIR) によるシンプルかつ高精度な解析
  • 公開されている Solidity コードの 99.9% を正しくパース
  • コントラクトあたりの平均実行時間は 1 秒未満
  • CI における GitHub のコードスキャンとの統合
  • Vyper スマートコントラクトのサポート

使い方

Slither を Hardhat/Foundry/Dapp/Brownie アプリケーションで実行:```console slither .

root@kitploit:~
これは、プロジェクトに依存関係がある場合の推奨されるオプションです。Slitherは基盤となるコンパイルフレームワークに依存してソースコードをコンパイルします。

ただし、依存関係をインポートしない単一ファイル上でSlitherを実行することもできます:```console
slither tests/uninitialized.sol

インストール方法

注記 SlitherはPython 3.10以上が必要です。 サポートされているコンパイルフレームワークのいずれかを使用しない場合は、Solidityコンパイラであるsolcが必要です。solcのバージョンを簡単に切り替えるには、solc-selectの使用をお勧めします。

uvを使用する(推奨)

uvは高速なPythonパッケージマネージャで、pipよりも10〜100倍高速です。```console

Install uv if you haven't already

curl -LsSf https://astral.sh/uv/install.sh | sh

Install slither as a tool

uv tool install slither-analyzer

Or run slither without installation

uvx --from slither-analyzer slither

root@kitploit:~
アップグレードするには:```console
uv tool upgrade slither-analyzer

Pipを使用する```console

python3 -m pip install slither-analyzer

root@kitploit:~
アップグレードするには:```console
python3 -m pip install --upgrade slither-analyzer

Brew を使用する```console

brew install slither-analyzer

root@kitploit:~
### Gitの使用(開発)```bash
git clone https://github.com/crytic/slither.git && cd slither

# Install as editable for development
uv tool install -e .

# Or use uv run for testing without installation
uv run slither <target>

The -eフラグは編集可能モードでインストールします。つまり、ソースコードへの変更は再インストールなしで即座に反映されます。

Dockerの使用

eth-security-toolbox Dockerイメージを使用してください。これには、すべてのセキュリティツールと、主要なすべてのバージョンのSolidityが1つのイメージに含まれています。 /home/share はコンテナ内の /share にマウントされます。```bash docker pull trailofbits/eth-security-toolbox

root@kitploit:~
コンテナ内でディレクトリを共有するには:```bash
docker run -it -v /home/share:/share trailofbits/eth-security-toolbox

統合

  • GitHub Actionとの統合には、slither-actionを使用してください。
  • pre-commitとの統合には、 ($GIT_TAG を実際のタグに置き換えて) 使用してください ```YAML
    • repo: https://github.com/crytic/slither rev: $GIT_TAG hooks:
      • id: slither
    root@kitploit:~
  • マークダウンレポートを生成するには、slither [target] --checklist を使用します。
  • GitHub のソースコードハイライト付きマークダウンを生成するには、slither [target] --checklist --markdown-root https://github.com/ORG/REPO/blob/COMMIT/ を使用します(ORG、REPO、COMMIT を置き換えてください)。

検出器

詳細については、以下を参照してください。

  • 各検出器の詳細については、検出器ドキュメント
  • 選択した検出器のみを実行するには、検出器選択。デフォルトでは、すべての検出器が実行されます。
  • 個々の結果をフィルタリングするには、トリアージモード

プリンター

クイックレビュープリンター

  • human-summary: コントラクトの人間が読める概要を出力
  • inheritance-graph: 各コントラクトの継承グラフを dot ファイルにエクスポート
  • contract-summary: コントラクトの概要を出力
  • loc: ソースファイル(SRC)、依存関係(DEP)、テストファイル(TEST)にあるコード行数(LOC)、ソースコード行数(SLOC)、コメント行数(CLOC)の合計をカウント
  • entry-points: コントラクトのすべての状態変更エントリポイント関数とその変数を出力

詳細レビュープリンター* call-graph: コントラクトのコールグラフをdotファイルにエクスポートする

  • cfg: 各関数のCFGをエクスポートする
  • function-summary: 関数のサマリーを出力する
  • vars-and-auth: 書き込まれる状態変数と関数の認可を出力する
  • not-pausable: whenNotPaused 修飾子を使用しない関数を出力する

プリンタを実行するには、--print を使用し、カンマ区切りでプリンタのリストを指定します。

完全なリストについては、プリンタドキュメント を参照してください。

ツール

  • slither-check-upgradeability: delegatecall ベースのアップグレード可能性をレビューする
  • slither-prop: 自動単体テストとプロパティ生成
  • slither-flat: コードベースをフラット化する
  • slither-check-erc: ERC 準拠をチェックする
  • slither-read-storage: コントラクトからストレージ値を読み取る
  • slither-interface: コントラクトのインターフェースを生成する

追加のツールについては、ツールドキュメント を参照してください。

カスタムツールの構築に関する支援については、お問い合わせください。

APIドキュメント

Slither の内部に関するドキュメントはこちらで入手できます。

ヘルプ

Slither の使用または拡張についてのヘルプは、Slack チャンネル (#ethereum) にお気軽にお立ち寄りください。

  • プリンタドキュメント は、Slither が各コントラクトについて可視化できる情報を説明しています。
  • ディテクタドキュメント は、新しい脆弱性分析の書き方を説明しています。
  • APIドキュメント は、カスタム分析で利用可能なメソッドとオブジェクトを説明しています。
  • SlithIRドキュメント は、SlithIR 中間表現を説明しています。

FAQ

モックやテストを除外するにはどうすればよいですか?

  • パスフィルタリング に関するドキュメントを参照してください。

「unknown file」やコンパイルの問題を修正するにはどうすればよいですか?

  • slither は solc AST を必要とするため、すべての依存関係が利用可能でなければなりません。 コントラクトに依存関係がある場合、slither contract.sol は失敗します。 代わりに、contracts/ の親ディレクトリで slither . を使用してください(ls を実行すると contracts/ が表示されるはずです)。 node_modules/ フォルダがある場合は、contracts/ と同じディレクトリになければなりません。この問題が slither に関連していることを確認するには、 使用しているフレームワークのコンパイルコマンド(例:npx hardhat compile)を実行してください。それが正常に動作する必要があります。 そうでない場合、slither のコンパイルエンジンである crytic-compile は AST を生成できません。

ライセンス

Slither は AGPLv3 ライセンスの下でライセンスおよび配布されています。条件の例外を求める場合は、お問い合わせください。

出版物

Trail of Bits の出版物

  • Slither: スマートコントラクトのための静的解析フレームワーク, Josselin Feist, Gustavo Grieco, Alex Groce - WETSEB '19

外部出版物

学術研究で Slither を使用している場合は、Crytic $10k 研究賞 への応募をご検討ください。

ツールをダウンロード
番号検出器検出内容影響度信頼度
1abiencoderv2-arrayストレージ abiencoderv2 配列高高
2arbitrary-send-erc20任意の from を使用した transferFrom高高
3array-by-referenceストレージ配列を値で変更高高
4encode-packed-collisionABI encodePacked の衝突高高
5incorrect-shiftシフト命令のパラメータの順序が不正高高
6multiple-constructors複数のコンストラクタスキーム高高
7name-reusedコントラクト名の再利用高高
8protected-vars保護されていない変数を検出高高
9public-mappings-nestedネストされた変数を持つ公開マッピング高高
10rtlo右から左へのオーバーライド制御文字の使用高高
11shadowing-state状態変数のシャドーイング高高
12suicidal誰でもコントラクトを破棄できる関数高高
13uninitialized-state初期化されていない状態変数高高
14uninitialized-storage初期化されていないストレージ変数高高
15unprotected-upgrade保護されていないアップグレード可能なコントラクト高高
16arbitrary-send-erc20-permitpermit と共に任意の from を使用した transferFrom高中
17arbitrary-send-eth任意の宛先に Ether を送信する関数高中
18controlled-array-length汚染された配列長の代入高中
19controlled-delegatecall制御された delegatecall の宛先高中
20delegatecall-loopループ内で delegatecall を使用する payable 関数高中
21incorrect-exp不正な指数演算高中
22incorrect-returnアセンブリモードで return が誤って使用された場合高中
23msg-value-loopループ内の msg.value高中
24reentrancy-eth再入可能性の脆弱性(Ether の盗難)高中
25reentrancy-balance古い残高チェックにつながる再入可能性の脆弱性高中
26return-leavereturn が leave の代わりに使用された場合高中
27storage-array符号付きストレージ整数配列のコンパイラバグ高中
28unchecked-transfer未チェックのトークン転送高中
29weak-prng脆弱な PRNG高中
30domain-separator-collisionEIP-2612 の DOMAIN_SEPARATOR() とシグネチャが衝突する関数を持つ ERC20 トークンを検出中高
31enum-conversion危険な列挙型変換を検出中高
32erc20-interface不正な ERC20 インターフェース中高
33erc721-interface不正な ERC721 インターフェース中高
34incorrect-equality危険な厳密な等価性中高
35locked-etherEther をロックするコントラクト中高
36mapping-deletion構造体を含むマッピングの削除中高
37pyth-deprecated-functionsPyth の非推奨関数を検出中高
38pyth-unchecked-confidencePyth 価格の信頼度レベルがチェックされていないことを検出中高
39pyth-unchecked-publishtimePyth 価格の publishTime がチェックされていないことを検出中高
40shadowing-abstract抽象コントラクトからの状態変数のシャドーイング中高
41tautological-compare変数をそれ自身と比較すると、比較に応じて常に真または偽を返す中高
42tautologyトートロジーまたは矛盾中高
43write-after-write未使用の書き込み中高
44boolean-cstブール定数の誤用中中
45chronicle-unchecked-priceChronicle 価格がチェックされていないことを検出中中
46constant-function-asmアセンブリコードを使用する定数関数中中
47constant-function-state状態を変更する定数関数中中
48divide-before-multiply不正確な算術演算の順序中中
49gelato-unprotected-randomness保護されていない関数内での _requestRandomness の呼び出し中中
50out-of-order-retryable順序が正しくないリトライ可能トランザクション中中
51reentrancy-no-eth再入可能性の脆弱性(Ether の盗難なし)中中
52reused-constructor再利用されたベースコンストラクタ中中
53tx-origintx.origin の危険な使用中中
54unchecked-lowlevel未チェックの低レベル呼び出し中中
55unchecked-send未チェックの send中中
56uninitialized-local初期化されていないローカル変数中中
57unused-return未使用の戻り値中中
58chainlink-feed-registryChainlink フィードレジストリが使用されている場合を検出低高
59incorrect-modifierデフォルト値を返す可能性のある修飾子低高
60optimism-deprecation非推奨の Optimism プリデプロイまたは関数が使用されている場合を検出低高
61shadowing-builtin組み込みシンボルのシャドーイング低高
62shadowing-localローカル変数のシャドーイング低高
63uninitialized-fptr-cstコンストラクタ内の未初期化関数ポインタ呼び出し低高
64variable-scope宣言前に使用されるローカル変数低高
65void-cst実装されていないコンストラクタ呼び出し低高
66calls-loopループ内の複数の呼び出し低中
67events-accessアクセス制御イベントの欠落低中
68events-maths算術イベントの欠落低中
69incorrect-unary危険な単項演算式低中
70missing-zero-checkゼロアドレス検証の欠落低中
71reentrancy-benign良性の再入可能性の脆弱性低中
72reentrancy-events順序不正のイベントにつながる再入可能性の脆弱性低中
73return-bomb低レベルの呼び出し先が、予期せず呼び出し元のガスをすべて消費する可能性がある低中
74timestampblock.timestamp の危険な使用低中
75assemblyアセンブリの使用情報高
76assert-state-changeアサート状態変更情報高
77boolean-equalブール定数との比較情報高
78cyclomatic-complexityサイクロマティック複雑度が高い(11 超)関数を検出情報高
79deprecated-standards非推奨の Solidity 標準情報高
80erc20-indexedインデックス化されていない ERC20 イベントパラメータ情報高
81function-init-state状態変数を初期化する関数情報高
82incorrect-using-for特定のライブラリの関数が特定の型と一致しない場合の using-for ステートメントの使用を検出情報高
83low-level-calls低レベル呼び出し情報高
84missing-inheritance継承の欠落情報高
85naming-conventionSolidity 命名規則への準拠情報高
86pragma異なるプラグマディレクティブが使用されている場合情報高
87redundant-statements冗長なステートメント情報高
88solc-version不適切な Solidity バージョン情報高
89unimplemented-functions未実装の関数情報高
90unindexed-event-addressアドレスパラメータがあるがインデックス化されたパラメータがないイベント情報高
91unused-state未使用の状態変数情報高
92costly-loopループ内の高コストな操作情報中
93dead-code使用されていない関数情報中
94reentrancy-unlimited-gassend と transfer を通じた再入可能性の脆弱性情報中
95too-many-digits数値表記のベストプラクティスへの準拠情報中
96cache-array-lengthループ条件で何らかのストレージ配列の length メンバを使用し、それを変更しない for ループを検出最適化高
97constable-states定数として宣言できる状態変数最適化高
98external-functionexternal として宣言できる public 関数最適化高
99immutable-statesimmutable として宣言できる状態変数最適化高
100var-read-using-thisコントラクトが this を使用して自身の変数を読み取る最適化高
タイトル使用方法著者発表先コード
ReJection: ASTベースの再入可能性脆弱性検出手法Slither上に構築されたASTベースの分析Rui Ma, Zefeng Jian, Guangyuan Chen, Ke Ma, Yujia ChenCTCIS 19-
MPro: 静的解析と記号解析を組み合わせたスマートコントラクトのスケーラブルなテストSlitherを通じたデータ依存性の活用William Zhang, Sebastian Banescu, Leodardo Pasos, Steven Stewart, Vijay GaneshISSRE 2019MPro
ETHPLOIT: ファジングからスマートコントラクトに対する効率的なエクスプロイト生成へSlitherを通じたデータ依存性の活用Qingzhao Zhang, Yizhuo Wang, Juanru Li, Siqi MaSANER 20-
イーサリアムスマートコントラクトの検証: モデル検査アプローチSlitherのCFG上に構築された記号実行Tam Bang, Hoang H Nguyen, Dung Nguyen, Toan Trieu, Tho QuanIJMLC 20-
スマートコントラクトの修復Slitherの脆弱性検出器に依存Xiao Liang Yu, Omar Al-Bataineh, David Lo, Abhik RoychoudhuryTOSEM 20SCRepair
スマートコントラクトにおけるループの解明Slitherを通じたデータ依存性の活用Ben Mariano, Yanju Chen, Yu Feng, Shuvendu Lahiri, Isil DilligASE 20-
トレースベースのスマートコントラクトループにおける動的ガス推定SlitherのCFGを使用してループを検出Chunmiao Li, Shijie Nie, Yang Cao, Yijun Yu, Zhenjiang HuIEEE Open J. Comput. Soc. 1 (2020)-
SAILFISH: スマートコントラクトの状態不整合バグを数秒で検証SlithIRに依存してストレージ依存関係グラフを構築Priyanka Bose, Dipanjan Das, Yanju Chen, Yu Feng, Christopher Kruegel, and Giovanni VignaS&P 22Sailfish
SolType: Solidityにおける算術オーバーフローのための洗練型Slitherをフロントエンドとして使用し洗練型システムを構築Bryan Tan, Benjamin Mariano, Shuvendu K. Lahiri, Isil Dillig, Yu FengPOPL 22-
Do Not Rug on Me: 機械学習技術を活用した自動スキャム検出Slitherを使用してトークンの特徴(ミント可能、ポーズ可能など)を抽出Mazorra, Bruno, Victor Adan, and Vanesa DazaMathematics 10.6 (2022)-
MANDO: スマートコントラクト脆弱性の細粒度検出のためのマルチレベル異種グラフ埋め込みSlitherを使用してCFGとコールグラフを抽出Hoang Nguyen, Nhat-Minh Nguyen, Chunyao Xie, Zahra Ahmadi, Daniel Kudendo, Thanh-Nam Doan and Lingxiao JiangIEEE 9th International Conference on Data Science and Advanced Analytics (DSAA, 2022)ge-sc
スマートコントラクトにおける価格つり上げTOD脆弱性の自動監査Slitherを使用してCFGとデータ依存性を抽出Sidi Mohamed Beillahi, Eric Keilty, Keerthi Nelaturu, Andreas Veneris, and Fan Long2022 IEEE International Conference on Blockchain and Cryptocurrency (ICBC)Smart-Contract-Repair
スマートコントラクトのアクセス制御ポリシーのモデリングと適用Slitherのデータ依存性を拡張Jan-Philipp Toberg, Jonas Schiffl, Frederik Reiche, Bernhard Beckert, Robert Heinrich, Ralf ReussnerIEEE International Conference on Decentralized Applications and Infrastructures (DAPPS), 2022SolidityAccessControlEnforcement
深層学習とマルチモーダル決定融合に基づくスマートコントラクト脆弱性検出Slitherを使用してCFGを抽出Weichu Deng, Huanchun Wei, Teng Huang, Cong Cao, Yun Peng, and Xuan HuSensors 2023, 23, 7246-
意味豊富なコード知識グラフによるスマートコントラクトコード再利用の未知の側面の解明Slitherを使用してコード特徴(CFG、関数、パラメータ型など)を抽出Qing Huang, Dianshu Liao, Zhenchang Xing, Zhengkang Zuo, Changjing Wang, Xin XiaACM Transactions on Software Engineering and Methodology, 2023-
粒度の細かい状態アクセスを備えたスマートコントラクトの並列実行Slitherを使用して状態アクセスグラフを構築Xiaodong Qi, Jiao Jiao, Yi LiInternational Conference on Distributed Computing Systems (ICDCS), 2023-
Bad Apples: 分散型エコシステムにおける集中化されたセキュリティリスクの理解Slither上に内部分析を実装Kailun Yan , Jilian Zhang , Xiangyu Liu , Wenrui Diao , Shanqing GuoACM Web Conference April 2023-
区間分析を用いたスマートコントラクトの脆弱性特定Slither上に4つの検出器を作成Ştefan-Claudiu Susan, Andrei ArusoaieFROM 2023-
イーサリアムブロックチェーンスマートコントラクトのストレージ状態分析と抽出(オープンアクセスのPDFなし)SlitherのCFGとASTに依存Maha Ayub , Tania Saleem , Muhammad Janjua , Talha AhmadTOSEM 2023SmartMuv