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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
evm-audit-helpers — SolidityスニペットとFoundryスクリプトのコレクション(スマートコントラクトセキュリティ監査用) | Kitploit
ツール/GitLabGitLab/dannydoodlesstory/evm-audit-helpers
静的分析脆弱性分析コード分析DevSecOps学習と教育厳選リソース
GitLabdannydoodlesstory/evm-audit-helpers

evm-audit-helpers

SolidityスニペットとFoundryスクリプトのコレクション(スマートコントラクトセキュリティ監査用)

リポジトリを見る
2時間51分前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

evm-audit-helpers

GitHub license
GitHub stars
Foundry version
Build Status


概要

evm-audit-helpers は、EVMスマートコントラクトのセキュリティ監査を迅速化するために設計された、厳選されたSolidityスニペット、Foundryスクリプト、テストテンプレートのコレクションです。このリポジトリには、リエントランシー、ストレージレイアウトの不一致、ガス最適化の落とし穴など、一般的な監査上の懸念事項に対応する再利用可能なビルディングブロックがバンドルされており、監査人や開発者は定型コードではなくロジックに集中できます。

主な目標:

  • 監査準備を迅速化 するための既製チェックとパターンを提供。
  • 監査レポート全体の一貫性を確保 するための標準テストスイートを提供。
  • 十分に文書化された例とベストプラクティスガイドライン を通じて学習を促進。

機能

カテゴリ説明主要ファイル
リエントランシーチェッカーヘルパーモディファイア、nonReentrant パターン、実行時検出スクリプト。src/helpers/Reentrancy.sol、scripts/reentrancy_check.sol
ストレージレイアウトアナライザーストレージスロットの比較、レイアウト図の生成、安全でないアップグレードの検出を行うユーティリティ。src/helpers/StorageLayout.sol、scripts/storage_analyzer.sol
Foundryテストテンプレート一般的な脆弱性(アクセス制御、算術、delegatecallなど)をカバーするボイラープレートテストスイート。test/templates/*
ガス&オペコード監査ガス使用量をプロファイリングし、高コストなオペコードをフラグ付けするスクリプト。scripts/gas_profiler.sol
レポートヘルパーCIダッシュボードにパイプできるJSON/Markdownレポーター。scripts/report_generator.sol
CI統合自動監査実行用のGitHub Actionsワークフロー例。.github/workflows/ci.yml

すべてのヘルパーは Solidity ^0.8.20 向けに書かれており、Foundry (forge、cast) と互換性があります。


クイックスタート

root@kitploit:~
# 1️⃣ リポジトリをクローン
git clone https://github.com/your-org/evm-audit-helpers.git
cd evm-audit-helpers

# 2️⃣ Foundryをインストール(未インストールの場合)
curl -L https://foundry.paradigm.xyz | bash
foundryup

# 3️⃣ 依存関係をインストール
forge install

# 4️⃣ デフォルトのテストスイートを実行(リエントランシー、ストレージ、ガスチェックを含む)
forge test

ヒント: CI最適化されたコンパイラ設定を使用するには、シェルに export FOUNDRY_PROFILE=ci を追加してください。


使用方法

1. リエントランシーチェック

root@kitploit:~
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "evm-audit-helpers/src/helpers/Reentrancy.sol";

contract MyVault is ReentrancyGuard {
    mapping(address => uint256) private balances;

    function deposit() external payable nonReentrant {
        balances[msg.sender] += msg.value;
    }

    function withdraw(uint256 amount) external nonReentrant {
        require(balances[msg.sender] >= amount, "Insufficient");
        balances[msg.sender] -= amount;
        (bool ok,) = msg.sender.call{value: amount}("");
        require(ok, "Transfer failed");
    }
}

コンパイル済みコントラクトに対して実行時検出器を実行:

root@kitploit:~
forge script scripts/reentrancy_check.sol:ReentrancyChecker --rpc-url $RPC_URL --broadcast

2. ストレージレイアウト分析

root@kitploit:~
# コンパイル済みコントラクトのストレージレイアウトのJSON記述を生成
cast abi-storage --contract MyUpgradeable.sol:MyUpgradeable > storage.json

# 参照レイアウト(例: 以前のバージョン)と比較
forge script scripts/storage_analyzer.sol:StorageComparator \
    --sig "compare(string memory, string memory)" storage.json reference.json

このスクリプトは、不一致のスロット、潜在的なシャドーイング、@custom:oz-upgrades-unsafe-allow アノテーションの提案を出力します。

3. Foundryテストテンプレート

テンプレートを監査リポジトリにコピー:

root@kitploit:~
cp -r test/templates/reentrancy/ my-audit/tests/

MyContract.t.sol を編集して監査対象のコントラクトをインポートし、以下を実行:

root@kitploit:~
forge test --match-contract MyContract

4. CI統合

提供されたワークフローをリポジトリに追加:

root@kitploit:~
# .github/workflows/audit.yml
name: EVM Audit

on:
  push:
    branches: [main]
  pull_request:

jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Foundry
        run: curl -L https://foundry.paradigm.xyz | bash && foundryup
      - name: Run Audit Suite
        run: |
          forge install
          forge test -vv
          forge script scripts/reentrancy_check.sol:ReentrancyChecker --rpc-url ${{ secrets.RPC_URL }}
          forge script scripts/storage_analyzer.sol:StorageComparator --sig "compare(string,string)" storage.json reference.json

このワークフローは失敗を自動的にフラグ付けし、MarkdownレポートをPRコメントとして公開します。


コントリビューション

コントリビューションを歓迎します!以下の手順に従ってください:

  1. リポジトリをフォーク し、フィーチャーブランチを作成します(git checkout -b feat/<name>)。
  2. 新しいヘルパーやバグ修正には テストを作成 します。すべての新規コードは 100%のカバレッジ(forge coverage)が必要です。
  3. リンティングスイートを実行 します(npm run lint – solhint と prettier を使用)。
  4. 明確な説明、関連するイシューへの参照(該当する場合)、簡単な監査ユースケースの例を添えて プルリクエストを送信 します。

コードスタイル

  • Solidity: pragma solidity ^0.8.20;
  • 内部関数には snake_case、public/externalには camelCase を使用。
  • すべてのpublicコントラクト/インターフェースをNatSpec(///)で文書化。

開発環境

root@kitploit:~
# リンティングツールをインストール
npm install

# solhintを実行
npx solhint 'src/**/*.sol' 'test/**/*.sol'

# 自動フォーマット
npx prettier --write '**/*.sol'

ライセンス

evm-audit-helpers は MITライセンス の下でライセンスされています。詳細は LICENSE ファイルを参照してください。


楽しい監査を!

ツールをダウンロード