Agent Skills by ALSEL
Anthropic Claudeその他⭐ リポ 0品質スコア 50/100

coverage-analysis

ファジング実行中にテストされたコードの範囲を計測するカバレッジ分析を行います。ハーネスの有効性を評価したい場合や、ファジングの進行を妨げている箇所を特定したい際に使用してください。

description の原文を見る

> Coverage analysis measures code exercised during fuzzing. Use when assessing harness effectiveness or identifying fuzzing blockers.

SKILL.md 本文

カバレッジ分析

カバレッジ分析は、ファジングの実行中にコードのどの部分が実行されているかを理解するために不可欠です。マジック値チェックなどのファジングブロッカーを識別し、ハーネス改善の効果を時系列で追跡するのに役立ちます。

概要

ファジング中のコードカバレッジは2つの重要な目的を果たします:

  1. ハーネス効果の評価: ファジングハーネスによってアプリケーションのどの部分が実際に実行されているかを理解する
  2. ファジング進捗の追跡: ハーネス、ファザー、またはテスト対象システム(SUT)を更新した際にカバレッジがどう変化するか監視する

カバレッジはファザーの能力とパフォーマンスの代理指標です。カバレッジは絶対的な意味でファザーのパフォーマンスを測定するのに最適ではありませんが、与えられたセットアップでハーネスが効果的に機能しているかどうかを確実に示します。

主要概念

概念説明
カバレッジ計測実行されたコードパスを追跡するコンパイラフラグ
コーパスカバレッジファジングコーパス内のすべてのテストケースを実行することで達成されるカバレッジ
マジック値チェックファザーの進捗をブロックする、発見しにくい条件付きチェック
カバレッジ誘導型ファジング新しいコードパスを発見するインプットを優先するファジング戦略
カバレッジレポート実行されたコードと未実行コードを視覚的またはテキスト形式で表現

適用する時期

以下の場合にこのテクニックを適用してください:

  • 新しいファジングキャンペーンを開始してベースラインを確立する
  • ファザーが新しいパスを見つけられずにプラトーに達しているようだ
  • ハーネスの修正後に改善を検証する
  • 異なるファザー間での移行時
  • 辞書エントリやシードインプットが必要な領域を特定する
  • 特定のコードパスに到達できない理由をデバッグする

以下の場合はこのテクニックをスキップしてください:

  • ファジングキャンペーンが積極的にクラッシュを発見している
  • カバレッジインフラがまだセットアップされていない
  • 非常に大規模なコードベースで完全なカバレッジレポートが実用的でない
  • ファザーの内部カバレッジメトリクスで充分な場合

クイックリファレンス

タスクコマンド/パターン
LLVM カバレッジ計測 (C/C++)-fprofile-instr-generate -fcoverage-mapping
GCC カバレッジ計測-ftest-coverage -fprofile-arcs
cargo-fuzz カバレッジ (Rust)cargo +nightly fuzz coverage <target>
LLVM プロファイルデータ生成llvm-profdata merge -sparse file.profraw -o file.profdata
LLVM カバレッジレポートllvm-cov report ./binary -instr-profile=file.profdata
LLVM HTML レポートllvm-cov show ./binary -instr-profile=file.profdata -format=html -output-dir html/
gcovr HTML レポートgcovr --html-details -o coverage.html

理想的なカバレッジワークフロー

次のワークフローは、ファジングキャンペーンにカバレッジ分析を統合するためのベストプラクティスを表しています:

[ファジングキャンペーン]
       |
       v
[コーパス生成]
       |
       v
[カバレッジ分析]
       |
       +---> カバレッジ増加? --> より大きなコーパスでファジング継続
       |
       +---> カバレッジ減少? --> ハーネスを修正するか SUT の変更を調査
       |
       +---> カバレッジ停滞? --> 辞書エントリまたはシードインプットを追加

重要な原則: リアルタイムのファザー統計ではなく、各ファジングキャンペーン後に生成されたコーパスを使用してカバレッジを計算します。このアプローチにより、異なるファジングツール間で再現可能で比較可能な測定値が提供されます。

