Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
qlcoder — एजेंटिक फ्रेमवर्क फॉर सिंथेसाइज़िंग CodeQL क्वेरीज़ | Kitploit
उपकरण/GitHubGitHub/neuralprogram/qlcoder
स्थैतिक विश्लेषणभेद्यता स्कैनरभेद्यता विश्लेषणकोड विश्लेषणपेपर और शोधAI-सहायित रिवर्सिंग
GitHubneuralprogram/qlcoder

qlcoder

एजेंटिक फ्रेमवर्क फॉर सिंथेसाइज़िंग CodeQL क्वेरीज़

रिपॉजिटरी देखें
255135 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

QLCoder

CodeQL क्वेरी संश्लेषित करने के लिए एजेंटिक फ्रेमवर्क

विषय-सूची

  • अवलोकन
  • स्थापना
    • डॉकर (अनुशंसित)
    • नेटिव (लिनक्स)
  • उपयोग
  • त्वरित प्रारंभ
  • विकास उपकरण
  • उदाहरण
  • पेपर वातावरण
  • योगदान
  • टीम
  • उद्धरण
  • संबद्ध परियोजनाएँ

अवलोकन

QLCoder Iterative Refinement

QLCoder एक फ्रेमवर्क है जो भेद्यता पहचान के लिए एंड-टू-एंड CodeQL क्वेरी संश्लेषित करने हेतु LLM का उपयोग करता है। किसी मौजूदा CVE के मेटाडेटा, LLM और कोडिंग एजेंट को देखते हुए, QLCoder मौजूदा CVE का पता लगाने के लिए एक CodeQL क्वेरी को पुनरावृत्त रूप से संश्लेषित करता है। प्रारंभिक क्वेरी एक CodeQL पाथ क्वेरी टेम्पलेट है जो डिफ के निकाले गए AST से भरा जाता है। क्वेरी संश्लेषित करते समय, कोडिंग एजेंट के पास RAG डेटाबेस और CodeQL भाषा सर्वर के साथ इंटरफेस करने के लिए उपकरणों तक पहुंच होती है। बाद में, क्वेरी का उपयोग मल्टीवेरिएंट विश्लेषण, रिग्रेशन परीक्षण, या CodeQL क्वेरी लिखने के लिए मार्गदर्शन के रूप में किया जा सकता है।

स्थापना

डॉकर (अनुशंसित)

चरण 1: CodeQL स्थापित करें

नोट - पेपर में CodeQL संस्करण 2.22.2 का उपयोग किया गया था। हालाँकि, कोई भी संस्करण (और भाषा) उपयोग किया जा सकता है। QLCoder स्थानीय CodeQL संस्करण के QL पैक को वेक्टर डेटाबेस में संग्रहीत करता है। पथ .env में कॉन्फ़िगर किए गए हैं।

CodeQL Action releases page से CodeQL Action बंडल का उपयुक्त संस्करण डाउनलोड करें।

  • नवीनतम संस्करण के लिए: नवीनतम रिलीज़ पर जाएँ और अपने OS के लिए उपयुक्त बंडल डाउनलोड करें:

    • macOS के लिए codeql-bundle-osx64.tar.gz
    • Linux के लिए codeql-bundle-linux64.tar.gz
  • किसी विशिष्ट संस्करण के लिए (जैसे, 2.22.2): CodeQL Action releases page पर जाएँ, codeql-bundle-v2.22.2 टैग की गई रिलीज़ खोजें, और अपने प्लेटफ़ॉर्म के लिए उपयुक्त बंडल डाउनलोड करें।

~/codeql में निकालें (या कोई अन्य पथ — तदनुसार .env में CODEQL_HOME अपडेट करें):

root@kitploit:~
tar -xzf codeql-bundle-<platform>.tar.gz -C ~/

चरण 2: CodeQL LSP MCP सर्वर स्थापित करें

CodeQL LSP MCP server को क्लोन करें और इसे बिल्ड करें।

root@kitploit:~
git clone https://github.com/neuralprogram/codeql-lsp-mcp ~/codeql-lsp-mcp
cd ~/codeql-lsp-mcp
npm install
npm run build

चरण 3: सेवाओं को कॉन्फ़िगर और प्रारंभ करें

root@kitploit:~
cp .env.example .env
echo "APP_UID=$(id -u)" >> .env
echo "APP_GID=$(id -g)" >> .env

