AVEC CRYPTO MACRO, PROTÉGEZ EFFICACEMENT VOS MACROS VBA SUR EXCEL
Présentation Vidéo
1. En quoi consiste Crypto Macro
Comment protéger efficacement vos macros VBA sur Excel ?!
il s'agit ici de l'une des questions qui revient souvent lorsque l’on souhaite partager des fichiers Excel à des clients, des partenaires, ou même encore à des collègues de travail.
Le but bien entendu est alors d’éviter de se faire tout simplement voler son travail, surtout lorsque celui-ci a nécessité de nombreuses heures d’élaboration.
Le problème principal des applications VBA c’est que le code source est directement lisible et compréhensible depuis l’éditeur VBE, sans aucune compilation…
Evidemment, Excel permet de mettre en place un mot de passe pour empêcher l’accès au code VBA !
Mais est-ce que cette protection est vraiment efficace ?
Bien sûr que non…
Quelques secondes suffiront à un utilisateur averti pour mettre à mal cette soi-disant protection…
Vous l’aurez compris à la lecture du titre de ce texte, la solution que je vous propose aujourd’hui porte le nom de Crypto Macro.
Il s’agit d’une application Excel qui va vous permettre d’obfusquer tout le code VBA inséré dans vos fichiers, de manière totalement automatisée.
Obfusquer du code signifie rendre incompréhensible ce code, en remplaçant les termes issus du langage naturel par d’autres termes qui le seront beaucoup moins !
Mais bien entendu, le fait de rendre ce code illisible pour l’utilisateur indiscret ne doit pas pour autant empêcher celui-ci d’être normalement interprété par Excel !
Voici un exemple de code VBA
' Sommer les valeurs contenues dans une plage de cellules
Function sommer(plageCellules As Range) As Integer
' Déclaration des variables
' - la variable cellule permet de passer en revue toutes les cellules contenues dans la plage des cellules passée en argument
' - la valriable montantTotal permet de calculer la somme des cellules déjà passées en revue
Dim cellule As Range, montantTotal As Integer
' Boucler sur toutes les cellules de la plage passée en argument
For Each cellule In plageCellules
' Et enfin, calculer le montant total des cellules
montantTotal = montantTotal + cellule
Next
' Retourner le montant calculé comme résultat de la fonction
sommer = montantTotal
End Function
' Utiliser la fonction "sommer" pour calculer la somme des valeurs contenues dans la sélection
Sub sommerSelection()
MsgBox "La somme des cellules sélectionnée est de : " & sommer(Selection)
End Sub
De nombreux éléments sont insérés dans ces lignes de code pour faciliter la compréhension des lignes :
- Les noms de procédures sont explicites,
- De même pour les noms de variables,
- De nombreuses lignes de commentaires jalonnent le lignes de code pour expliquer toutes les actions exécutées
Et voici le même code une fois obfusqué à l’aide de Crypto Macro :
Function efrXT9Xqg3fIwegG5eix7S6YYg2kp7Fg8t48gQNynZn(ef3BOH4f9XlVs1EP6n99vpUCw08DzrxsASmh As Range) As Integer
Dim effxCnknIQ1o6OIT1A1WEWpbQi3XIVmdbI1Tg2bI5gEX As Range, ef7lGTd42488tVIEhWW5Y5F8pRk5dFv46fUN9mu2k4 As Integer
For Each effxCnknIQ1o6OIT1A1WEWpbQi3XIVmdbI1Tg2bI5gEX In ef3BOH4f9XlVs1EP6n99vpUCw08DzrxsASmh
ef7lGTd42488tVIEhWW5Y5F8pRk5dFv46fUN9mu2k4 = ef7lGTd42488tVIEhWW5Y5F8pRk5dFv46fUN9mu2k4 + effxCnknIQ1o6OIT1A1WEWpbQi3XIVmdbI1Tg2bI5gEX
Next
efrXT9Xqg3fIwegG5eix7S6YYg2kp7Fg8t48gQNynZn = ef7lGTd42488tVIEhWW5Y5F8pRk5dFv46fUN9mu2k4
End Function
Sub efCYKF5uLTKrDZD7m3rMCPRCxXwwxQ6l9ORhuS()
MsgBox "La somme des cellules sélectionnée est de : " & efrXT9Xqg3fIwegG5eix7S6YYg2kp7Fg8t48gQNynZn(Selection)
End Sub
Vous constaterez alors que le code en question devient tout de suite incompréhensible !
En seulement deux clics de souris, Crypto Macro va permettre de :
- Supprimer l’indentation,
- Supprimer les sauts de lignes,
- Supprimer les commentaires,
- Crypter les noms de variables,
- Crypter les noms des procédures et de fonction, ainsi que les arguments qui se trouvent dans chacune de ces procédures et fonctions,
- Crypter les noms des modules
Et tout cela de manière très simple et totalement automatique.
COMMANDER CRYPTO MACRO :
2. Comment fonctionne Crypto Macro
Le fonctionnement de Crypto Macro est très simple !
Lorsque vous aurez récupéré votre version du logiciel (en suivant le bon de commande), il suffira ensuite d’installer celui-ci sur votre disque dur.
Ensuite, commencez par lancer le fichier Excel dans lequel se trouve les macros VBA à protéger.
Cela étant fait, vous pouvez lancer également lancer le fichier Crypto Macro.
Vous arriverez alors sur la page d’accueil.
A ce moment-là, il suffit de cliquer sur le bouton « Cliquer ici pour lancer Crypto Macro » afin de lancer l’application.
Ensuite, il suffit de choisir le fichier à convertir depuis le menu « Choisir un fichier ».
Et enfin de cliquer sur le bouton « Lancer le cryptage des macros ».
L’application va alors lancer le processus d’obfuscation.
Ce processus peut demander jusqu’à plusieurs minutes de traitement en fonction des caractéristiques de la machine sur laquelle l’application est exécutée, et en fonction également du fichier d’origine à retraiter.
Une notification nous informera lorsque ce dernier sera exécuté en totalité.
Un nouveau fichier Excel avec les macros obfusquées est maintenant généré, dans le même dossier que le fichier d’origine.
En effet, Crypto Macro ne modifie jamais le fichier d’origine, mais travail sur une nouvelle version de celui-ci afin d’éviter toute perte de données ou de cryptage accidentel.
Vous pouvez ensuite ouvrir ce nouveau fichier encodé pour visionner le résultat.
COMMANDER CRYPTO MACRO :
3. Liste des options
Dans la partie précédente, nous avons vu comment rendre illisible le code qui se trouve dans un classeur Excel en quelques secondes seulement grâce à Crypto Macro.
Voyons maintenant comme personnaliser la méthode d’obfuscation.
Pour afficher les options de l’application, cliquez simplement sur le bouton « Options >> »
Voici les options disponibles :
- Supprimer les sauts de lignes : choisir de supprimer ou de conserver les sauts de lignes dans les macros. Cocher l’option pour les supprimer.
- Supprimer les commentaires : choisir de supprimer ou de conserver les commentaires dans les macros. Cocher l’option pour les supprimer.
- Crypter les noms de variables : choisir de crypter ou de conserver à l’identique les noms de variables dans les macros. Cocher l’option pour les crypter.
- Crypter les noms de procédures, ainsi que les arguments : choisir de crypter ou de conserver à l’identique les noms des procédures et fonctions (ainsi que les noms des arguments de ces derniers). Cocher l’option pour les crypter.
- Crypter les noms de modules : choisir de crypter ou de conserver à l’identique les noms des modules standards et modules de classes (les UserForms ne sont pas cryptables). Cocher l’option pour les crypter.
- Enregistrer le classeur source avant le cryptage : Crypto Macro travail sur une copie du fichier d’origine afin de ne pas modifier l’exhaustivité. Cocher cette case permet d’enregistrer le fichier d’origine avant de lancer la procédure d’obfuscation ce qui permet de travailler sur une version à jour du fichier.
- Suffixe : le fichier obfusqué est une copie du fichier d’origine, nous venons de le voir juste au-dessus. Nous pouvons personnaliser le suffixe par défaut à insérer dans le nom du nouveau fichier.
Pour finir, le bouton « Remise à zéro » permet de réinitialiser les réglages par défaut de l’application, tels qu’ils étaient au moment du téléchargement.
COMMANDER CRYPTO MACRO :
4. Astuces d’utilisation
4.1. Déclaration des variables
Pour identifier les variables à obfusquer, il convient de déclarer celles-ci en utilisant le mot-clé Dim.
En revanche le typage de la variable n’est pas obligatoire.
4.2. Choix des modules à obfusquer ou non
Il est possible de sélectionner les modules et les formulaires pour lesquels nous souhaitons ne pas réaliser d’obfuscation.
Cela peut être utile par exemple dans les cas suivants :
- Existence de fonctions personnalisées : l’obfuscation aura pour effet de modifier le nom de celle-ci au point de rendre leur appel impossible,
- Lorsque des boutons permettent de lancer une macro, cela permet de ne pas rompre le lien,
- …
Pour ne pas obfusquer une page de code (module ou formulaire), il suffit d’utiliser la commande suivante « ' crypto macro : non » (en commentaire) :
Cette ligne peut être insérée en début ou en fin de page de code.
4.3. Attention aux noms des variables
Lorsque l’on nomme une variable il faut faire attention que le terme n’apparaisse pas une chaîne de caractère, sous peine de modifier également le terme correspondant.
L’astuce consiste donc à utiliser des noms de variables uniques.
Dans l’exemple suivant :
Dim fichier as String
MsgBox "Ouvrir le fichier"
L’offuscation modifierait alors le code de la manière suivante :
Dim efgHqXRL01Q2SQQEOkA4er4IJr3swKxvV3sWM1 as String
MsgBox "Ouvrir le efgHqXRL01Q2SQQEOkA4er4IJr3swKxvV3sWM1"
Il conviendrait donc plutôt de nommer la variable nomFichier :
Dim nomFichier as String
MsgBox "Ouvrir le efgHqXRL01Q2SQQEOkA4er4IJr3swKxvV3sWM1"
4.4. Activation de l'accès au modèle d'objet de VBA
Pour fonctionner correctement, Crypto Macro nécessite un accès au modèle d'objet de VBA.
Pour cela, rendez vous dans le menu Fichier > Options > Centre de gestion de la confidentialité, puis cliquez sur le bouton Paramètres du Centre de la Confidentialité :
Puis dans la catégorie Paramètres des macros, cochez simplement l'option : Accès approuvé au modèle d'objet du projet VBA :
5. Acquérir Crypto Macro
Crypto Macro est d’ores et déjà disponible au téléchargement en suivant le lien que vous trouverez dans la description de la vidéo.
Cela vous permettra d’arriver sur le bon de commande de l’application.
L’application est disponible en deux versions :
- La version STANDARD : permet l’obfuscation totale du code :
- Supprimer les sauts de lignes,
- Supprimer les commentaires,
- Crypter les noms de variables,
- Crypter les noms de procédures, ainsi que les argument,
- Crypter les noms de modules
- La version DEVELOPPEUR : même application que la version STANDARD, avec en plus un accès total au code VBA complétement commenté !
Ces deux versions sont disponibles à un prix exceptionnel de lancement jusqu’à dimanche soir minuit !
Passée cette date, le prix de Crypto Macro va augmenter pour être vendu au prix normal.
COMMANDER CRYPTO MACRO :