Vous faites soigneusement vos comptes dans un document Excel protégé par un mot de passe et vous l’avez oublié ? Pas de problème, voilà comment retirer la protection. Un document Excel peut contenir des protections de 4 façons :

– au niveau du classeur pour en protéger la structure

– au niveau des feuilles pour en verrouiller les contenus

– au niveau de VBA pour verrouiller les macros

– un chiffrement sur le fichier lui même

 

L’article d’aujourd’hui ne couvre pas le dernier cas mais j’étudierais peut-être la question dans le futur.

 

1. Faites une copie de sauvegarde du fichier dans le cas où quelque chose tourne mal.

2. Ouvrez la fiche Excel avec 7zip : clic droit sur le fichier, aller sur 7-zip dans le menu contextuel puis ouvrir.

3. Dans la fenêtre 7zip qui s’est ouverte, vous aurez accès à l’arborescence des fichiers contenus dans le fichier Excel :

4. Entrer dans le dossier « xl » dans 7zip et vous devriez avoir ça :

Si vous voulez supprimer le mot de passe qui protège le classeur, faites un clic droit sur le fichier workbook.xml puis édition dans le menu contextuel. Faites une recherche dans le bloc note avec le mot clé « password » et supprimer l’élément « workbookProtection » qui commence par la balise d’ouverture « < » et qui se termine par « /> ». J’ai surligné l’élément en question à supprimer :

Sauvegarder, fermer le bloc note puis cliquer OK sur le message d’avertissement de 7zip. La protection est maintenant supprimée sur le classeur !

5. Pour supprimer le mot de passe sur les feuilles Excel, il faut retourner sur 7zip, rentrer dans le dossier « worksheets » et appliquer la même méthode sur chacun des fichiers xml présents, à savoir éditer les fichiers xml un par un pour supprimer l’élément qui contient le mot clé password :

Après suppression des éléments surlignés dans chacun des fichiers xml dans le dossier worksheets, sauvegardez, fermez puis cliquez OK dans 7zip. Et voilà plus de mots de passe sur les feuilles Excel ! Et ne rêvez pas la valeur donnée à password (ici DD09 pour mon fichier) n’est pas le mot de passe ! Il s’agit du hash du mot de passe et les méthodes de bruteforce pour retrouver le mot de passe utilise cette valeur pour comparer un à un tous les mots de passe possibles jusqu’à trouver le bon.

 

Supprimer le mot de passe VBA

Pour supprimer le mot de passe VBA, c’est à peine plus compliqué et il vous faut cette fois un éditeur hexadécimal en plus de 7zip. Personnellement, j’utilise NotePad++ avec le plugin d’éditeur hexadécimal.

1. Ouvrez le fichier Excel avec 7zip, allez dans le dossier « xl » et vous verrez un fichier vbaProject.bin. Décompressez uniquement ce fichier et ouvrez-le avec l’éditeur hexadécimal.

2. Dans l’éditeur hexadécimal, faites une recherche sur la chaîne de caractère DPB :

Remplacer la chaîne de caractère DPB par DPx, sauvegardez, fermez puis remplacez le vbaProject.bin original du fichier Excel par celui que vous avez modifié.

3. Ouvrez la fiche Excel dans Excel et à l’ouverture, vous devriez avoir un message d’erreur qui vous indique que la clé DPx (celle que vous venez de modifier) n’est pas valide. Cliquez sur « Oui » pour continuer l’ouverture du projet. En gros, Excel trouve une erreur dans la protection du fichier et vous propose de l’ouvrir sans tenir compte de cette protection…

4. Ouvrez VBA (raccourci Alt + F11), allez dans le menu Outils, Propriétés de VBAProject puis dans l’onglet Protection. Et là, miracle ! Vous pouvez redéfinir un nouveau mot de passe ! Ne pas supprimer la protection tout de suite ! Sinon le fichier ne pourra plus s’ouvrir. Redéfinissez d’abord un nouveau mot de passe, sauvegardez puis maintenant, vous pourrez supprimer le mot de passe si vous voulez vous en passer.

Moralité de l’histoire : il est inutile de protéger par un mot de passe des données sensibles contenus dans un fichier Excel, il est extrêmement facile d’en retirer la protection. Préférez les méthodes de chiffrement du fichier si vous avez un réel besoin de sécurisation !