T-70 est un projet Rust inspiré de l' unité d'infanterie de combat automatisée Cyberdyne Series 70 (« The Terminator »). Le projet effectue une vérification faciale à l'exécution à l'aide d'OpenCV via les liaisons opencv-rust et intègre un CascadeClassifier avec les modèles MobileNetV2 pour la détection des visages et la comparaison des similarités. Le système est conçu pour fonctionner comme un exécutable autonome, ce qui le rend idéal pour un déploiement dans des environnements où la vérification faciale en temps réel est essentielle.
Détection de VM : Le projet inclut une logique de détection de machine virtuelle pour déterminer si l'exécutable s'exécute dans un environnement virtualisé. Si une VM est détectée, l'exécutable s'auto-supprime.
Détection et comparaison des visages : le système capture des images à l'aide d'une caméra connectée, détecte les visages et compare les intégrations du flux en direct avec une image de référence pour calculer les scores de similarité.
Action automatisée : en fonction du score de similarité, le système peut exécuter un shellcode si une correspondance est trouvée.
main.rs
: Le point d'entrée principal du projet.
Modules :
camera
: gère l’initialisation et la saisie de la caméra.
classifier
: Gère l'initialisation du classificateur de détection de visage.
face_detection
: Responsable de la détection des visages et du traitement de l'image de référence.
similarity
: Calcule les scores de similarité entre les visages détectés et les visages de référence.
Fonctions externes :
Des fonctions telles que GetProcessCountViaSnapShot
, GetUniqueUserCountViaSnapshot
et VmDetection
sont intégrées au projet pour des fonctionnalités d'exécution avancées.
Ce projet dépend des éléments suivants :
OpenCV : Plus précisément, une version compilée statiquement de la bibliothèque OpenCV est requise.
liaisons opencv-rust : fournit les liaisons Rust à OpenCV. Consultez le référentiel GitHub opencv-rust pour plus d'informations.
Avant de construire le projet, assurez-vous qu'OpenCV est compilé de manière statique. Suivez la documentation OpenCV pour configurer une version compilée statiquement de la bibliothèque sur votre système.
Dans le répertoire scripts
, vous trouverez des scripts Python permettant de télécharger des versions hors ligne des modèles MobileNetV2 et CascadeClassifier. Ceux-ci sont nécessaires pour exécuter les composants de détection faciale et de comparaison.
Une fois OpenCV compilé et les modèles téléchargés, vous pouvez construire le projet en utilisant Cargo :
construction de la cargaison --release
Après avoir construit le projet, vous pouvez exécuter l'exécutable pour démarrer le processus de détection et de vérification des visages :
./target/release/T-70.exe
Un merci spécial à twistedfall pour la maintenance du projet opencv-rust
, qui était essentiel pour le développement du système T-70.
Le T-70 est sous licence MIT.
Inspiré de l'unité d'infanterie de combat automatisée Cyberdyne Series 70 ("The Terminator").
Plus d'informations : Cyberdyne Series 70 Terminator