.env में अपनी API कुंजी और CodeQL पथ भरें:

root@kitploit:~
ANTHROPIC_API_KEY=...

# QL पैक पथ आपके CodeQL संस्करण पर निर्भर करते हैं।
# संस्करण संख्याएँ खोजें:
#   ls ~/codeql/qlpacks/codeql/java-queries/   → SECURITY_QLPACK_PATH के लिए उपयोग करें
#   ls ~/codeql/qlpacks/codeql/java-all/        → LIBRARY_QLPACK_PATH के लिए उपयोग करें
SECURITY_QLPACK_PATH=~/codeql/qlpacks/codeql/java-queries/<version>/Security/CWE
LIBRARY_QLPACK_PATH=~/codeql/qlpacks/codeql/java-all/<version>/semmle/code/java

फिर QLCoder ऐप और ChromaDB प्रारंभ करें:

root@kitploit:~
docker compose up -d

चरण 4: CVE रिपॉजिटरी प्राप्त करें

CVE को data/project_info.csv में सूचीबद्ध होना चाहिए। यह बगी कमिट पर रिपॉजिटरी को क्लोन करता है और फिक्स डिफ उत्पन्न करता है।

root@kitploit:~
docker compose run --rm app python3 scripts/get_cve_repos.py --cve CVE-2025-27818
# या एक साथ कई:
docker compose run --rm app python3 scripts/get_cve_repos.py --cves CVE-2025-27818,CVE-2025-0851
# फ़ाइल से CVEs संसाधित करें (प्रति पंक्ति एक CVE ID)
docker compose run --rm app python3 scripts/get_cve_repos.py --cve-file cves.txt
# सभी CVEs संसाधित करें
docker compose run --rm app python3 scripts/get_cve_repos.py --all
# मौजूदा डिफ को पुनः उत्पन्न करने के लिए बलपूर्वक
docker compose run --rm app python3 scripts/get_cve_repos.py --cve CVE-2018-9159 --force

चरण 5: CodeQL डेटाबेस बनाएँ

डेटाबेस --build-mode=none के साथ बनाए जाते हैं — किसी बिल्ड टूलचेन की आवश्यकता नहीं है।

root@kitploit:~
# किसी विशिष्ट CVE के CodeQL डेटाबेस बनाने के लिए
docker compose run --rm app python3 scripts/build_codeql_dbs.py --cve-id CVE-2025-27818

यह cves/CVE-2025-27818/CVE-2025-27818-vul और cves/CVE-2025-27818/CVE-2025-27818-fix बनाता है।

root@kitploit:~
# सभी प्राप्त CVE रिपॉजिटरी के CodeQL डेटाबेस बनाने के लिए
docker compose run --rm app python3 scripts/build_codeql_dbs.py

चरण 6: RAG डेटाबेस भरें

वेक्टर डेटाबेस भरने के लिए ये स्क्रिप्ट चलाएँ। codeql_docs_fetcher.py और cwe_fetcher.py एक बार की सेटअप हैं; नए CVEs जोड़ने के बाद cves_fetcher.py को फिर से चलाया जाना चाहिए।

root@kitploit:~
docker compose run --rm app python3 scripts/codeql_docs_fetcher.py
docker compose run --rm app python3 scripts/cwe_fetcher.py
docker compose run --rm app python3 scripts/cves_fetcher.py

नेटिव (लिनक्स)

चरण 1: CodeQL स्थापित करें

नोट - पेपर में CodeQL संस्करण 2.22.2 का उपयोग किया गया था। हालाँकि, कोई भी संस्करण (और भाषा) उपयोग किया जा सकता है। QLCoder स्थानीय CodeQL संस्करण के QL पैक को वेक्टर डेटाबेस में संग्रहीत करता है। पथ .env में कॉन्फ़िगर किए गए हैं।

CodeQL Action releases page से CodeQL Action बंडल का उपयुक्त संस्करण डाउनलोड करें।

  • नवीनतम संस्करण के लिए: नवीनतम रिलीज़ पर जाएँ और अपने OS के लिए उपयुक्त बंडल डाउनलोड करें:

    • Linux के लिए codeql-bundle-linux64.tar.gz
  • किसी विशिष्ट संस्करण के लिए (जैसे, 2.22.2): CodeQL Action releases page पर जाएँ, codeql-bundle-v2.22.2 टैग की गई रिलीज़ खोजें, और अपने प्लेटफ़ॉर्म के लिए उपयुक्त बंडल डाउनलोड करें।

