«

»

jan 12

Restreindre l'accès à un répertoire

Il y a quelque temps, j'ai eu entre les mains un poste HP dont une partition contenait un espace restreint.
La plupart des constructeurs OEM réservent un espace du disque pour y stocker les images de restauration.

Détourné de son utilisation première et transposé pour une utilisation en Entreprise, on peut imaginer restreindre l'accès de certaines zones du disque par les utilisateurs.

Un peu de "reverse engineering" va nous permettre de protéger à loisir n'importe quel répertoire.

  • Enregistrer la dll ShellvRTF (téléchargeable en bas de l'article).

Placez la dll correspondant à votre architecture dans C:\windows\system32  :

    • shellvRTF.dll pour les systèmes x86
    • shellvRTF64.dll pour les systèmes x64

Lancez la commande "regsvr32 c:\windows\system32\shellvRTF.dll" ou "regsvr32 c:\windows\system32\shellvRTF64.dll" dans une fenêtre de commandes élevée.

Une fois la dll enregistrée, la clé HKEY_CLASSES_ROOT\CLSID\{7F67036B-66F1-411A-AD85-759FB9C5B0DB} est créée.
Voici son contenu au format reg :

[HKEY_CLASSES_ROOT\CLSID\{7F67036B-66F1-411A-AD85-759FB9C5B0DB}]
@="ShellViewRTF"

[HKEY_CLASSES_ROOT\CLSID\{7F67036B-66F1-411A-AD85-759FB9C5B0DB}\DefaultIcon]
@="%1"

[HKEY_CLASSES_ROOT\CLSID\{7F67036B-66F1-411A-AD85-759FB9C5B0DB}\InprocServer32]
@="c:\\windows\\system32\\ShellvRTF64.dll"
"ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\CLSID\{7F67036B-66F1-411A-AD85-759FB9C5B0DB}\ShellEx]

[HKEY_CLASSES_ROOT\CLSID\{7F67036B-66F1-411A-AD85-759FB9C5B0DB}\ShellEx\IconHandler]
@="{7F67036B-66F1-411A-AD85-759FB9C5B0DB}"

[HKEY_CLASSES_ROOT\CLSID\{7F67036B-66F1-411A-AD85-759FB9C5B0DB}\ShellEx\{00021500-0000-0000-C000-000000000046}]
@="{7F67036B-66F1-411A-AD85-759FB9C5B0DB}"

[HKEY_CLASSES_ROOT\CLSID\{7F67036B-66F1-411A-AD85-759FB9C5B0DB}\ShellFolder]
"Attributes"=hex:00,00,00,28
 

  • Redémarrer l'ordinateur.
  • Créer un fichier "desktop.ini" dans le répertoire à protéger :

[.ShellClassInfo]
CLSID={7F67036B-66F1-411A-AD85-759FB9C5B0DB}

[ShellvRTF]
RTFPath="protect.ed"
 

  • Créer un fichier RTF à l'aide de WordPad. Placez y n'importe quel texte et/ou image :

  • Sauvegarder et renommer le fichier (ici, protect.ed).
  • Modifier les attributs du répertoire contenant les fichiers desktop.ini et protect.ed. Lancer la commande : attrib +s chemin_du_répertoire

L'icône du répertoire doit désormais apparaître avec un cadenas :

Si l'on tente d'accéder au répertoire, le contenu du fichier RTF est interprété par ShellvRTF et l'affiche dans l'explorateur :