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
SEW — Incorpora e detecta marcas d'água com chave e baseadas em estilo em código Python, Java e C++ gerado por LLM por meio de reescrita de CST, preservando a correção funcional e resistindo a ataques de edição de código. | Kitploit
Ferramentas/GitHubGitHub/suhanmen/sew
Análise EstáticaAnálise de CódigoCriptografiaPapers e PesquisaSegurança de IA
GitHubsuhanmen/sew

SEW

Incorpora e detecta marcas d'água com chave e baseadas em estilo em código Python, Java e C++ gerado por LLM por meio de reescrita de CST, preservando a correção funcional e resistindo a ataques de edição de código.

Ver Repositório
11há 13h 1mAinda não revisado

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

SEW: Marca d'água codificada por estilo de código gerado por LLM

GitHub Repo stars GitHub last commit GitHub contributors

Link do Artigo📖

📰 Notícias

  • 📢 NOVO! O artigo do SEW está disponível no arXiv: arXiv:2609.39414. (30 de setembro de 2026)
  • 📢 O código oficial do SEW foi lançado no GitHub. (30 de setembro de 2026)

🔍 Motivação

RecursoMarcas d'água em nível de token (KGW, SWEET, Unigram, STONE, STA-1)Marcas d'água post-hoc (ACW, SrcMarker, RoSeMary)✨ SEW
AcessoNo momento da decodificação (enviesa a seleção de tokens)Post-hoc (reescreve o código finalizado)Post-hoc (reescreve o código finalizado, agnóstico ao modelo)
Correção funcionalAltera o programa (trade-off entre detectabilidade e correção)Pode quebrar programas (pass@1 em Java/C++ ≈ 12% para reescrita neural)Preservada (pass@1 igual ao código sem marca d'água)
Previsibilidade—Padrões recorrentes (recuperados de 10 programas com marca d'água)Dependente da chave e do contexto (as escolhas variam com a estrutura de cada programa)
Detecção (TPR@FPR5%)14–60%31–98%⚡ 98,7–99,5%

A marcação d'água de código gerado por LLM apoia o rastreamento de proveniência. Marcas d'água que modificam a seleção de tokens durante a geração trocam detectabilidade por correção funcional, e exigem controle sobre o modelo gerador. Métodos post-hoc, em vez disso, marcam o código já concluído com transformações predefinidas ou modelos neurais treinados, mas seus padrões recorrentes tornam a marca d'água previsível entre programas, e padrões que já são comuns em código sem marca d'água são contados como evidência de marca d'água, o que causa detecções falsas. O SEW pergunta: o estilo de código de um programa já gerado pode carregar uma marca d'água que seja correta por construção, difícil de prever e calibrada em relação a código escrito por humanos?

✨ Sobre o SEW

SEW overview

O SEW (Style-Encoded Watermarking) incorpora e detecta marcas d'água em código já gerado por meio de três componentes:

  1. Regras de estilo de código com escolhas dependentes de chave e contexto. Escolhas de estilo semanticamente equivalentes coletadas de guias de estilo e regras de transformação (29 para Python, 22 para Java, 19 para C++; por exemplo, x += 1 / x = x + 1, range(n) / range(0, n), if (c) s; / if (c) { s; }) são correspondidas na árvore de sintaxe concreta (CST). Qual variante um local assume é decidido por uma chave secreta e pelo contexto estrutural do local.
  2. Calibração de preferência de estilo. A evidência de marca d'água é avaliada em relação à probabilidade de cada variante de estilo em código escrito por humanos, de modo que estilos que as pessoas já preferem contam menos.
  3. Agregação de estilo sensível ao contexto. Locais em posições estruturalmente correspondentes que recebem a mesma escolha de estilo são combinados em um único voto, de modo que aplicações repetidas de uma escolha não inflem a evidência.

A detecção precisa apenas do código suspeito e da chave — não do modelo gerador, do código original ou de qualquer registro da incorporação.

🚀 O que torna o SEW valioso?

✅ Agnóstico ao modelo e correto por construção — o SEW só reescreve locais de estilo onde ambas as variantes têm a mesma semântica, então funciona na saída de qualquer modelo e mantém o pass@1 igual ao do código sem marca d'água.

✅ Evidência calibrada — um teste binomial de Poisson com probabilidades de estilo estimadas a partir de código escrito por humanos (soluções do LeetCode, disjuntas dos dados de avaliação) mantém baixas as detecções falsas em código humano.

✅ Robusto e difícil de inferir — o SEW mantém sua detecção sob formatação, linting, remoção de comentários e renomeação de variáveis, e um adversário que observa programas com marca d'água não consegue recuperar suas escolhas de estilo da forma como recupera as das baselines post-hoc.

📈 Resultados

Resultado principal — detecção no CodeContests (TPR@FPR5% / AUROC, %), com média sobre três LLMs (Qwen3.5-9B, gemma-4-12B-it, gpt-oss-20b).

TipoMétodoPythonJavaC++
Nível de tokenKGW48,33 / 80,5643,30 / 72,3159,31 / 84,54
SWEET59,92 / 85,1841,19 / 76,5660,01 / 87,24
Unigram57,45 / 88,9736,54 / 71,3747,05 / 71,13
STONE28,09 / 62,3314,38 / 62,9523,65 / 64,79
STA-135,26 / 66,2620,93 / 61,4844,71 / 73,72
Post-hocACW90,10 / 95,05––
SrcMarker90,21 / 97,8671,52 / 93,5869,88 / 81,55
RoSeMary97,86 / 97,3231,00 / 95,4681,26 / 89,44
SEW99,49 / 99,6498,70 / 98,9999,22 / 99,38

Correção funcional (pass@1 do código com marca d'água, %; código sem marca d'água: 57,63 / 52,05 / 53,74).

MétodoPythonJavaC++
ACW56,00––
SrcMarker56,7811,8711,82
RoSeMary56,3911,7111,52
SEW57,6352,0553,74

Robustez a ataques de edição de código (TPR@FPR5%, %, com média sobre três LLMs e três linguagens; ACW: apenas Python).

MétodoSem ataqueFormataçãoLintingRemoção de comentáriosRenomeação
KGW50,3143,3149,9924,4843,26
SWEET53,7149,7953,0019,3448,83
ACW90,100,5193,5689,353,17
SrcMarker77,2077,2376,4277,2026,43
RoSeMary70,0467,0069,4270,0422,26
SEW99,1495,5798,9999,1499,14
Baixar ferramenta