Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
bidi-guard — Varre código em busca de caracteres Unicode bidirecionais invisíveis (prevenção contra ataque Trojan Source, CVE-2021-42574) | Kitploit
Ferramentas/GitHubGitHub/moshe-ship/bidi-guard
Análise EstáticaAnálise de VulnerabilidadesAnálise de CódigoDevSecOpsSegurança da Cadeia de SuprimentosAprendizado e Educação
GitHubmoshe-ship/bidi-guard

bidi-guard

Varre código em busca de caracteres Unicode bidirecionais invisíveis (prevenção contra ataque Trojan Source, CVE-2021-42574)

Ver Repositório
5há 4 mesesAinda 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
Site

bidi-guard

Escaneie código em busca de caracteres Unicode bidirecionais invisíveis

MIT License Python 3.9+


Por que isso existe

Caracteres Unicode bidirecionais invisíveis podem fazer o código fonte ser exibido de forma diferente do que ele executa. Isso é o CVE-2021-42574 — o ataque Trojan Source.

Um atacante insere caracteres que invertem a direção do texto. Em uma revisão de código, você vê:

root@kitploit:~
access_level = "admin"

Mas o compilador vê:

root@kitploit:~
access_level = "user"

Os caracteres são invisíveis. Seu editor não os mostrará. Seu revisor não os perceberá. bidi-guard vai.

Instalar

root@kitploit:~
pip install bidi-guard

Início Rápido

root@kitploit:~
# Escaneia o diretório atual recursivamente
bidi-guard scan .

# Escaneia um arquivo específico
bidi-guard scan src/auth.py

Encontra todos os caracteres Unicode bidirecionais, mostra sua posição exata, contexto e gravidade.

Comandos

Integração CI

GitHub Action

root@kitploit:~
name: BiDi Guard
on: [push, pull_request]
jobs:
  bidi-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.11"
      - run: pip install bidi-guard
      - run: bidi-guard ci .

Pre-commit

Adicione ao seu .pre-commit-config.yaml:

root@kitploit:~
repos:
  - repo: https://github.com/Moshe-ship/bidi-guard
    rev: v0.1.0
    hooks:
      - id: bidi-guard

Caracteres Detectados

Todos os 16 caracteres de controle bidirecional Unicode:

Caracteres marcados como Alta ou Crítica podem reordenar ativamente o texto exibido — estes são os usados em ataques Trojan Source.

Como Biblioteca

root@kitploit:~
from bidi_guard import scan_file, Finding

findings = scan_file("src/auth.py")
for f in findings:
    print(f"{f.char_name} at line {f.line}:{f.col} — severity: {f.severity}")

Por que não apenas grep?

Esses caracteres são invisíveis. Literalmente invisíveis:

root@kitploit:~
grep "RLO" file.py    # não encontra nada
cat file.py            # parece completamente normal

bidi-guard mostra o que o grep não pode: o caractere exato, sua posição, contexto ao redor, nível de gravidade e o que ele faz. Também pode corrigir automaticamente removendo-os.

Licença

MIT — Musa, o Carpinteiro


Trazido a você pela Comunidade Saudita de IA — para os árabes primeiro, e o mundo em geral.

Baixar ferramenta
ComandoO que faz
scanEscaneia arquivos em busca de caracteres bidi, mostra resultados com contexto
ciModo CI — sai com código diferente de zero se caracteres perigosos forem encontrados
fixRemove todos os caracteres bidi dos arquivos (interativo por padrão)
explainMostra o que cada caractere bidi faz com exemplos visuais
initGera um arquivo de configuração .bidi-guard.yml para o seu projeto
Ponto de CódigoNomeAbreviaçãoGravidade
U+200EMarca da Esquerda para a DireitaLRMBaixa
U+200FMarca da Direita para a EsquerdaRLMBaixa
U+061CMarca de Letra ÁrabeALMBaixa
U+200DJuntador de Largura ZeroZWJBaixa
U+200CNão Juntador de Largura ZeroZWNJBaixa
U+2066Isolador da Esquerda para a DireitaLRIMédia
U+2067Isolador da Direita para a EsquerdaRLIAlta
U+2068Primeiro Isolador ForteFSIAlta
U+2069Isolador Direcional PopPDIMédia
U+202AIncorporação da Esquerda para a DireitaLREMédia
U+202BIncorporação da Direita para a EsquerdaRLEAlta
U+202CFormatação Direcional PopPDFMédia
U+202DSobrescrita da Esquerda para a DireitaLROAlta
U+202ESobrescrita da Direita para a EsquerdaRLOCrítica
U+2028Separador de LinhaLSMédia
U+2029Separador de ParágrafoPSMédia