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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
DCVD — 「DCVD: Dual-Channel Cross-Modal Fusion for Joint Vulnerability Detection and Localization」のコード | Kitploit
ツール/GitHubGitHub/vinsontang1/dcvd
静的分析脆弱性分析コード分析機械学習論文と研究AIセキュリティ
GitHubvinsontang1/dcvd

DCVD

「DCVD: Dual-Channel Cross-Modal Fusion for Joint Vulnerability Detection and Localization」のコード

リポジトリを見る
23ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

11image-20260510182333988

root@kitploit:~
project/
├── train.py
├── data_loader.py
├── README.md
├── requirements.txt
├── models/
│   ├── control_pathway.py
│   ├── semantic_pathway.py
│   ├── feature_fusion_module.py
│   ├── transformer_llm_module.py
│   └── multi_task_predictor.py

データとモデルの出典

データセット

脆弱性検出には LineVul データセットを使用します:

Michael Fu および Chakkrit Tantithamthavorn, "LineVul: A Transformer-based Line-Level Vulnerability Prediction", MSR 2022.
論文: https://conf.researchr.org/details/msr-2022/msr-2022-technical-papers/26/LineVul-A-Transformer-based-Line-Level-Vulnerability-Prediction
リポジトリ: https://github.com/awsm-research/LineVul

さらに、データセットをグラフ構造に前処理し、各サンプルを LLM が生成した説明と対応付けます。

モデル

以下の事前学習モデルを使用します:

  • OpenAI GPT-4o-mini

    OpenAI, "Hello GPT-4o", 2024.
    URL: https://openai.com/index/hello-gpt-4o/

    • gpt-4o-mini-2024-07-18: LLM 説明の生成に使用。
  • Qwen モデル(Qwen3 シリーズ)

    Qwen Team, "Qwen3 Technical Report", arXiv:2505.09388, 2025.
    論文: https://arxiv.org/abs/2505.09388
    リポジトリ: https://github.com/QwenLM/Qwen3

    • Qwen3.5-4B: セマンティック埋め込みのバックボーンとして使用(埋め込み層のみ)。
  • GraphCodeBERT

    Guo et al., "GraphCodeBERT: Pre-training Code Representations with Data Flow", ICLR 2021.
    論文: https://arxiv.org/abs/2009.08366
    リポジトリ: https://github.com/microsoft/CodeBERT

ライセンス

このプロジェクトは、公開されているデータセットと事前学習モデルを使用しています。それらのライセンスは以下のとおりです:

  • LineVul データセット
    ライセンス: MIT ライセンス
    ソース: https://github.com/awsm-research/LineVul

  • OpenAI GPT-4o-mini
    使用は OpenAI 利用規約 に従います。

  • Qwen モデル(Qwen3.5-4B)
    ライセンス: Apache License 2.0
    ソース: https://github.com/QwenLM/Qwen3

  • GraphCodeBERT
    ライセンス: MIT ライセンス
    ソース: https://github.com/microsoft/CodeBERT

すべてのアセットは、それぞれのライセンスに従って使用されています。

環境構築

要件

root@kitploit:~
python >= 3.9

torch>=2.0.0
torch-geometric>=2.4.0

transformers>=4.35.0
accelerate>=0.25.0
sentencepiece

pandas>=1.5.0
tqdm>=4.60.0

tensorboard

PyTorch Geometric のインストール

PyTorch Geometric (PyG) は CUDA に依存します。お使いの環境に合わせてインストールしてください。

データ準備

ディレクトリ構造

root@kitploit:~
data/
├── processed/
│   ├── train_data_masked.pt
│   ├── train_with_llm.csv
│   ├── val_data_masked.pt
│   ├── val_with_llm.csv
│   ├── test_data_masked.pt
│   ├── test_with_llm.csv
├── config/
│   └── node_vocab.json

CSV フォーマット

CSV ファイルには次のフィールドが含まれている必要があります:

  • index: 一意のサンプル ID
  • func_before: ソースコード
  • llm_explanation: LLM が生成した説明

グラフデータ (.pt)

各 PyG Data オブジェクトには次のものが含まれている必要があります:

  • index: CSV と対応
  • x: ノード特徴量
  • ast_edge_index: AST エッジ
  • cfg_edge_index: CFG エッジ
  • y_f: 関数レベルのラベル
  • y_s: 行レベルのラベル
  • line_mask: トークンから行へのマッピング

モデル設定

このフレームワークは以下の事前学習モデルを使用します:

  • セマンティックパスウェイ: Qwen/Qwen3.5-4B
  • トランスフォーマーモジュール: microsoft/graphcodebert-base

これらは次のコマンドで変更できます:

root@kitploit:~
--llm_model_name
--transformer_base_name

クイックスタート

root@kitploit:~
python train.py \
  --train_pt_path ./data/processed/train_data_masked.pt \
  --train_csv_path ./data/processed/train_with_llm.csv \
  --valid_pt_path ./data/processed/val_data_masked.pt \
  --valid_csv_path ./data/processed/val_with_llm.csv \
  --vocab_path ./data/config/node_vocab.json \
  --output_dir ./outputs \
  --run_name demo

出力

結果は次の場所に保存されます:

root@kitploit:~
outputs/<run_name>/

含まれるもの:

  • モデルのチェックポイント
  • ログ
  • result.json
ツールをダウンロード