Skip to content

totocehero/HardShadow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HardShadow — Guide d'installation du pilote (FR)

Respire profondément — ce README décrit, pas-à-pas, tout ce qu’il faut faire pour signer, installer et tester le pilote kernel HardShadow.sys sur une machine de test. Suis les sections dans l’ordre.

IMPORTANT : les instructions ci‑dessous réduisent temporairement la sécurité (test-signing, désactivation de Secure Boot ou Memory Integrity). Ne les applique QUE sur des machines de TEST.

Contenu du dépôt

  • HardShadow.sys — binaire du pilote (généré dans .\build\).
  • signe.ps1 — script PowerShell fourni pour copier, signer (auto‑signé) et tenter de charger le pilote.
  • HardShadow.inf — INF d’installation (si présent).
  • hardShadow.c — code source du pilote.

Prérequis

  • Windows x64 (avec les droits Administrateur).
  • Visual Studio 2022 pour reconstruire le projet (si nécessaire) — ouvrir la solution et exécuter Build > Build Solution.
  • PowerShell lancé en mode Administrateur.
  • (Optionnel) Windows SDK / signtool.exe pour vérifications avancées.

Vérifications initiales

Ouvre PowerShell en administrateur et exécute les commandes suivantes pour connaître l’état courant :

  • Vérifier l’état de Secure Boot (si UEFI) :

    Get-SecureBootPolicy
  • Vérifier si le mode testsigning est activé :

    bcdedit /enum testsigning
  • Vérifier l’intégrité mémoire (Memory integrity / Core isolation) — interface graphique recommandée :

    • Ouvre Windows Security → Device security → Core isolation details → Memory integrity.
    • Si tu veux uniquement vérifier via registre (avancé), limite-toi aux lectures ; modifications manuelles peuvent nécessiter un redémarrage et peuvent être risquées.

Mode développement (test rapide)

Si tu veux tester rapidement ton pilote localement sans passer par attestation Microsoft, tu as 3 options (choisis UNE seule et fais un reboot si nécessaire) :

Option A — Activer test-signing (cycle rapide)

bcdedit /set testsigning on

Pour désactiver ensuite :

bcdedit /set testsigning off

Option B — Désactiver Memory Integrity (Core isolation) — recommandé via UI

  • Ouvre Windows Security → Device security → Core isolation details → Désactive Memory integrity → Redémarre.
  • Éviter de modifier directement le registre sauf si tu sais ce que tu fais.

Option C — Désactiver Secure Boot (nécessite UEFI firmware)

  • Impossible depuis Windows : redémarre dans le firmware UEFI/BIOS et désactive Secure Boot manuellement. Sauvegarde et redémarre.
  • Procédure dépend du fabricant (Dell/HP/ASUS/Lenovo…). Utilise une VM sans Secure Boot pour tests rapides.

Utiliser le script signe.ps1 (procédure fournie)

Le script automatise :

  • création d’un certificat auto‑signé (si absent),
  • import du certificat dans LocalMachine\Root et TrustedPublisher,
  • signature avec Set-AuthenticodeSignature,
  • copie du .sys vers C:\Windows\System32\drivers,
  • création et tentative de démarrage du service kernel (sc create / sc start).
  1. Ouvre PowerShell en mode Administrateur.
  2. Positionne-toi dans le dossier du projet contenant signe.ps1 et HardShadow.sys.
  3. Permets l’exécution temporaire de scripts et lance :
    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
    .\signe.ps1
  4. Observe les messages affichés. Le script vérifie la signature, importe le certificat si nécessaire, copie le pilote et tente sc create / sc start. Vérifie les logs si l’activation échoue.

Signer manuellement (exemple PowerShell)

