catala66
Messages postés2Date d'inscriptionmercredi 12 août 2009StatutMembreDernière intervention 4 juin 2013
-
4 juin 2013 à 15:28
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 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.
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 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 ---
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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.
jibob
Messages postés59Date d'inscriptionmardi 10 mai 2005StatutMembreDerniè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.