excel vba mot de passe

Pour mon boulot, j’utilise beaucoup Excel et cela fait de nombreuses années que je travaille avec VBA pour me simplifier la vie en automatisant certaines tâches rébarbatives.  Afin que des collègues moins à l’aise avec Excel ne viennent pas pourrir mes fichiers et mon code, il m’est arrivé de le protéger avec un mot de passe. Seulement, le temps passant, j’ai oublié certains mots de passe sur de vieux fichiers.

Et bien vous allez voir qu’au final ce n’est pas si difficile de faire sauter ce mot de passe ! Et cela devrait vous faire réfléchir à deux fois sur la sécurité réelle de vos fichiers Excel protégés par mot de passe !

Protéger son projet VBA avec un mot de passe

Si vous lisez cet article, il y a de fortes chances pour que vous sachiez déjà comment protéger un projet VBA avec un mot de passe. Mais voici un petit rappel pour ceux qui voudraient s’y mettre. Les manipulations sont relativement similaires, quelle que soit votre version d’Excel. Dans mon cas, j’ai utilisé Excel 2016.

Donc pour commencer, rendez-vous sur l’onglet Développeur et cliquez sur Macros.

mot-de-passe-excel-vba-1 Comment faire sauter le mot de passe d'un projet VBA sous Excel ?Si vous ne voyez pas l’onglet Développeur, allez sur Fichier > Options et ensuite Personnaliser le ruban. Sélectionnez Développeur dans la fenêtre de gauche et appuyez sur Ajouter>> pour l’intégrer au menu.

mot-de-passe-excel-vba-2 Comment faire sauter le mot de passe d'un projet VBA sous Excel ?Une fois que vous avez sélectionné Macros dans l’onglet Développeur, entrez un nom pour votre macro (peu importe, c’est juste pour avoir quelque chose à protéger avec un mot de passe) et cliquez sur Créer.

mot-de-passe-excel-vba-3-e1563461549853 Comment faire sauter le mot de passe d'un projet VBA sous Excel ?Copiez-collez le code suivant dans votre macro… C’est une macro toute bête qui va écrire un bout de texte en cellule A1 et qui n’a d’autre intérêt que d’avoir quelque chose à protéger.

Range("A1").Value = "Mot de passe craqué !!"

Et vous devriez avoir à peu près ça dans votre éditeur VBA :

mot-de-passe-excel-vba-4 Comment faire sauter le mot de passe d'un projet VBA sous Excel ?Dans l’éditeur VBA, allez sur Outils > Propriétés de VBAProject… Sélectionnez l’onglet Protection et vous allez pouvoir définir un mot de passe ! Pensez également à cocher la case Verrouiller le projet pour l’affichage afin que personne ne puisse voir ce code époustouflant !

mot-de-passe-excel-vba-5 Comment faire sauter le mot de passe d'un projet VBA sous Excel ?

Appuyez sur OK et sauvegardez votre fichier au format XLSM (celui qui supporte les macros). On va pouvoir tester si la manipulation a fonctionné. Pour cela, fermez et rouvrez votre fichier Excel puis rendez-vous sur l’onglet Développeur et cliquez sur Visual Basic.

Quand vous allez vouloir aller sur le projet VBA qui nous intéresse, une fenêtre va s’ouvrir pour demander le mot de passe.

mot-de-passe-excel-vba-6 Comment faire sauter le mot de passe d'un projet VBA sous Excel ?

Désormais, on peut essayer de faire sauter ce mot de passe !

Comment supprimer un mot de passe VBA ?

Passons maintenant à la partie difficile… rassurez-vous, rien de vraiment compliqué et on va tout voir ensemble étape par étape. Avant toute chose, faites une sauvegarde du fichier que vous souhaitez craquer, au cas où la méthode ne fonctionnerait pas.

Tout d’abord, nous allons devoir utiliser un éditeur hexadécimal. Si vous n’en avez pas, HxD est une bonne option gratuite, mais il existe beaucoup d’alternatives disponibles.

Préparation de notre fichier XLSM

Dans le cas d’un fichier XLSM (les fichiers avec Macro des versions récentes d’Excel), il va falloir faire une petite manipulation supplémentaire par rapport à un fichier XLS.