Si tu préfères signer manuellement ou vérifier les étapes, voici une procédure type (exemple pédagogique — manipule avec soin) :

  1. Créer un certificat auto-signé pour le code signing :
    New-SelfSignedCertificate -Type CodeSigning -Subject "CN=HardShadowDriver" -KeySize 2048 -HashAlgorithm sha256 -CertStoreLocation "cert:\LocalMachine\My"
  2. Exporter le certificat (optionnel) puis l’importer dans Trusted Root et TrustedPublisher :
    # Récupérer le certificat nouvellement créé
    $cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -eq "CN=HardShadowDriver" }
    
    # Exporter en .cer
    Export-Certificate -Cert $cert -FilePath "C:\chemin\vers\HardShadowDriver.cer" -Force
    
    # Importer dans les magasins nécessaires
    Import-Certificate -FilePath "C:\chemin\vers\HardShadowDriver.cer" -CertStoreLocation "Cert:\LocalMachine\Root"
    Import-Certificate -FilePath "C:\chemin\vers\HardShadowDriver.cer" -CertStoreLocation "Cert:\LocalMachine\TrustedPublisher"
  3. Signer le binaire .sys (si le fichier est déjà copié dans drivers) :
    Set-AuthenticodeSignature -FilePath "C:\Windows\System32\drivers\HardShadow.sys" -Certificate $cert
  4. Vérifier la signature (optionnel avec signtool) :
    signtool verify /v /pa "C:\Windows\System32\drivers\HardShadow.sys"

Note : un certificat auto‑signé ne chaînera pas vers une racine Microsoft. Sur une machine avec Code Integrity en enforcement (Secure Boot activé), Windows refusera le chargement même si la signature est « valide » localement.

Copier et charger le pilote manuellement (après signature et copie)

Après avoir signé et copié le fichier vers C:\Windows\System32\drivers :

# Chemin du pilote
$driverPath = "C:\Windows\System32\drivers\HardShadow.sys"

# Création du service
sc create HardShadow type= kernel binPath= "$driverPath"

# Démarrage du service
sc start HardShadow

Après un sc start, si le chargement échoue, vérifie l’Event Viewer → System logs (sources CodeIntegrity et Service Control Manager) pour la raison exacte.

Pour un déploiement réel (machines Secure Boot)

Sur des machines avec Secure Boot / Code Integrity en enforcement, il faut un binaire signé par une autorité acceptée par Microsoft (attestation signing) :

  • Obtenir un certificat EV (Extended Validation) code‑signing.
  • Préparer le package driver (INF + .sys).
  • Soumettre le package au Windows Hardware Dev Center / Partner Center pour attestation signing.
  • Microsoft renverra un binaire/catalog signé qui chaînera vers une racine Microsoft et sera accepté par Code Integrity sur les machines Secure Boot.

Ressources utiles :

  • signtool (Windows SDK) — pour vérifications avancées.
  • Documentation Partner Center / Hardware Dev Center pour attestation signing.
  • Event Viewer → System logs (CodeIntegrity / Service Control Manager).

Conseils rapides et dépannage

  • Test sur une VM sans Secure Boot ou avec testsigning activé pour cycle rapide.
  • Vérifie toujours les logs System après un sc start — ils donnent la cause exacte du rejet.
  • Si la signature semble correcte mais le pilote est refusé, vérifie :
    • Secure Boot activé (bloque les certificats non attestés).
    • Catalogue (.cat) si tu utilises INF + catalog.
    • Chaîne de certification (certificat auto-signé ne suffit pas).
  • Ne distribue jamais un pilote kernel non-attestation-signed sur des machines en production ou avec Secure Boot activé.

Exemple résumé des commandes usuelles

# Vérifier l'état de Secure Boot
Get-SecureBootPolicy

# Vérifier si test-signing est activé
bcdedit /enum testsigning

# Activer test-signing (développement local)
bcdedit /set testsigning on

# Désactiver test-signing
bcdedit /set testsigning off

# Désactiver Memory Integrity (interface graphique recommandée)
# Ou via PowerShell (risqué, redémarrage possible nécessaire)
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Defender\Features" -Name "MemoryIntegrityEnabled" -Value 0 -Type DWord

# Désactiver Secure Boot (nécessite un accès au firmware UEFI)
# Pas de commande PowerShell, voir documentation UEFI de la machine

# Exécuter le script de signature et d'installation
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
.\signe.ps1

# Vérifier la signature du pilote (après signature)
signtool verify /v /pa "C:\Windows\System32\drivers\HardShadow.sys"

Si tu veux que je corrige une version spécifique du script signe.ps1 ou que je génère un exemple d’INF adapté à HardShadow.sys, indique le contenu actuel et je t’aiderai à l’améliorer.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors