Microsoft 365 Protéger les mots de passe

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

RollyLCXL

XLDnaute Nouveau
Bonjour,

Je comprends que je peux masquer et protéger les feuilles. Je crois aussi qu'il est possible de "craquer" les mots de passe des projets VBA mais que depuis 2016 il est plus difficile de "cracker" les mot de passe des feuilles.

Donc en exemple je met un mot de passe dans une feuille masquée et protégée. Mais dans mon projet j'ai besoin à certaines occasions de déprotéger les feuilles pour effectuer certaines actions.

Dans mon code je ne souhaite pas avoir une ligne comme Feuil4.Unprotect "allo". allo étant le mot de passe de la feuille. Disons que j'ai placé le mot de passe "allo" dans la feuille12 et dans la cellule A1.

Donc lorsque le besoin y est j'ai le code Feuil4.Unprotect Feuil12.range("A1").value. Mais si on "crack" le mot de passe VBA ou même si à partir d'un autre classeur on inscrit le code msgbox(Feuil12.range("A1").value ... on pourra alors savoir le mot de passe.

Y aurait-il une meilleure méthode?

Merci à l'avance.
 
Il suffit de responsabiliser les gens et de leur expliquer en général ça marche assez bien
Tu as raison, en général ça marche.

Hélas on peut tomber sur un gars très très kon qui sait tout sur tout et qui a toujours raison... et là il n'y a rien à faire à part subir.

Avec un individu comme ça, si tu ne protèges pas ton classeur tu seras obligé de faire une sauvegarde à chacune de tes modifications pour remplacer le fichier (qu'il aura forcément modifié) par ta sauvegarde et il remettra aussitôt sa version, si tu protèges ton classeur il trouvera une méthode pour cracker ton classeur et mettra la version crackée à la place...
Je le sais, j'ai vécu ça au boulot avec le gars le plus kon du monde. C'était un enfer !!!
 
jurrasic pork non il ne sera pas déprotégé par une autre personne.

Concernant ... "parce qu'on peut "cacher" le mot de passe dans la partie utilisateur de la base de registres et seul un administrateur ou celui qui a écrit le mot de passe dans la base de registre pourra lire le mot de passe" ... je ne connais pas comment faire. Pourriez-vous svp me guider avec une procédure?
Alors voici le principe, je viens de tester cela a l'air de fonctionner , il y a peut-être une grosse faille que je n'ai pas vu mais en tout cas cela ralentira celui qui veut cracker ta protection car il n'aura pas d'outil "direct" pour cracker.
Dans une dll il y a deux fonctions accessibles UnprotectSheet(NomDeLafeuille) et ReprotectSheet(NomDeLaFeuille) Comme on peut le constater on ne transmet pas de mot de passe. Dans ces fonctions le mot de passe est récupéré à partir d'une clé de la base de Registre à laquelle toi seul peut accéder ou un administrateur. La protection de la feuille et la déprotection de la feuille se fait à l'intérieur de la Dll pour qu'on ne voit pas le mot de passe à partir du VBA.
Pour écrire le mot de passe dans la base de registre soit on le fait à la main ou soit on utilise un petit programme que personne d'autre que toi ne doit posséder.
Voici comment cela se présente sachant pour que le test j'ai rajouté une troisième fonction dans la dll qui permet d'écrire le mot de passe dans la base de registre mais qui ne doit surtout pas être présente dans la dll définitive :
VB:
#If Win64 Then
    Declare PtrSafe Function CreateUtilsClass Lib "D:\Tmp\ClassesCSharpJP\ClassesCSharpJPx64.dll" () As Object
  #Else
    Declare PtrSafe Function CreateUtilsClass Lib "D:\Tmp\ClassesCSharpJP\ClassesCSharpJPx86.dll" () As Object
#End If

Sub ProtectSheet()
Dim utils As Object
If utils Is Nothing Then Set utils = CreateUtilsClass()
utils.ProtectSheet "Data", "monMdp"
End Sub

Sub UnProtectSheet()
Dim utils As Object
If utils Is Nothing Then Set utils = CreateUtilsClass()
utils.UnProtectSheet "Data"
End Sub

Sub ReProtectSheet()
Dim utils As Object
If utils Is Nothing Then Set utils = CreateUtilsClass()
utils.ReProtectSheet "Data"
End Sub
Quand un autre utilisateur se logue sous un autre compte, et utilise le classeur, les fonctions UnProtectSheet et ReProtectSheet ne font rien car l' autre utilisateur n'a pas accès au mot de passe dans la base de registre.

Data représente le nom de la feuille à protéger. C'est la fonction ProtectSheet() qui ne devra surtout pas être accessible.
Dans la dll on peut rajouter des niveaux de protection en obfuscant le code.
Bien sûr cela est crackable mais pas par un utilisateur lambda qui n'aura pas d'outil tout fait pour cracker.
Si on ne fait la protection rien qu'avec du code VBA, à partir du moment où l'on y accède , le mot de passe sera en clair à un moment donné en débogage.
Tu as posté ton problème dans plusieurs forums. Si a un moment donné, une solution te convient, n'oublie pas de le signaler dans les autres forums. Cela évitera aux personnes des autres forums de chercher des solutions et de ne plus avoir de réponses de ta part.

[EDIT] j'ai obfusqué ma Dll avec ceci :
'Anti-tamper module writer preparation' phase...
'Anti-debug injection' phase...
'Anti-dump injection' phase...
'Anti-ILDasm marking' phase...
'Encoding reference proxies' phase...
'Constant encryption helpers injection' phase...
'Resource encryption helpers injection' phase...
'Type scrambler' phase...
'Constants encoding' phase...
'Hardening Phase' phase...
'Anti-tamper helpers injection' phase...
'Control flow mangling' phase...
'Post-renaming' phase...
'Anti-tamper metadata preparation' phase...
'Apply watermark' phase...

Ami calmant, J.P
 
Dernière édition:
Hélas on peut tomber sur un gars très très kon qui sait tout sur tout et qui a toujours raison... et là il n'y a rien à faire à part subir.

Si c'est un simple collègue je lui explique gentiment et pas du tout en jouant les gros bras comme je vous vois tous imaginer 🤣
Et je remet le fichier 1 fois, 2 fois et à la 3 eme fois je laisse le fichier pourri et chacun se débrouille avec sa hiérarchie pour les explications. 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
989
Réponses
12
Affichages
903
Réponses
5
Affichages
761
Compte Supprimé 979
C
Retour