Cryptage macro

catala66 Messages postés 2 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 4 juin 2013 - 4 juin 2013 à 15:28
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 8 juin 2013 à 12:09
Bonjour le Forum,

Voila mon problème :

J'ai réalisé grâce à la consultation de site et forum 2 applications (Gestion de Stock & Maintenance Matériel) dont je souhaiterais protèger le code VBA, coeur des applications.

A l'heure actuelle je protèges par mot de passe sur le projet et transformation en .exe du fichier ; toutefois, pour un utilisateur avertis et selon la version d'excel, on peut accéder au code tout du moins par la protection mot de passe.

Ayant lu que l'on pouvait protéger des textes par le code vigenere, j aimerais échanger avec une personne ayant déjà fait cela ; je suppose que l'on codifie le nom des variables et non pas le code. Savoir si cela est vraiment efficace et si il existe un moyen de contourner cette protection sachant que cela brouilles la compréhension du code aux lecteurs indélicats.

J'espères être clair dans ma demande.

D'avance merci

4 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
4 juin 2013 à 19:06
Bonjour,

Si tu veux vraiment protéger ton code (ce qui est impossible dans l'absolu), le mieux est de changer de langage et d'éviter VBA.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 juin 2013 à 19:53
Bonjour,
Une chose est dans mon esprit TRES claire : le seul code à protéger que je connaisse personnellement, est celui du logiciel lui-même (celui de Microsoft, donc) !
Pour tout le reste : ce sera un véritable jeu d'enfant, pour tout développeur un peu (très peu) averti, que de refaire (voire faire en mieux) une application VBA qu'il verra "tourner" et dont il connaîtra donc les tenants et les aboutissants. Et pour cela (la seule vraie chose importante) : aucune protection n'existe.
Voilà voilà


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
jibob Messages postés 59 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 4 juillet 2013
5 juin 2013 à 18:28
Bonjour à tous,

Le codage de Vigenere ne sert à rien s'il est appliqué sur les noms de variables, car lors de l'exécution une variable sera vue comme un identifiant (de type long).
Il pourrait s'avérer utile par contre de chiffrer le contenu des constantes.
Mais avec un telle méthode, cassable par force brute, cela risque de ne pas résister longtemps.
Encore faudrait-il que le stock soit du plutonium et la maintenance concerne des réacteurs et surgénérateurs,

Je ne comprends pas l’intérêt de vouloir à tout prix protéger du code VBA.
Le VBA est interprété par une DLL indépendante, donc la totalité de l'exécution passe par cette DLL.
La technique d'interception est simple, il suffit de créer une DLL avec des fonctions exportées à l'identique pour reconstituer le code en faisant du ligne par ligne au besoin.

Effectivement, coder en C++ permet de faire un chargeur codé à partir d'une clé et nécessiterait des efforts démesurés pour reconstituer le code source.

Cordialement
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 juin 2013 à 12:09
Salut

"(...) et transformation en .exe du fichier"
Comment fais-tu ça ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
0
Rejoignez-nous