Protéger un programme en VBA ? [Résolu]

CerberusPau 377 Messages postés lundi 3 avril 2006Date d'inscription 22 août 2018 Dernière intervention - 30 avril 2011 à 08:46 - Dernière réponse : CerberusPau 377 Messages postés lundi 3 avril 2006Date d'inscription 22 août 2018 Dernière intervention
- 1 juil. 2013 à 23:01
Bonjour à tous,

J'ai beaucoup lu sur le sujet, et force est de constater qu'il ne semble pas y avoir de moyen sérieux pour protéger un programme en VBA.

J'ai "développé" en VBA pour des raisons évidentes de facilité, et construire quelquechose qui fonctionne parfaitement, mais que bien sûr il n'est pas question de mettre sur le marché en l'état !

Je cherche donc une collaboration sérieuse pour reprendre mon projet VBA sous une autre forme qui pourra être gérée par une licence, et donc commercialisable.

Comme j'ai souvent utilisé le forum pour la finalisation de certains points, j'ai pensé que certains d'entre-vous pourraient être intéressés par ce projet et me faire des propositions.

Merci de vos réponses.
Cordialement
Rataxes64
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
CerberusPau 377 Messages postés lundi 3 avril 2006Date d'inscription 22 août 2018 Dernière intervention - 1 juil. 2013 à 23:01
3
Merci
Bonsoir,

Eh oui!...
On ne peux PAS "protéger" du Excel...

Cordialement
Rataxes64

Merci CerberusPau 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de CerberusPau
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscriptionModérateurStatut 28 août 2015 Dernière intervention - 30 avril 2011 à 12:23
0
Merci
Salut

VBA désigne le VB des applications d'Office.
De quelle application parles-tu ?

De quelle version parles-tu ?

Office 2007 est une passoire côté protection, une horreur, sans parler des multiples bugs jamais corrigés.
Par contre, sous Excel 2003, je n'ai jamais eu de problème.

Quel genre d'application ?

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 la partage (Socrate)
Commenter la réponse de cs_Jack
CerberusPau 377 Messages postés lundi 3 avril 2006Date d'inscription 22 août 2018 Dernière intervention - 30 avril 2011 à 13:44
0
Merci
Salut Jack,

Merci pour ta réponse.

C'est sous Excel 2003.

C'est un programme de calcul, avec exportation et importation des résultats, realisé à partir d'un certains nombre de mesures, qui doivent intégrer des certificats de calibration annuels et des nombreuses conditions de validations diverses.

Il y a pas mal de form, de listes, de feuilles (cachées), et il est fait appel à d'autres fichiers Excel. le code représente environ 2000 lignes.

Le script a été fait "à l'arrache", pour disposer d'un exemple "qui tourne", afin de montrer ce que l'on doit obtenir et bien déterminer les besoins.

Il faut donc (re)developper avec un programme capable d'être géré avec licence d'un niveau de sécurité acceptable, destiné à un milieu professionnel très spécialisé et exploité par des grandes sociétés.

Il est évident (et je sais!) que cela représente un gros travail, d'un coût certainement élevé, et pour lequel j'estime ne pas être compétent.

Je sais seulement que j'ai un outil valide, qui répond aux besoins d'un marché très spécifique actuellement "en panne", car les normes auxquelles il est soumis ont changées, et que personne n'a actuellement su proposer de solution pour remplacer les progammes informatiques existants, tous désormais obsolètes.

C'est par ce que j'excerce moi-même cette activité, que devant cette situation j'ai décidé de m'attaquer à la mise à jour nécessaire pour répondre aux nouvelles normes.

Mon soucis est donc de quitter le domaine "confidentiel" et pouvoir proposer un produit commercial de bonne facture.

J'espère avoir été plus précis.
Cordialement
Rataxes64
Commenter la réponse de CerberusPau
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscriptionModérateurStatut 28 août 2015 Dernière intervention - 1 mai 2011 à 00:58
0
Merci
N'hésite pas.
La sécurité des mots de passe est assez efficace sous 2003 pour pouvoir développer en assurant une protection raisonnable.
J'ai développé ce même genre d'outil pour des industries très pointilleuses (pharma) et je n'ai jamais eu d'inquiétude; D'une part parce que la diffusion du produit reste limitée, et d'autre part parce que je fais confiance au personnel qui ne tentera pas de déplomber/modifier ce genre d'application.
Ce qu'il est possible de faire : Une fois ton application terminée, son fichier ne doit pas changer de taille ni de contenu, normal. Donc, son Checksum ou sa représentation MD5 ne doit pas changer.
En cas de problème, la première chose à vérifier, c'est que le hash MD5 du programme est le même que l'original.
Si ce n'est pas le cas, tu peux dire que ton programme a été modifié.