डाउनलोड करने के बाद, प्रोजेक्ट रूट निर्देशिका में संग्रह निकालें:

root@kitploit:~
tar -xzf codeql-bundle-<platform>.tar.gz

यह अंदर निष्पादन योग्य codeql के साथ एक उप-निर्देशिका codeql/ बनाना चाहिए।

इस निष्पादन योग्य का पथ अपने PATH पर्यावरण चर में जोड़ें:

root@kitploit:~
export PATH="$PWD/codeql:$PATH"

चरण 2: CodeQL LSP MCP सर्वर स्थापित करें

CodeQL LSP MCP server को क्लोन करें और इसे बिल्ड करें।

root@kitploit:~
git clone https://github.com/neuralprogram/codeql-lsp-mcp
cd codeql-lsp-mcp
npm install
npm run build

चरण 3: Conda वातावरण सेटअप करें

root@kitploit:~
conda env create -f environment.yml
conda activate qlcoder

चरण 4: .env कॉन्फ़िगर करें

root@kitploit:~
cp .env.example .env

.env में अपनी API कुंजी और CodeQL पथ भरें:

root@kitploit:~
ANTHROPIC_API_KEY=...
CODEQL_HOME=~/codeql
CODEQL_LSP_MCP_HOME=~/codeql-lsp-mcp

# QL पैक पथ आपके CodeQL संस्करण पर निर्भर करते हैं।
# संस्करण संख्याएँ खोजें:
#   ls ~/codeql/qlpacks/codeql/java-queries/   → SECURITY_QLPACK_PATH के लिए उपयोग करें
#   ls ~/codeql/qlpacks/codeql/java-all/        → LIBRARY_QLPACK_PATH के लिए उपयोग करें
SECURITY_QLPACK_PATH=~/codeql/qlpacks/codeql/java-queries/<version>/Security/CWE
LIBRARY_QLPACK_PATH=~/codeql/qlpacks/codeql/java-all/<version>/semmle/code/java

चरण 5: CVE रिपॉजिटरी प्राप्त करें

CVE को data/project_info.csv में सूचीबद्ध होना चाहिए। यह बगी कमिट पर रिपॉजिटरी को क्लोन करता है और फिक्स डिफ उत्पन्न करता है।

root@kitploit:~
python3 scripts/get_cve_repos.py --cve CVE-2025-27818
# या एक साथ कई:
python3 scripts/get_cve_repos.py --cves CVE-2025-27818,CVE-2025-0851
# फ़ाइल से CVEs संसाधित करें (प्रति पंक्ति एक CVE ID)
python3 scripts/get_cve_repos.py --cve-file cves.txt
# सभी CVEs संसाधित करें
python3 scripts/get_cve_repos.py --all
# मौजूदा डिफ को पुनः उत्पन्न करने के लिए बलपूर्वक
python3 scripts/get_cve_repos.py --cve CVE-2018-9159 --force

चरण 6: CodeQL डेटाबेस बनाएँ

डेटाबेस --build-mode=none के साथ बनाए जाते हैं — किसी बिल्ड टूलचेन की आवश्यकता नहीं है।

root@kitploit:~
# किसी विशिष्ट CVE के CodeQL डेटाबेस बनाने के लिए
python3 scripts/build_codeql_dbs.py --cve-id CVE-2025-27818
root@kitploit:~
# सभी प्राप्त CVE रिपॉजिटरी के CodeQL डेटाबेस बनाने के लिए
python3 scripts/build_codeql_dbs.py 

यह cves/CVE-2025-27818/CVE-2025-27818-vul और cves/CVE-2025-27818/CVE-2025-27818-fix बनाता है।

चरण 7: ChromaDB प्रारंभ करें

ChromaDB को एक अलग टर्मिनल में प्रारंभ करें और इसे इस चरण के लिए और जब भी एजेंट चलाएँ, चालू रखें।

root@kitploit:~
chroma run --path data/chroma_db

चरण 8: RAG डेटाबेस भरें

वेक्टर डेटाबेस भरने के लिए ये स्क्रिप्ट चलाएँ। codeql_docs_fetcher.py और cwe_fetcher.py एक बार की सेटअप हैं; नए CVEs जोड़ने के बाद cves_fetcher.py को फिर से चलाया जाना चाहिए।

