
# Windows Analysis and Research Toolkit
⚠️ Certaines parties de ce projet ont été codées en « vibe coding » avec l'aide de l'IA, il peut donc y avoir quelques bugs. Le pilote noyau (KWinSys) ne doit être installé que dans une VM de test à des fins de recherche.

![]() Processus (mode utilisateur) |
![]() Sessions ETW |
![]() Callbacks noyau |
![]() Pool noyau |
![]() Symboles |
![]() Filtres |
| Composant | Rôle |
|---|---|
| NtWarden | Application GUI (ImGui + DirectX 11) |
| WinSys | Bibliothèque statique pour l'énumération des processus, services et réseaux |
| KWinSys | Pilote noyau pour les callbacks, SSDT, modules noyau, etc. |
| WinSysServer | Serveur TCP sans interface pour l'inspection à distance |
| Onglet | Description |
|---|---|
| Processus | Liste des processus avec vue arborescente, handles, threads, régions mémoire, modules |
| Performances | Graphiques d'utilisation en temps réel du CPU, de la RAM, du GPU et du réseau - peuvent être superposés par-dessus d'autres tâches |
| Services | Énumération des services avec état, type de démarrage, chemin du binaire |
| Réseau > Connexions | Connexions TCP/UDP avec processus propriétaire et points de terminaison distants |
| Réseau > Certificats racines | Magasin des autorités de certification racines de confiance avec sujet, émetteur, empreinte |
| Réseau > NDIS | Informations sur l'adaptateur réseau - pilote, MAC, vitesse, type de média |
| ETW | Sessions de traçage actives et fournisseurs enregistrés |
| IPC | Points de terminaison RPC et tubes nommés |
| Gestionnaire d'objets | Parcourir l'espace de noms des objets noyau - répertoires, liens symboliques, périphériques |
| Registre | Navigateur du registre avec énumération des clés/valeurs |
| Symboles | État du chargement des symboles en mode utilisateur |
| Journal | Intercepte les journaux de débogage du pilote noyau et les journaux GUI en mode utilisateur en un seul endroit |
| Onglet | Description |
|---|---|
| Objets processus | Énumération des EPROCESS, détection des processus cachés par recoupement |
| Modules | Pilotes noyau chargés avec base, taille, chemin (avec vérification LolDrivers) |
| Callbacks | Callbacks noyau (processus/thread/image/registre/objet/alimentation) + vérifications d'intégrité |
| SSDT | Entrées SSDT avec propriétaire et détection de hooks |
| Symboles | Résolution des symboles noyau et chargement des PDB |
| Pool noyau | Grandes allocations de pool, statistiques des pool tags |
| Lecture/écriture mémoire | Lecture/écriture de la mémoire noyau par adresse |
| Minuteries | Compteurs d'interruptions et de DPC par CPU |
| Filtre | Pilotes minifilter avec altitude et informations d'instance |
| Tables de descripteurs | Entrées GDT/IDT |
| Dispatch IRP | Table de dispatch IRP pour tout pilote - adresses des gestionnaires, module propriétaire |
| WFP | Pilotes de callout WFP et filtres |
| État DSE | État de l'application de la signature des pilotes |
| Politique CI | Politique d'intégrité du code et niveau d'application |
| Intégrité du noyau | Vérifier le .text du noyau par rapport à l'image sur disque |
| Hooks hyperviseur | Détection de hooks EPT via analyse temporelle |
Analyse de sécurité par processus, accessible depuis le menu contextuel des processus.
| Section | Ce qui est vérifié |
|---|---|
| Mémoire non adossée | Régions exécutables privées non adossées à aucun fichier (indicateur de shellcode) |
| Hollowing | Incohérence entre l'ImageBase du PEB et l'ImageBase de l'en-tête PE |
| Module Stomping | Sections .text en mémoire comparées aux originales sur disque |
| Syscalls directs | Instructions syscall (0F 05) trouvées hors de ntdll |
| Stubs syscall | Intégrité des stubs ntdll - octets mémoire vs copie disque propre |
| Hooks en mode utilisateur | Hooks inline (patchs JMP/CALL) dans ntdll, kernel32, etc. (nécessite capstone pour désassembler les octets analysés) |
| Jetons | Élévation, niveau d'intégrité, impersonation, privilèges suspects |
| Objets de débogage | Objets de débogage et ports de débogage sur le processus |
| Hyperviseur | Vérification du vendeur CPUID + anomalies de temporisation RDTSC/CPUID |
| Objets Job | Appartenance à un job, limites, restrictions d'interface utilisateur |
| État CFG | État d'application CFG/XFG et indicateurs de mitigation |
Prérequis : Visual Studio 2022, Windows SDK 10.0.26100.0+, WDK (pour KWinSys)
NtWarden.sln
├── NtWarden/ # GUI app
├── WinSys/ # Core library (static lib)
├── KWinSys/ # Kernel driver
└── WinSysServer/ # Remote server
NtWarden.sln dans Visual Studiox64/Release/KWinSys nécessite la signature de test ou une signature valide.
# Enable test signing (reboot required)
bcdedit /set testsigning on
# On VMs you may also need
bcdedit /set nointegritychecks on
Exécutez NtWarden en tant qu'administrateur. Le passage à l'onglet Mode noyau installera et démarrera automatiquement le pilote s'il n'est pas déjà chargé. Vous pouvez également le gérer manuellement depuis le menu Pilote.