Trouvez le fichier sur votre disque dur, puis renommez-le en ajoutant .zip à la fin.

Ensuite, ouvrez-le avec un logiciel de compression d’archive comme WINRAR, IZArc ou tout simplement l’explorateur Windows sous Windows 10. Vous devriez alors y trouver un dossier libellé xl.

mot-de-passe-excel-vba-7 Comment faire sauter le mot de passe d'un projet VBA sous Excel ?

Dans ce dossier, cherchez le fichier intitulé vbaProject.bin, extrayez-le et ouvrez-le avec votre éditeur hexadécimal.

mot-de-passe-excel-vba-8 Comment faire sauter le mot de passe d'un projet VBA sous Excel ?

Si votre fichier est au format XLS, ouvrez-le directement dans l’éditeur hexadécimal sans passer par le changement d’extension !

Désactiver le mot de passe

C’est à ce stade qu’il est utile de savoir comment configurer un mot de passe.

En effet, vous allez devoir créer un nouveau document Excel bidon, y ajouter une macro et définir un mot de passe (dont il faudra se souvenir) comme décrit au début de cet article. Ce fichier va nous servir pour craquer le fichier sur lequel vous souhaitez faire sauter le mot de passe. L’idée c’est que nous allons prendre le code hexadécimal qui indique le mot de passe et l’insérer dans le fichier auquel nous voulons accéder. En gros, c’est une transplantation !

C’est pourquoi avec ce fichier bidon, il faut que vous reproduisiez toutes les étapes jusqu’à l’extraction du fichier vbaProject.bin.

Vous devriez maintenant avoir vos deux fichiers vbaProject.bin ouverts dans votre éditeur hexadécimal. Ne les confondez pas !!!

Use Ctrl + F dans l’éditeur pour trouver les caractères suivants :

CMG=

C’est le début du code qui indique le mot de passe actuel. Nous devons copier et coller trois valeurs et leur contenu :

CMG=
DPB=
GC=

Et voilà ce que ça donne :

mot-de-passe-excel-vba-9 Comment faire sauter le mot de passe d'un projet VBA sous Excel ?

Transférez ce code dans votre autre fichier vbaProject.bin, et placez-le au même endroit (là où vous retrouvez les 3 valeurs précitées CMG, DPB et CG), en vous assurant de ne rien supprimer d’autre. Sauvegardez votre fichier hexadécimal édité.

Maintenant, supprimez le fichier vbaProject.bin original du document dont nous essayons de supprimer les protections. Remplacez-le par votre fichier vbaProject.bin édité, puis changez son nom de fichier de .zip à .xlms ou .xls en fonction de ce que vous aviez à l’origine.

Ouvrez votre fichier dans Excel.

Allez sur l’onglet Développeur et cliquez sur Visual Basic. Puis essayez à nouveau d’accéder au projet VBA que vous souhaitez débloquer. Une fenêtre va vous demander votre mot de passe.

Normalement, si tout a fonctionné, le mot de passe qui va fonctionner et celui que vous aviez créé pour le second document, le document bidon.

Et si cela ne marche pas ?

Si jamais vous avez un problème et qu’Excel vous dit que le fichier est corrompu, vous allez devoir réessayer avec une copie de la sauvegarde du fichier que vous avez faite. La raison de ce problème, c’est que la chaîne de caractères que vous avez collée pour remplacer celle du fichier à craquer était plus longue que celle du fichier bidon.

Dans ce cas, il faut ajouter des 0 (zéros) à la chaîne de caractères que vous collez, juste avant les guillemets finaux.

CMG="xxxxxx"\r\nDPB="xxxxxxxx"\r\nGC="xxxxxxxxxx"

CMG="XXXX00"\r\nDPB="XXXXX000"\r\nGC="XXXXXX0000"

Dans la deuxième chaîne de caractères, on a ajouté des 0 pour qu’elle fasse la même longueur que celle d’origine dans le fichier à craquer !

N’hésitez pas à nous faire vos remarques si vous avez des solutions plus simples ou si vous ne comprenez pas, dans les commentaires ci-dessous !

Poster un Commentaire

avatar
  S'abonner  
Notifications