ステップバイステップ

ステップ 1: カバレッジ計測でビルド

ツールチェーンに基づいて計測方法を選択してください:

LLVM/Clang (C/C++):

clang++ -fprofile-instr-generate -fcoverage-mapping \
  -O2 -DNO_MAIN \
  main.cc harness.cc execute-rt.cc -o fuzz_exec

GCC (C/C++):

g++ -ftest-coverage -fprofile-arcs \
  -O2 -DNO_MAIN \
  main.cc harness.cc execute-rt.cc -o fuzz_exec_gcov

Rust:

rustup toolchain install nightly --component llvm-tools-preview
cargo +nightly fuzz coverage fuzz_target_1

ステップ 2: 実行ランタイムの作成 (C/C++ のみ)

C/C++ プロジェクトの場合、コーパスを実行するランタイムを作成します:

// execute-rt.cc
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <stdint.h>

extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);

void load_file_and_test(const char *filename) {
    FILE *file = fopen(filename, "rb");
    if (file == NULL) {
        printf("Failed to open file: %s\n", filename);
        return;
    }

    fseek(file, 0, SEEK_END);
    long filesize = ftell(file);
    rewind(file);

    uint8_t *buffer = (uint8_t*) malloc(filesize);
    if (buffer == NULL) {
        printf("Failed to allocate memory for file: %s\n", filename);
        fclose(file);
        return;
    }

    long read_size = (long) fread(buffer, 1, filesize, file);
    if (read_size != filesize) {
        printf("Failed to read file: %s\n", filename);
        free(buffer);
        fclose(file);
        return;
    }

    LLVMFuzzerTestOneInput(buffer, filesize);

    free(buffer);
    fclose(file);
}

int main(int argc, char **argv) {
    if (argc != 2) {
        printf("Usage: %s <directory>\n", argv[0]);
        return 1;
    }

    DIR *dir = opendir(argv[1]);
    if (dir == NULL) {
        printf("Failed to open directory: %s\n", argv[1]);
        return 1;
    }

    struct dirent *entry;
    while ((entry = readdir(dir)) != NULL) {
        if (entry->d_type == DT_REG) {
            char filepath[1024];
            snprintf(filepath, sizeof(filepath), "%s/%s", argv[1], entry->d_name);
            load_file_and_test(filepath);
        }
    }

    closedir(dir);
    return 0;
}

ステップ 3: コーパスで実行

LLVM (C/C++):

LLVM_PROFILE_FILE=fuzz.profraw ./fuzz_exec corpus/

GCC (C/C++):

./fuzz_exec_gcov corpus/

Rust: cargo fuzz coverage を実行するときに、カバレッジデータが自動的に生成されます。

ステップ 4: カバレッジデータを処理

LLVM:

# Raw プロファイルデータをマージ
llvm-profdata merge -sparse fuzz.profraw -o fuzz.profdata

# テキストレポート生成
llvm-cov report ./fuzz_exec \
  -instr-profile=fuzz.profdata \
  -ignore-filename-regex='harness.cc|execute-rt.cc'

# HTML レポート生成
llvm-cov show ./fuzz_exec \
  -instr-profile=fuzz.profdata \
  -ignore-filename-regex='harness.cc|execute-rt.cc' \
  -format=html -output-dir fuzz_html/

GCC with gcovr:

# gcovr をインストール (pip で最新版)
python3 -m venv venv
source venv/bin/activate
pip3 install gcovr

# レポート生成
gcovr --gcov-executable "llvm-cov gcov" \
  --exclude harness.cc --exclude execute-rt.cc \
  --root . --html-details -o coverage.html

Rust:

# 必要なツールをインストール
cargo install cargo-binutils rustfilt

