Les projets VBA dans les fichiers `.xlsm` ne sont pas chiffrés, seulement protégés par un flag dans le fichier `vbaProject.bin`.
> [!info] À savoir ! <span style="font-weight: normal; color: var(--text-normal)">La protection VBA d'un fichier Excel est une obfuscation légère.</span>
Le bypass du mot de passe consiste à modifier ce flag. Cette technique est valable sur la majorité des fichiers Office legacy et elle est très utilisée en CTF / pentest.
> [!danger] Attention ! <span style="font-weight: normal; color: var(--text-normal)">Cette documentation est destinée exclusivement à un usage pédagogique et à des activités légitimes de cybersécurité (tests autorisés, CTF, recherche). Aucune responsabilité ne pourra être engagée quant à une utilisation abusive ou non conforme à la loi de ces informations.</span>
L’utilisation de ces techniques sur des systèmes sans autorisation explicite est strictement interdite. Vous êtes seul responsable du respect des lois et des réglementations applicables.
### Prérequis
- Télécharger le logiciel HxD ([version portable](https://mh-nexus.de/en/downloads.php?product=HxD20))
- Disposer d'un fichier `.xlsm` protégé par un mot de passe.
### Procédure
Renommer le fichier `.xlsm` en changeant son extension en `.zip` puis extraire le projet VBA
- Ouvrir l’archive `.zip`
- Naviguer vers `xl/vbaProject.bin`
- Extraire `vbaProject.bin`
Modifier avec HxD
- Ouvrir `vbaProject.bin` dans HxD
- Rechercher (`Ctrl + F`, mode texte) : `DPB=`
- Remplacer `DPB=` par `DPx=`
> [!danger] Attention ! <span style="font-weight: normal; color: var(--text-normal)">Ne pas changer la longueur, ne pas supprimer de bytes et appliquer à toutes les occurences si il en existe plusieurs.</span>
Pour finir :
- Remplacer le fichier `vbaProject.bin` dans l’archive.
- Renommer le `.zip` en `.xlsm`.
- Ouvrir avec Excel, et ignorer les avertissements.
- Presser `Alt + F11`
> [!done] Félicitations ! <span style="font-weight: normal; color: var(--text-normal)">Vous avez accès au projet VBA sans mot de passe !</span>