
Stack d'automatisation de sonde volante pour hacker matériel, découverte de cibles pilotée par agent, cartographie microscopique, mouvement CNC surveillé pour la sécurité, révision des sondes, et test de broches contrôlé.
AutoProber est la stack d'automatisation de sonde volante pour hackers matériels, offrant à votre agent tout ce dont il a besoin pour passer de « il y a une nouvelle cible sur le plateau » au sondage individuel de broches en toute sécurité.

Vidéo de démonstration : https://gainsec.com/autoprober-demo-mp4/




Tout le matériel peut être contrôlé via le tableau de bord web, des scripts Python, ou par l'agent lui-même.

Ce dépôt est un candidat de version autonome avec code source disponible. Il contient le code de contrôle Python, le tableau de bord, les fichiers CAO et la documentation nécessaires pour créer votre propre AutoProber.
Ce projet peut déplacer du matériel physique. Traitez-le comme un système de contrôle de machine, pas comme une application web normale.
La conception de sécurité requise est :
Pn:P est ignoré. La broche de sonde CNC n'est pas une butée de fin de course de confiance.Lisez docs/safety.md et docs/operations.md avant d'utiliser le matériel.
apps/ Scripts orientés opérateur et point d'entrée du tableau de bord Flask
autoprober/ Paquet Python réutilisable pour CNC, oscilloscope, microscope, journalisation, sécurité
dashboard/ Tableau de bord web monopage
docs/ Architecture, références des appareils, opérations et guide de sécurité
cad/ Fichiers STL imprimables pour la tête d'outil personnalisée actuelle
config/ Exemples de fichiers d'environnement/configuration
AGENTS.md Règles de sécurité pour l'agent/opérateur
LICENSE Licence PolyForm Noncommercial 1.0.0 et contact commercial
pyproject.toml Métadonnées du projet Python
uv.lock Résolution verrouillée des dépendances Python
L'architecture de projet testée utilise :
mjpg_streamercad/Les hypothèses d'exécution par défaut sont documentées dans les docs des appareils. Remplacez-les par vos propres paramètres de laboratoire avant utilisation.
Pour une liste de matériel orientée achat, voir docs/BOM.md.
Voici les pièces spécifiques ou classes de pièces utilisées pour la version prototype. Vérifiez les listes actuelles, dimensions, tension et compatibilité des connecteurs avant d'acheter.
Mon assemblage :
cad/Optionnel / interchangeable :
flowchart LR
Operator[Opérateur] --> Dashboard[Tableau de bord Web]
Dashboard --> Apps[Applications Python]
Apps --> CNC[CNC GRBL sur USB série]
Apps --> Microscope[Microscope USB via mjpg-streamer]
Apps --> Scope[Oscilloscope sur LAN / SCPI]
Apps --> Outlet[Prise réseau LAN optionnelle]
Endstop[Butée optique] --> ScopeC4[Tension de sécurité C4]
Pogo[Mesure Pogo] --> ScopeC1[Mesure C1]
ScopeC4 --> Apps
ScopeC1 --> Apps
flowchart TD
Preflight[Pré-vol] --> SafetyCheck{Canal 4 dégagé ?}
SafetyCheck -- non --> Stop[État STOP]
SafetyCheck -- oui --> Motion[Mouvement surveillé]
Motion --> Monitor[Thread EndstopMonitor >= 10 Hz]
Monitor --> C4{C4 dégagé ?}
C4 -- oui --> Capture[Capture microscope]
C4 -- non --> FeedHold[Arrêt d'avance immédiat]
FeedHold --> Stop
Capture --> Stitch[Assemblage / Carte]
Stitch --> Review[Revue manuelle des sondages]
Review --> Approved{Cible approuvée et décalage de sonde mesuré ?}
Approved -- non --> Stop
Approved -- oui --> Probe[Mouvement de sonde borné]
stateDiagram-v2
[*] --> Running
Running --> STOP: C4 déclenché / défaut C4 / alarme CNC / broche limite réelle
STOP --> Report: enregistrer tension, statut, action
Report --> WaitForOperator: aucun mouvement de récupération automatique
WaitForOperator --> Running: l'opérateur efface explicitement la condition
Installer les dépendances :
uv sync
Démarrer le tableau de bord sur un hôte matériel configuré :
PYTHONPATH=. python3 apps/dashboard.py
Le tableau de bord utilise par défaut le port 5000.
Commencez par config/autoprober.example.env. Ne publiez pas les IP, noms d'hôte, identifiants, fichiers d'étalonnage ou images de cibles capturées spécifiques à votre laboratoire sauf si vous avez l'intention de les diffuser.
Les valeurs importantes configurables au runtime :
AUTOPROBER_LOG_PATH : chemin du journal d'exécutionAUTOPROBER_RUNTIME_ROOT : répertoire d'état pour l'étalonnage, le flat-field et l'exécutionAUTOPROBER_MICROSCOPE_SNAPSHOT_URL : point d'accès pour la capture d'écran du microscopeAUTOPROBER_SCOPE_HOST / AUTOPROBER_SCOPE_PORT : point d'accès SCPI de l'oscilloscope5000Ne commitez pas les fichiers d'environnement locaux contenant des hôtes, chemins ou données de cibles spécifiques au laboratoire.
Ce candidat de version exclut intentionnellement :
.venv, __pycache__, artefacts PlaywrightVoir RELEASE_MANIFEST.md pour les détails.
Ce projet est disponible avec code source sous la licence PolyForm Noncommercial 1.0.0.
Vous pouvez utiliser, modifier et partager ce projet à des fins non commerciales.
L'utilisation commerciale nécessite une licence commerciale payante séparée.
Pour une licence commerciale, contactez : [email protected]
Ce projet est destiné à un travail de laboratoire contrôlé sur des équipements et des cibles que vous êtes autorisé à tester. Ne l'utilisez pas pour sonder, endommager ou analyser des systèmes sans permission.