# HTML 生成スクリプトを作成
cat <<'EOF' > ./generate_html
#!/bin/sh
if [ $# -lt 1 ]; then
    echo "Error: Name of fuzz target is required."
    echo "Usage: $0 fuzz_target [sources...]"
    exit 1
fi
FUZZ_TARGET="$1"
shift
SRC_FILTER="$@"
TARGET=$(rustc -vV | sed -n 's|host: ||p')
cargo +nightly cov -- show -Xdemangler=rustfilt \
  "target/$TARGET/coverage/$TARGET/release/$FUZZ_TARGET" \
  -instr-profile="fuzz/coverage/$FUZZ_TARGET/coverage.profdata" \
  -show-line-counts-or-regions -show-instantiations \
  -format=html -o fuzz_html/ $SRC_FILTER
EOF
chmod +x ./generate_html

# HTML レポート生成
./generate_html fuzz_target_1 src/lib.rs

ステップ 5: 結果を分析

カバレッジレポートをレビューして以下を特定します:

  • 未カバーのコードブロック: より良いシードインプットまたは辞書エントリが必要な領域
  • マジック値チェック: 進捗をブロックするハードコードされた値を持つ条件文
  • デッドコード: ハーネスを通じて到達不可能な可能性のある関数
  • カバレッジの変化: ベースラインと比較して改善または回帰を追跡

共通パターン

パターン: マジック値の特定

問題: ファザーがマジック値チェックで守られたパスを発見できない。

カバレッジが明らかにするもの:

// カバレッジはこのブロックが決して実行されないことを示す
if (buf == 0x7F454C46) {  // ELF マジック番号
    // buf の解析開始
}

ソリューション: マジック値を辞書ファイルに追加:

# magic.dict
"\x7F\x45\x4C\x46"

パターン: クラッシュインプットの処理

問題: コーパスに不正なインプットが含まれていてカバレッジ生成が失敗する。

修正前:

./fuzz_exec corpus/  # 不正なインプットでクラッシュ、カバレッジ未生成

修正後:

// 実行前にフォーク、クラッシュを隔離
int main(int argc, char **argv) {
    // ... ディレクトリ開閉のコード ...

    while ((entry = readdir(dir)) != NULL) {
        if (entry->d_type == DT_REG) {
            pid_t pid = fork();
            if (pid == 0) {
                // 子プロセス - クラッシュが親に影響しない
                char filepath[1024];
                snprintf(filepath, sizeof(filepath), "%s/%s", argv[1], entry->d_name);
                load_file_and_test(filepath);
                exit(0);
            } else {
                // 親は子の終了を待機
                waitpid(pid, NULL, 0);
            }
        }
    }
}

パターン: CMake 統合

使用例: CMake プロジェクトへのカバレッジビルドの追加。

project(FuzzingProject)
cmake_minimum_required(VERSION 3.0)

# メインバイナリ
add_executable(program main.cc)

# ファジングバイナリ
add_executable(fuzz main.cc harness.cc)
target_compile_definitions(fuzz PRIVATE NO_MAIN=1)
target_compile_options(fuzz PRIVATE -g -O2 -fsanitize=fuzzer)
target_link_libraries(fuzz -fsanitize=fuzzer)

# カバレッジ実行バイナリ
add_executable(fuzz_exec main.cc harness.cc execute-rt.cc)
target_compile_definitions(fuzz_exec PRIVATE NO_MAIN)
target_compile_options(fuzz_exec PRIVATE -O2 -fprofile-instr-generate -fcoverage-mapping)
target_link_libraries(fuzz_exec -fprofile-instr-generate)

ビルド:

cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ .
cmake --build . --target fuzz_exec

高度な使用方法

ティップスと トリックス

ティップス役に立つ理由
LLVM 18+ で -show-directory-coverage を使用大規模なレポートをフラットなファイル一覧ではなくディレクトリ構造で整理
lcov フォーマットへのエクスポートでより良い HTMLllvm-cov export -format=lcov + genhtml がファイルごとのレポートを提供
キャンペーン間のカバレッジ比較.profdata ファイルをタイムスタンプとともに保存して時系列で進捗追跡
レポートからハーネスコードを除外-ignore-filename-regex で SUT カバレッジのみにフォーカス
CI/CD でカバレッジを自動化スケジュール済みファジング実行後に自動的にカバレッジレポート生成
Clang 14+ に gcovr 5.1+ を使用古い gcovr 版には最新 LLVM との互換性問題がある

インクリメンタルカバレッジ更新

GCC の gcov 計測は複数実行を通じて .gcda ファイルをインクリメンタルに更新します。テストケースを追加する際にカバレッジを追跡するのに便利です:

# 最初の実行
./fuzz_exec_gcov corpus_batch_1/
gcovr --html coverage_v1.html

# 2番目の実行 (既存のカバレッジに追加)
./fuzz_exec_gcov corpus_batch_2/
gcovr --html coverage_v2.html

# 最初からやり直す
gcovr --delete  # .gcda ファイル削除
./fuzz_exec_gcov corpus/

大規模コードベースの処理

数百のソースファイルがあるプロジェクトの場合:

  1. プリフィックスでフィルタ: 関連ディレクトリのレポートのみ生成

    llvm-cov show ./fuzz_exec -instr-profile=fuzz.profdata /path/to/src/
    
  2. ディレクトリカバレッジを使用: ディレクトリでグループ化して乱雑さを削減 (LLVM 18+)

    llvm-cov show -show-directory-coverage -format=html -output-dir html/
    
  3. プログラム分析用に JSON 生成:

    llvm-cov export -format=lcov > coverage.json
    

差分カバレッジ

2つのファジングキャンペーン間のカバレッジを比較:

# キャンペーン 1
LLVM_PROFILE_FILE=campaign1.profraw ./fuzz_exec corpus1/
llvm-profdata merge -sparse campaign1.profraw -o campaign1.profdata

# キャンペーン 2
LLVM_PROFILE_FILE=campaign2.profraw ./fuzz_exec corpus2/
llvm-profdata merge -sparse campaign2.profraw -o campaign2.profdata

# 比較
llvm-cov show ./fuzz_exec \
  -instr-profile=campaign2.profdata \
  -instr-profile=campaign1.profdata \
  -show-line-counts-or-regions

アンチパターン

アンチパターン問題正しいアプローチ
比較にファザーレポート済みカバレッジを使用異なるファザーはカバレッジを異なる方法で計算するため、クロスツール比較は無意味再現可能な測定値のために専用ツール (llvm-cov, gcovr) を使用
最適化でカバレッジを生成-O3 最適化はコードを削除でき、カバレッジが誤解を招くカバレッジビルドに -O2 または -O0 を使用
ハーネスコードをフィルタしないハーネスカバレッジが数値を膨らませ SUT カバレッジを曖昧にする-ignore-filename-regex または --exclude でハーネスファイルをフィルタ
LLVM と GCC 計測を混合互換性のない形式がパース失敗を引き起こすカバレッジビルドに同じツールチェーンを使用
クラッシュインプットを無視クラッシュがカバレッジ生成を防止、実際のカバレッジデータを隠す最初にクラッシュを修正するか、プロセスフォークで隔離
時系列でカバレッジを追跡しない一度のカバレッジチェックは回帰と改善を見逃すカバレッジデータをタイムスタンプとともに保存してトレンド追跡

ツール別ガイダンス

libFuzzer

libFuzzer はデフォルトで LLVM の SanitizerCoverage をファジング誘導に使用しますが、レポート生成には別の計測が必要です。

カバレッジ用にビルド:

clang++ -fprofile-instr-generate -fcoverage-mapping \
  -O2 -DNO_MAIN \
  main.cc harness.cc execute-rt.cc -o fuzz_exec

コーパスを実行してレポート生成:

LLVM_PROFILE_FILE=fuzz.profraw ./fuzz_exec corpus/
llvm-profdata merge -sparse fuzz.profraw -o fuzz.profdata
llvm-cov show ./fuzz_exec -instr-profile=fuzz.profdata -format=html -output-dir html/

統合ティップス:

  • カバレッジビルドに -fsanitize=fuzzer を使用しない (プロファイル計測と競合)
  • 異なるメイン関数で同じハーネス関数 (LLVMFuzzerTestOneInput) を再利用
  • -ignore-filename-regex フラグを使用してカバレッジレポートからハーネスコードを除外
  • テンプレート多用の C++ コードに llvm-cov の -show-instantiation フラグの使用を検討

AFL++

AFL++ は独自のカバレッジフィードバック機構を提供していますが、詳細レポートには標準 LLVM/GCC ツールを使用します。

LLVM でカバレッジ用にビルド:

clang++ -fprofile-instr-generate -fcoverage-mapping \
  -O2 main.cc harness.cc execute-rt.cc -o fuzz_exec

GCC でカバレッジ用にビルド:

AFL_USE_ASAN=0 afl-gcc -ftest-coverage -fprofile-arcs \
  main.cc harness.cc execute-rt.cc -o fuzz_exec_gcov

実行してレポート生成:

# LLVM アプローチ
LLVM_PROFILE_FILE=fuzz.profraw ./fuzz_exec afl_output/queue/
llvm-profdata merge -sparse fuzz.profraw -o fuzz.profdata
llvm-cov report ./fuzz_exec -instr-profile=fuzz.profdata

# GCC アプローチ
./fuzz_exec_gcov afl_output/queue/
gcovr --html-details -o coverage.html

統合ティップス:

  • カバレッジビルドに AFL++ 計測 (afl-clang-fast) を使用しない
  • カバレッジフラグで標準コンパイラを代わりに使用
  • AFL++ の queue/ ディレクトリはコーパスを含む
  • AFL++ の組み込みカバレッジ統計はリアルタイム監視に有用だが詳細分析には不十分

cargo-fuzz (Rust)

cargo-fuzz は LLVM ツールを使用した組み込みのカバレッジ生成を提供します。

前提条件をインストール:

rustup toolchain install nightly --component llvm-tools-preview
cargo install cargo-binutils rustfilt

カバレッジデータ生成:

cargo +nightly fuzz coverage fuzz_target_1

HTML レポートスクリプト作成:

cat <<'EOF' > ./generate_html
#!/bin/sh
FUZZ_TARGET="$1"
shift
SRC_FILTER="$@"
TARGET=$(rustc -vV | sed -n 's|host: ||p')
cargo +nightly cov -- show -Xdemangler=rustfilt \
  "target/$TARGET/coverage/$TARGET/release/$FUZZ_TARGET" \
  -instr-profile="fuzz/coverage/$FUZZ_TARGET/coverage.profdata" \
  -show-line-counts-or-regions -show-instantiations \
  -format=html -o fuzz_html/ $SRC_FILTER
EOF
chmod +x ./generate_html

レポート生成:

./generate_html fuzz_target_1 src/lib.rs

統合ティップス:

  • カバレッジに常に nightly ツールチェーンを使用
  • -Xdemangler=rustfilt フラグで関数名を読みやすくする
  • ソースファイル (e.g., src/lib.rs) でフィルタしてクレートコードにフォーカス
  • Rust 固有出力向けに -show-line-counts-or-regions-show-instantiations を使用
  • コーパスは fuzz/corpus/<target>/ に位置

honggfuzz

honggfuzz は標準 LLVM/GCC カバレッジ計測と連携します。

カバレッジ用にビルド:

# honggfuzz コンパイラではなく標準コンパイラを使用
clang -fprofile-instr-generate -fcoverage-mapping \
  -O2 harness.c execute-rt.c -o fuzz_exec

コーパスを実行:

LLVM_PROFILE_FILE=fuzz.profraw ./fuzz_exec honggfuzz_workspace/

統合ティップス:

  • カバレッジビルドに hfuzz-clang を使用しない
  • honggfuzz コーパスは通常ワークスペースディレクトリ内
  • libFuzzer と同じ LLVM ワークフロー使用

トラブルシューティング

問題原因ソリューション
error: no profile data availableプロファイルが生成されていない、またはパス誤りLLVM_PROFILE_FILE 設定と .profraw ファイルの存在を確認
Failed to load coverageバイナリとプロファイルデータのミスマッチ実行時と同じフラグでバイナリを再ビルド
カバレッジレポートが 0%レポート生成に誤ったバイナリを使用計測済みバイナリを使用、ファジングバイナリでない
no_working_dir_found エラー (gcovr).gcda ファイルが予期した場所にない--gcov-ignore-errors=no_working_dir_found フラグを追加
クラッシュがカバレッジ生成をブロックコーパスにクラッシュインプットが含まれているクラッシュをフィルタするか、フォーク手法で隔離
ハーネス変更後カバレッジ低下ハーネスが特定のコードパスをスキップするようにハーネスロジックを見直す、より多くのインプット形式に対応の必要がある
HTML レポートがフラットファイル一覧古い LLVM バージョン使用LLVM 18+ にアップグレードして -show-directory-coverage 使用
incompatible instrumentationLLVM と GCC カバレッジを混合すべてを同じツールチェーンで再ビルド

関連スキル

このテクニックを使用するツール

スキル適用方法
libfuzzerフィードバック用 SanitizerCoverage 使用、カバレッジ分析でハーネス効果を評価
aflppフィードバック用エッジカバレッジ使用、詳細分析には別計測が必要
cargo-fuzzRust プロジェクト向け組み込み cargo fuzz coverage コマンド
honggfuzzエッジカバレッジ使用、標準 LLVM/GCC ツールで分析

関連テクニック

スキル関係性
fuzz-harness-writingカバレッジはハーネスが到達するコードパスを明らかにし、改善をガイド
fuzzing-dictionariesカバレッジがマジック値チェックを特定し辞書エントリが必要
corpus-managementカバレッジ分析が冗長テストケース特定でコーパス キュレーション支援
sanitizersカバレッジがサニタイザー計測コードが実際に実行されていることを検証

リソース

主要外部リソース

LLVM ソースベースコードカバレッジ LLVM のプロファイル計測に関する包括的ガイド。分岐カバレッジ、リージョンカバレッジ、既存ビルドシステムとの統合など高度な機能を含む。コンパイラフラグ、ランタイム動作、プロファイルデータ形式をカバー。

llvm-cov コマンドガイド showreportexport コマンドを含む llvm-cov ツールの詳細 CLI リファレンス。すべてのフィルタリングオプション、出力形式、llvm-profdata との統合をドキュメント化。

gcovr ドキュメンテーション gcov データからカバレッジレポートを生成する gcovr ツールの完全ガイド。HTML テーマ、フィルタリングオプション、マルチディレクトリプロジェクト、CI/CD 統合パターンをカバー。

SanitizerCoverage ドキュメンテーション LLVM の SanitizerCoverage 計測の低レベルドキュメンテーション。インライン 8 ビットカウンタ、PC テーブル、ファザーがカバレッジフィードバックを誘導に使用する方法について説明。

ファザーパフォーマンスの評価について ファジングパフォーマンスメトリクスとしてのカバレッジの限界を検討する研究論文。単純なコードカバレッジ率を超えたより細かい評価方法を主張。

ビデオリソース

該当なし - カバレッジ分析は主にツール機能とワークフロートピックで、ドキュメンテーションと実践的な練習で最適に習得。

ライセンス: CC-BY-SA-4.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
trailofbits
リポジトリ
trailofbits/skills
ライセンス
CC-BY-SA-4.0
最終更新
不明

Source: https://github.com/trailofbits/skills / ライセンス: CC-BY-SA-4.0

関連スキル

汎用その他⭐ リポ 1,982

superfluid

Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper

by LeoYeAI
汎用その他⭐ リポ 100

civ-finish-quotes

実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。

by huxiuhan
汎用その他⭐ リポ 1,110

nookplot

Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。

by BankrBot
汎用その他⭐ リポ 59

web3-polymarket

Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。

by elophanto
汎用その他⭐ リポ 52

ethskills

Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。

by jiayaoqijia
汎用その他⭐ リポ 44

xxyy-trade

このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。

by Jimmy-Holiday
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: trailofbits · trailofbits/skills · ライセンス: CC-BY-SA-4.0