A ma connaissance (limitée en hacking), les mots de passe Office 97 étaient faciles à trouver, autant, je n'ai jamais vu d'outil capable de faire sauter les mdp d'office 2003.
Commenter la réponse de cs_Jack
CerberusPau 377 Messages postés lundi 3 avril 2006Date d'inscription 22 août 2018 Dernière intervention - 1 mai 2011 à 22:19
0
Merci
Certes Jack, la confiance doit être de mise, mais je reste convaincu qu'un verrou plus sérieux que les seuls mots de passe de protection Excel et VBA est nécessaire. En effet, le net fourmille de programmmes cassant ces mots de passe avec une facilité à la portée du premier venu, pour une poignée d'euros si on ne veut pas s'embêter.
Toute protection interne à Excel par macro ne vaut pas grand chose (rien!) du point de vue anti-copie : On a beau cacher les menus, bloquer les raccourcis clavier, que sais-je encore ; il suffit d'ouvrir un fichier Excel quelconque, de mettre un simple point d'arrêt sur une de ses macros, et le tour est joué!

En fait, je n'ai que deux options :
=> Soit la création d'un logiciel spécifique, ce qui pose des problèmes de compétence, de coût et de maintenance....
=> soit "verrouiller" Excel.

Dans ce deuxième choix, ton idée de Cheksum ne me semble pas réalisable car mon appli peut être chargée de données variables par l'utilisateur... Voila mon idée :
Une des phases majeures du calcul ne sera pas traitée par Excel, mais par un "petit" exe appelé par Excel.
1°) Excel charge une donnée en mémoire dans windows (via Type Etat (ou ini temporaire) par exemple).
2°) Excel appelle l'exe (via shell ou cmd par exemple)
3°) l'exe récupère l'Etat et fait l'opération si certaines conditions sont remplies (N° de licence), puis il charge le résultat en mémoire de windows (ou dans un ini temporaire).
4°) Excel le récupère, puis, si le retour est correct, poursuit le calcul pour donner un résultat final.

Certes ça n'est pas une "vraie" protection, mais cela déroutera suffisemment un bidouilleur "de base" dans la mesure où non seulement il faudra casser la protection VBA (facile), mais aussi trouver où on appelle le "bon" exe (l'application en appelle plusieurs), et le décompiler pour savoir ce qu'il fait.

J'aimerais avoir un avis éclairé sur ce projet, et, comme on dit, "plus si affinité".

Pat ailleurs, s'il est acquis que tous les utilisateurs potentiels du programme disposent d'Excel, reste à savoir sous quelle version... Je n'ai aucune idée du comportement des macros 2003 traitées sous 2007. Crois-tu que cela puisse poser un problème ?
Ceci dit, pour ma part, je n'installerai pas (jamais)2007 sur mon PC, même pour tester !

Cordialement (désolé pour la longeur de ma réponse)
Rataxes64
Commenter la réponse de CerberusPau
CerberusPau 377 Messages postés lundi 3 avril 2006Date d'inscription 22 août 2018 Dernière intervention - 8 mai 2011 à 10:22
0
Merci
Euh...

Ai-je écrit quelquechose qui cloche ?

Allez, j'ose un petit up !

Cordialement
Rataxes64
Commenter la réponse de CerberusPau
cs_Swinger 6 Messages postés mercredi 25 décembre 2002Date d'inscription 22 février 2012 Dernière intervention - 8 mai 2011 à 16:09
0
Merci
Pourquoi ne pas mettre ton code dans une DLL (qui sera appelé par VBA) et dans laquelle il y aurait un appel à un dongle de protection (aujourd'hui, ils ne valent plus très cher, environ 30€)...

Concernant les risques, vu qu'il s'agit d'un secteur "en panne" de logiciel, je pense que ceux qui avait déjà fait quelque chose pourraient être très intéressé par ton logiciel...ne néglige pas la protection, sauf si ton objectif n'est pas de gagner de l'argent, mais juste de rentrer dans tes fonds, auquel cas, il vaudrait mieux s'orienter vers une solution de don bénévoles (je sais pas si ca fonctionne bien ce genre de chose)

Concernant les utilisations sous 2007, et maintenant 2010, il existe des problèmes (parfois sur des trucs très con comme les dates...). Une bonne solution pour le tester est d'utiliser les machines virtuelles (Virtualbox peux te permettre de faire ca très facilement, et surtout sans risque et sans engager de frais puisqu'il est gratuit!)
Commenter la réponse de cs_Swinger
CerberusPau 377 Messages postés lundi 3 avril 2006Date d'inscription 22 août 2018 Dernière intervention - 8 mai 2011 à 16:59
0
Merci
Aie Aie Aie,

Visiblement, "boucler" un pas du calcul par un exécutable hors d'Excel est donc une mauvaise idée...

Si pour traiter des calculs mathématiques avec Excel via une floppée de macros, formules et formats conditionnels, je ne m'en sort pas trop mal, "mettre mon code dans une DLL appelée par VBA" comme tu le suggères, Swinger, est quelque chose que je ne sais pas faire...du tout!

J'entends bien que ça doit être compliqué, nécessiter pas mal de compétences, et qu'en tout état de cause ce ne saurait être "gratuit" bien sûr.

Une piste de réflexion :
Chaque année, le programme doit être chargé par un Certificat de Calibration du matériel de mesure, établi par le labo sous forme d'un fichier transmis par mail à l'utilisateur pour faire la mise à jour nécessaire au calculs.
Ce fichier pourrait peut-être être utilisé pour contrôler la validité de la licence ?

Merci de votre aide.

Cordialement
Rataxes64
Commenter la réponse de CerberusPau

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.