Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/neuralprogram/qlcoder
Análise EstáticaScanners de VulnerabilidadesAnálise de VulnerabilidadesAnálise de CódigoPapers e PesquisaEngenharia Reversa Assistida por IA
GitHubneuralprogram/qlcoder

qlcoder

# Estrutura Agêntica para Sintetizar Consultas CodeQL

Ver Repositório
287104há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

QLCoder

Framework Agêntico para Sintetizar Consultas CodeQL

Índice

  • Visão Geral
  • Instalação
    • Docker (Recomendado)
    • Nativo (Linux)
  • Uso
  • Início Rápido
  • Ferramentas de Desenvolvimento
  • Exemplos
  • Ambiente do Artigo
  • Contribuições
  • Equipe
  • Citação
  • Projetos Afiliados

Visão Geral

QLCoder Iterative Refinement

QLCoder é um framework para usar LLMs na síntese de consultas CodeQL de ponta a ponta para detecção de vulnerabilidades. Dados os metadados de uma CVE existente, um LLM e um agente de codificação, o QLCoder sintetiza iterativamente uma consulta CodeQL para detectar a CVE existente. A consulta inicial é um template de consulta de caminho CodeQL preenchido por uma AST extraída do diff. Durante a síntese da consulta, o agente de codificação tem acesso a ferramentas para interagir com um banco de dados RAG e o servidor de linguagem CodeQL. Posteriormente, a consulta pode ser usada para análise multivariante, testes de regressão ou como orientação para escrever consultas CodeQL.

Instalação

Docker (Recomendado)

Passo 1: Instalar CodeQL

Nota - No artigo, foi usada a versão 2.22.2 do CodeQL. No entanto, qualquer versão (e linguagem) pode ser usada. O QLCoder armazena os pacotes QL da versão local do CodeQL no banco de dados vetorial. Os caminhos são configurados em .env.

Baixe uma versão apropriada do bundle de ações do CodeQL na página de releases do CodeQL Action.

  • Para a versão mais recente: Visite o último release e baixe o bundle apropriado para o seu SO:

    • codeql-bundle-osx64.tar.gz para macOS
    • codeql-bundle-linux64.tar.gz para Linux
  • Para uma versão específica (ex.: 2.22.2): Vá para a página de releases do CodeQL Action, encontre o release marcado como codeql-bundle-v2.22.2 e baixe o bundle apropriado para a sua plataforma.

Extraia para ~/codeql (ou outro caminho — atualize CODEQL_HOME em .env de acordo):

tar -xzf codeql-bundle-<platform>.tar.gz -C ~/

Passo 2: Instalar o servidor MCP do CodeQL LSP

Clone o servidor MCP do CodeQL LSP e compile-o.

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

Passo 3: Configurar e iniciar os serviços

cp .env.example .env
echo "APP_UID=$(id -u)" >> .env
echo "APP_GID=$(id -g)" >> .env

Preencha sua chave de API e os caminhos do CodeQL em .env:

ANTHROPIC_API_KEY=...

# Os caminhos dos pacotes QL dependem da sua versão do CodeQL.
# Encontre os números de versão com:
#   ls ~/codeql/qlpacks/codeql/java-queries/   → use para SECURITY_QLPACK_PATH
#   ls ~/codeql/qlpacks/codeql/java-all/        → use para 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

Em seguida, inicie o aplicativo QLCoder e o ChromaDB:

docker compose up -d

Passo 4: Recuperar repositórios de CVEs

A CVE deve estar listada em data/project_info.csv. Isso clona o repositório no commit com bug e gera o diff da correção.

docker compose run --rm app python3 scripts/get_cve_repos.py --cve CVE-2025-27818
# ou várias de uma vez:
docker compose run --rm app python3 scripts/get_cve_repos.py --cves CVE-2025-27818,CVE-2025-0851
# processar CVEs de um arquivo (um ID de CVE por linha)
docker compose run --rm app python3 scripts/get_cve_repos.py --cve-file cves.txt
# processar todas as CVEs
docker compose run --rm app python3 scripts/get_cve_repos.py --all
# forçar a regeneração de diffs existentes
docker compose run --rm app python3 scripts/get_cve_repos.py --cve CVE-2018-9159 --force

Passo 5: Criar bancos de dados CodeQL

Os bancos de dados são criados com --build-mode=none — nenhuma toolchain de build é necessária.

# para construir os bancos de dados CodeQL de uma CVE específica
docker compose run --rm app python3 scripts/build_codeql_dbs.py --cve-id CVE-2025-27818

Isso cria cves/CVE-2025-27818/CVE-2025-27818-vul e cves/CVE-2025-27818/CVE-2025-27818-fix.

# para construir os bancos de dados CodeQL de todos os repositórios de CVEs obtidos
docker compose run --rm app python3 scripts/build_codeql_dbs.py

Passo 6: Popular o banco de dados RAG

Execute estes scripts para popular o banco de dados vetorial. codeql_docs_fetcher.py e cwe_fetcher.py são configurações únicas; cves_fetcher.py deve ser executado novamente após adicionar novas CVEs.

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

Nativo (Linux)

Passo 1: Instalar CodeQL

Nota - No artigo, foi usada a versão 2.22.2 do CodeQL. No entanto, qualquer versão (e linguagem) pode ser usada. O QLCoder armazena os pacotes QL da versão local do CodeQL no banco de dados vetorial. Os caminhos são configurados em .env.

Baixe uma versão apropriada do bundle de ações do CodeQL na página de releases do CodeQL Action.

  • Para a versão mais recente: Visite o último release e baixe o bundle apropriado para o seu SO:

    • codeql-bundle-linux64.tar.gz para Linux
  • Para uma versão específica (ex.: 2.22.2): Vá para a página de releases do CodeQL Action, encontre o release marcado como codeql-bundle-v2.22.2 e baixe o bundle apropriado para a sua plataforma.

Após o download, extraia o arquivo no diretório raiz do projeto:

tar -xzf codeql-bundle-<platform>.tar.gz

Isso deve criar um subdiretório codeql/ com o executável codeql dentro.

Adicione o caminho deste executável à sua variável de ambiente PATH:

export PATH="$PWD/codeql:$PATH"

Passo 2: Instalar o servidor MCP do CodeQL LSP

Clone o servidor MCP do CodeQL LSP e compile-o.

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

Passo 3: Configurar o ambiente Conda

conda env create -f environment.yml
conda activate qlcoder

Passo 4: Configurar .env

cp .env.example .env

Preencha sua chave de API e os caminhos do CodeQL em .env:

ANTHROPIC_API_KEY=...
CODEQL_HOME=~/codeql
CODEQL_LSP_MCP_HOME=~/codeql-lsp-mcp

# Os caminhos dos pacotes QL dependem da sua versão do CodeQL.
# Encontre os números de versão com:
#   ls ~/codeql/qlpacks/codeql/java-queries/   → use para SECURITY_QLPACK_PATH
#   ls ~/codeql/qlpacks/codeql/java-all/        → use para 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

Passo 5: Recuperar repositórios de CVEs

A CVE deve estar listada em data/project_info.csv. Isso clona o repositório no commit com bug e gera o diff da correção.

Baixar ferramenta