root@kitploit:~
python3 scripts/codeql_docs_fetcher.py
python3 scripts/cwe_fetcher.py
python3 scripts/cves_fetcher.py

त्वरित प्रारंभ

स्थापना निर्देशों का पालन करने के बाद, त्वरित प्रारंभ किसी दिए गए CVE के लिए CodeQL क्वेरी संश्लेषित करने का एक उदाहरण दिखाता है।

  1. CVE रिपॉजिटरी और CVE फिक्स डिफ प्राप्त करें।
root@kitploit:~
python3 scripts/get_cve_repos.py --cve CVE-2025-27818
  1. CVE के लिए CodeQL डेटाबेस बनाएँ।
root@kitploit:~
python3 scripts/build_codeql_dbs.py --cve-id CVE-2025-27818
  1. RAG डेटाबेस भरें या अपडेट करें।
root@kitploit:~
python3 scripts/cves_fetcher.py
  1. पाइपलाइन चलाएँ।
root@kitploit:~
./run_cve.sh CVE-2025-27818

CVE ID के बाद अतिरिक्त विकल्प पारित किए जा सकते हैं:

root@kitploit:~
./run_cve.sh CVE-2025-27818 --model sonnet-4.5 --max-iteration 10

उपयोग

नीचे QLCoder के लिए उपलब्ध कॉन्फ़िगरेशन दिए गए हैं।

टाइमआउट: प्रत्येक एजेंट संदर्भ विंडो में एक डिफ़ॉल्ट शेल टाइमआउट (जैसे 300s) होता है। "Context window failed" त्रुटियों का सामना करने पर आवश्यकता अनुसार संबंधित बैकएंड की निष्पादन विधि में टाइमआउट बढ़ाएँ।

नोट: एजेंट समर्थन पेपर वातावरण में सूचीबद्ध संस्करणों के विरुद्ध परीक्षण किया गया है। कोडिंग एजेंटों के नए संस्करणों के लिए बैकएंड में अपडेट की आवश्यकता हो सकती है। नए संस्करणों, अन्य कोडिंग एजेंटों और अधिक मॉडलों के लिए समर्थन जोड़ने वाले PR स्वागत योग्य हैं!

मॉडल (--model): sonnet-4 (डिफ़ॉल्ट), sonnet-4.5 (Claude); gemini-2.5-pro, gemini-2.5-flash (Gemini); gpt-5 (Codex)

एजेंट (--agent): claude (डिफ़ॉल्ट), gemini (Gemini CLI), codex (OpenAI मॉडल और ओपन सोर्स मॉडल)

एब्लेशन मोड (--ablation-mode):

मोडविवरणउपलब्ध एजेंट
fullसभी QLCoder उपकरण सक्षम (डिफ़ॉल्ट) और AST निष्कर्षणClaude Code, Codex (GPT, GPT-OSS), Gemini
no_toolsकोई उपकरण नहीं और कोई AST निष्कर्षण नहींClaude Code, Codex (GPT, GPT-OSS), Gemini
no_lspकोई CodeQL LSP उपकरण नहींClaude Code
no_docsकोई CodeQL दस्तावेज़ीकरण पुनर्प्राप्ति नहींClaude Code
no_astडिफ से कोई AST निष्कर्षण नहींClaude Code

मॉडल-विशिष्ट नोट (GPT-5)

डिफ़ॉल्ट रूप से हम तर्क प्रयास को मध्यम पर सेट करते हैं। आप इसे codex_backend.py में ओवरराइड कर सकते हैं।

कोई उपकरण नहीं, कोई दस्तावेज़ मोड नहीं (पेपर विशिष्टताएँ)

जब CVE विवरण प्राप्त करने के लिए Chroma का उपयोग नहीं किया जाता है, तो एक पूर्व-प्राप्त विवरण सीधे task.cve_description के माध्यम से प्रॉम्प्ट में इंजेक्ट किया जाता है। विवरणों की एक स्थानीय JSON फ़ाइल भरने के लिए scripts/cves_fetcher.py का उपयोग करें:

root@kitploit:~
python scripts/cves_fetcher.py --descriptions-file data/cve_descriptions.json 

