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
Статический анализАнализ уязвимостейАнализ КодаМашинное ОбучениеСтатьи и ИсследованияБезопасность ИИ
GitHubvinsontang1/dcvd

DCVD

Код в "DCVD: Dual-Channel Cross-Modal Fusion for Joint Vulnerability Detection and Localization"

Репозиторий
264 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

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 and 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 License
    Источник: 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 License
    Источник: 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: уникальный идентификатор образца
  • 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
Скачать инструмент