Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
bidi-guard — Analyser le code pour détecter les caractères Unicode bidirectionnels invisibles (prévention d'attaque Trojan Source, CVE-2021-42574) | Kitploit
Outils/GitHubGitHub/moshe-ship/bidi-guard
Analyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeDevSecOpsSécurité de la Chaîne LogistiqueApprentissage et Éducation
GitHubmoshe-ship/bidi-guard

bidi-guard

Analyser le code pour détecter les caractères Unicode bidirectionnels invisibles (prévention d'attaque Trojan Source, CVE-2021-42574)

Voir le dépôt
5il y a 4 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

bidi-guard

Scannez le code pour détecter les caractères Unicode bidirectionnels invisibles

MIT License Python 3.9+


Pourquoi cela existe

Les caractères Unicode bidirectionnels invisibles peuvent faire que le code source s'affiche différemment de son exécution. Il s'agit de CVE-2021-42574 — l'attaque Trojan Source.

Un attaquant insère des caractères qui inversent la direction du texte. Lors d'une revue de code, vous voyez :

root@kitploit:~
access_level = "admin"

Mais le compilateur voit :

root@kitploit:~
access_level = "user"

Les caractères sont invisibles. Votre éditeur ne les affichera pas. Votre relecteur ne les détectera pas. bidi-guard le fera.

Installer

root@kitploit:~
pip install bidi-guard

Démarrage rapide

root@kitploit:~
# Analyser recursivement le répertoire courant
bidi-guard scan .

# Analyser un fichier spécifique
bidi-guard scan src/auth.py

Trouve tous les caractères Unicode bidirectionnels, affiche leur position exacte, leur contexte et leur sévérité.

Commandes

Intégration 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

Ajoutez à votre .pre-commit-config.yaml :

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

Caractères détectés

Les 16 caractères de contrôle Unicode bidirectionnels :

Les caractères marqués Élevé ou Critique peuvent réordonner activement le texte affiché — ce sont ceux utilisés dans les attaques Trojan Source.

En tant que bibliothèque

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}")

Pourquoi ne pas simplement utiliser grep ?

Ces caractères sont invisibles. Littéralement invisibles :

root@kitploit:~
grep "RLO" file.py    # ne trouve rien
cat file.py            # semble tout à fait normal

bidi-guard vous montre ce que grep ne peut pas : le caractère exact, sa position, le contexte environnant, le niveau de sévérité et ce qu'il fait. Il peut également corriger automatiquement en les supprimant.

Licence

MIT — Musa the Carpenter


Proposé par la Saudi AI Community — d'abord pour les Arabes, et pour le monde entier.

Télécharger l’outil
CommandeAction
scanAnalyse les fichiers à la recherche de caractères bidi, affiche les résultats avec contexte
ciMode CI — se termine avec un code non nul si des caractères dangereux sont trouvés
fixSupprime tous les caractères bidi des fichiers (interactif par défaut)
explainMontre ce que fait chaque caractère bidi avec des exemples visuels
initGénère un fichier de configuration .bidi-guard.yml pour votre projet
Point de codeNomAbréviationSévérité
U+200EMarque gauche-à-droiteLRMFaible
U+200FMarque droite-à-gaucheRLMFaible
U+061CMarque de lettre arabeALMFaible
U+200DJoncteur de largeur nulleZWJFaible
U+200CNon-joncteur de largeur nulleZWNJFaible
U+2066Isolat gauche-à-droiteLRIMoyen
U+2067Isolat droite-à-gaucheRLIÉlevé
U+2068Isolat fort premierFSIÉlevé
U+2069Isolat directionnel popPDIMoyen
U+202AEncapsulation gauche-à-droiteLREMoyen
U+202BEncapsulation droite-à-gaucheRLEÉlevé
U+202CFormatage directionnel popPDFMoyen
U+202DRemplacement gauche-à-droiteLROÉlevé
U+202ERemplacement droite-à-gaucheRLOCritique
U+2028Séparateur de ligneLSMoyen
U+2029Séparateur de paragraphePSMoyen