
# Terminateur de processus en mode noyau utilisant un pilote BYOVD signé. Fonctionne sur toutes les versions de Windows 10/11. Sans offsets, sans PDB. Rust.
Un terminateur de processus Windows multi-version. Il charge un pilote noyau HONOR signé (MonProcessEX.sys), résout le PID de chaque processus cible, et le termine depuis le contexte noyau via un unique IOCTL. Aucun offset noyau, aucun téléchargement PDB, aucun shellcode spécifique à une build - la technique fonctionne à l'identique sur toutes les builds Windows 10 et Windows 11.
L'outil est un exécutable unique et autonome. Il installe le pilote via le Service Control Manager, effectue le kill, puis arrête et supprime le service, ne laissant aucun artefact persistant derrière lui. Les cibles sont configurables à l'exécution via un fichier de configuration, la ligne de commande, ou les valeurs par défaut intégrées.
Multi-version par conception. Un pilote, un IOCTL, une primitive de kill. Fonctionne sur toutes les builds Windows 10 et Windows 11.
1. Keep moncrush.exe and MonProcessEX.sys in the same folder.
2. Run from an elevated shell.
moncrush.exe -n "notepad.exe,calc.exe"
3. Targets die. Driver unloads itself. Done.
Aucune toolchain, aucun offset, aucune étape de build.
| Fonctionnalité | Détails |
|---|---|
| Multi-version | Fonctionne sur toutes les builds Windows 10 et Windows 11, sans offsets |
| Kill en mode noyau | Le pilote termine le PID depuis le contexte noyau |
| Contournement PPL | Le chemin de kill de MonProcessEX.sys contourne les vérifications de processus protégés |
| Pilote signé | MonProcessEX.sys est un véritable pilote HONOR signé |
| Absent des règles de blocage MS | Absent des règles de blocage de pilotes vulnérables de Microsoft |
| Autonome | Pilote installé, démarré et nettoyé via SCM |
| Zéro dépendance | Binaire Rust statique ; déposez l'exe + le pilote, exécutez |
| Configurable | targets.conf ou -n, aucune recompilation nécessaire |
| Obfusqué | Chemin du device et liste de cibles chiffrés au repos |
| Exécutable unique | Un seul binaire ; sortie console depuis un shell, silencieux en double-clic |
| Mode dry-run | Énumère les cibles et les PID avant de commettre |
| Boucle jitterée | --repeat revérifie avec un intervalle randomisé |
| Codes de sortie + JSON | Interface d'automatisation compatible C2 |
+-------------------------------------------------------------------------------------------+
| USER MODE |
| |
| moncrush.exe |
| |
| +-------------------+ +-------------------+ +---------------------+ |
| | enumerate all | | resolve target | | match against | |
| | running | -> | PID via process | -> | target list, | |
| | processes | | entry | | collect PIDs | |
| +-------------------+ +-------------------+ +----------+----------+ |
| | |
| CreateFileW("\.\MonProcessEX") | |
| DeviceIoControl(IOCTL 0x22400C) | |
| output = termination status v |
+-------------------------------------------------------------------------------------------+
| KERNEL MODE |
| |
| MonProcessEX.sys signed HONOR kernel driver |
| +---------------------------------------------------------------------------------+ |
| | | |
| | IOCTL 0x22400C -> PID termination dispatch | |
| | | | |
| | | kernel-mode process lookup | |
| | v | |
| | EPROCESS located -> terminated from kernel context | |
| | | | |
| | v | |
| | process exit path invoked | |
| | | |
| +---------------------------------------------------------------------------------+ |
| |
| CLEANUP |
| +---------------------------------------------------------------------------------+ |
| | SCM service stopped and deleted | |
| | driver unloaded, no persistent artifact | |
| +---------------------------------------------------------------------------------+ |
+-------------------------------------------------------------------------------------------+
Le pilote expose un IOCTL de kill qui termine un processus à partir de son PID. Le composant en mode utilisateur énumère les processus en cours, résout le PID de chaque cible, et le soumet via l'interface du device. Aucune structure noyau n'est touchée depuis le mode utilisateur, la technique est donc immunisée contre les changements de version de Windows.
cargo build --release --target x86_64-pc-windows-gnu
Le profil release active LTO et une seule unité de codegen. Le projet est autonome avec sa propre déclaration [workspace].
moncrush.exe [options]