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
Static AnalysisVulnerability AnalysisCode AnalysisMachine LearningPapers & ResearchAI Security
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 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 라이선스
    출처: 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
도구 다운로드