फ़ाइल CVE IDs को उनके CVE विवरण स्ट्रिंग्स से मैप करती है और प्रत्येक रन पर इसमें जोड़ा जाता है (मौजूदा प्रविष्टियाँ छोड़ दी जाती हैं)। --ablation-mode no_tools या --ablation-mode no_docs के साथ चलाते समय, QLCoder स्वचालित रूप से इस फ़ाइल को लोड करता है और विश्लेषण किए जा रहे CVE के लिए task.cve_description सेट करता है।

विकास उपकरण

QLCoder का उपयोग करते समय निम्नलिखित उपकरण अनुशंसित हैं:

QLCoder रन से संग्रह हटाएँ - Chroma को साफ करने के लिए, यहाँ QLCoder का उपयोग करने से संग्रह हटाने के लिए एक स्क्रिप्ट है।

chromadb-ops - Chroma का निरीक्षण और रखरखाव करने के लिए CLI उपकरण।

root@kitploit:~
# chroma को साफ करने के लिए उपयोगी
chops db clean data/chroma_db

उदाहरण

QLCoder द्वारा उत्पन्न क्वेरी उदाहरण

  • Java
  • C

QLCoder MCP कॉन्फ़िगरेशन

यहाँ QLCoder का उपयोग करते समय MCP कॉन्फ़िगरेशन के उदाहरण दिए गए हैं। कॉन्फ़िगरेशन एजेंट के वर्कस्पेस में इन फ़ाइलों के समान होना चाहिए।

  • Claude Code
  • Codex
  • Gemini CLI

पेपर वातावरण

QLCoder पेपर में परिणाम उत्पन्न करने के लिए निम्नलिखित संस्करणों का उपयोग किया गया था।

उपकरणसंस्करण
CodeQL2.22.2
Claude Code1.0.120
Gemini CLI0.6.0
Codex CLI0.38.0

योगदान

हम किसी भी योगदान, पुल रिक्वेस्ट या मुद्दों का स्वागत करते हैं! यदि आप योगदान देना चाहते हैं, तो कृपया या तो एक नई पुल रिक्वेस्ट या मुद्दा दर्ज करें। मौजूदा मुद्दे को भी उठाने के लिए स्वतंत्र महसूस करें।

टीम

QLCoder कॉर्नेल विश्वविद्यालय, जॉन्स हॉपकिन्स विश्वविद्यालय और पेंसिल्वेनिया विश्वविद्यालय के शोधकर्ताओं के बीच एक सहयोगात्मक प्रयास है। यदि आपके कोई प्रश्न हैं तो कृपया हमसे संपर्क करें।

Claire Wang - पेंसिल्वेनिया विश्वविद्यालय में CS PhD छात्रा

Ziyang Li - जॉन्स हॉपकिन्स विश्वविद्यालय में प्रोफेसर

Saikat Dutta - कॉर्नेल विश्वविद्यालय में प्रोफेसर

Mayur Naik - पेंसिल्वेनिया विश्वविद्यालय में प्रोफेसर

उद्धरण

हमारे ICLR'26 पेपर को उद्धृत करने पर विचार करें:

root@kitploit:~
@misc{wang2025qlcoderquerysynthesizerstatic,
      title={QLCoder: A Query Synthesizer For Static Analysis of Security Vulnerabilities}, 
      author={Claire Wang and Ziyang Li and Saikat Dutta and Mayur Naik},
      year={2025},
      eprint={2511.08462},
      archivePrefix={arXiv},
      primaryClass={cs.CR},
      url={https://arxiv.org/abs/2511.08462}, 
}

Arxiv लिंक

संबद्ध परियोजनाएँ

निम्नलिखित QLCoder लेखकों से संबद्ध परियोजनाएँ हैं। उन्हें देखने के लिए स्वतंत्र महसूस करें।

  • IRIS - किसी दिए गए रिपॉजिटरी के लिए मौजूदा CodeQL सुरक्षा क्वेरी में जोड़े गए LLM-पहचाने गए स्रोत/सिंक। QLCoder कुछ IRIS विचारों का विस्तार है। Arxiv लिंक
  • CWE-Bench-Java - Java सुरक्षा भेद्यताओं का बेंचमार्क जिसमें CVE मेटाडेटा, रिपॉजिटरी और स्रोत/सिंक लेबल शामिल हैं।
टूल डाउनलोड करें