Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PROTEGER SES SOURCES VBA


Information sur la source

Catégorie :Sécurité Niveau : Débutant Date de création : 14/02/2005 Vu : 14 793

Note :
8 / 10 - par 3 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

Description

Je developpe depuis peu dans ce langage, et le probleme de la protection des sources c'est posé et j'ai cherché comment faire... voyant que certain utilisateurs etaient dans mon cas, voici quelques lignes de codes pour empêcher les utilisateurs d'aller dans l'editeur VBA
 

Source

  • Private Sub Workbook_Open()
  • Dim CmdB As CommandBar
  • 'desactivation des touches de raccourcis ...
  • Application.OnKey "%{F8}", ""
  • Application.OnKey "%{F11}", ""
  • 'fermeture de l'editeur VBA ...(au cas ou ils soit ouvert lors du lancement du classeur programmé ...
  • Application.VBE.MainWindow.Visible = False
  • 'Desactivation de la barre d'outils VBA et du raccourci dans le menu ....
  • Application.CommandBars("Visual Basic").Enabled = False
  • Application.CommandBars("Macro").Enabled = False
Private Sub Workbook_Open()
 Dim CmdB As CommandBar
'desactivation des touches de raccourcis ...

    Application.OnKey "%{F8}", ""
    Application.OnKey "%{F11}", ""

'fermeture de l'editeur VBA ...(au cas ou ils soit ouvert lors du lancement du classeur programmé ...

    Application.VBE.MainWindow.Visible = False

'Desactivation de la barre d'outils VBA et du raccourci dans le menu ....

Application.CommandBars("Visual Basic").Enabled = False
Application.CommandBars("Macro").Enabled = False


Conclusion

Voila, j'ai essayer de l'ouvrir de plusieurs maniere et à priori on est bloquer, j'ai rajouter le mot de passe dans l'editeur en plus au cas ou mais on sait l'enlever facilement...
c'est commande sont a mettre dans ThisWorbook vous l'aurrez compris, attention penser a reactiver le tout quand vous quitter excel dans :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Visual Basic").Enabled = Ttrue
Application.CommandBars("Macro").Enabled = True


Un grand merci a se site que je trouve Génial !!!!


 

Commentaires et avis

signaler à un administrateur
Commentaire de Patrice99 le 15/02/2005 10:17:17

Tant pis si je vais te décevoir, mais mieux vaux la vérité en matière de sécurité : il est totalement illusoire de vouloir protéger du VBA ! pour Excel, il suffit de désactiver les macros au démarrage pour pouvoir consulter le code à loisir... Si tu converti ton code en VB6 compilé en .exe, ton code sera un petit peu mieux protégé, et si tu le converti en VB.Net avec l'option de brouillage de l'exe, il sera un peu mieux protégé (pas complètement mais de façon suffisamment dissuasive dans la plupart des cas).

signaler à un administrateur
Commentaire de sibi12 le 15/02/2005 13:07:23

Oui evidemment niveau protection c pas top... autant mettre un mot de passe alors...

Patrice99 >> Je dirais même plus il est completement impossible de proteger du code tout court !!!

VB.Net est très mal proteger encore moins que VB6 puisque meme en brouillant l'exe, une fois debrouille tu a le code (enfin presque tu n'as pas le nom des variables ni les commentaires mais bon... fo pas exagerer non plus lol) à l'inverse de VB6 ou tu peux juste tracer par ou passe le code et obtenir le listing assembleur..le reste c'est du reverse ingeneering (je suis plus trop sur de l'orthographe...)

signaler à un administrateur
Commentaire de Patrice99 le 15/02/2005 16:19:57

>> il est completement impossible de proteger du code tout court !!!

Faut pas oublier aussi une dernière possibilité : faire un service web sécurisé que tu héberges toi-même : ainsi, personne ne peut désassembler le code qui s'exécute sur ta machine.

signaler à un administrateur
Commentaire de sibi12 le 15/02/2005 16:26:26

Oui bien vu...je n'y pensais plus...

Enfin, en allant loin, des serveur comme celui du gouvernement américain ce sont deja fait hacker :-D

signaler à un administrateur
Commentaire de Geronimo62 le 15/02/2005 20:48:00

lol, j'avais pas pensé à ça, mais suffit de desactiver le choix de l'option ... c facile et si on ne choisi pas de la remettre à defaut quand on quitte, ils sont bloquer ...

maintenant mon but est simplement de disuader les novices et bidouilleure de toucher à mon code ... si je developpe en VBA c'est simplement pour les utilisateurs et aussi que tout le monde a excel donc pas de problémes de dll ... pareils en VB il est facile de bidouiller les sources... quand on veut, on peu ...

signaler à un administrateur
Commentaire de vialstephane le 15/02/2005 21:09:36

il suffit de désactiver les macros au démarrage pour pouvoir consulter le code à loisir...

tu dis n'importe quoi !
Si tu protège ton projet par mot de passe dans vbaproject tu ne peux pas visualiser le code même les macros désactivées !

@+

signaler à un administrateur
Commentaire de sibi12 le 15/02/2005 21:33:50

non non il y a des programme qui permette de retrouver ce code

signaler à un administrateur
Commentaire de VicoLaChips2 le 15/02/2005 21:51:24

effectivement... pour Excel97 !! mais bon... Je pense également que la protection du Code VBA des projets Excel doit se faire par la voie académique à savoir :

activeworkbook.Protect ...
et la même chose pour les feuilles.

De toute façon l'intérêt principal de cette
« pseudo » protection c'est d'empécher les users d'aller triturer le code et de faire planter l'appli...

@+ et bonne prog, VIC.

signaler à un administrateur
Commentaire de jmlucienvb le 25/02/2005 13:35:52

Avec un éditeur hexadécimal on fait sauter les mot de passe de vbaProject...

signaler à un administrateur
Commentaire de MystSith le 25/02/2005 21:44:22

Je crois qu'il existe un moyen d'activer automatiquement les macros sous excel (ou le classeur ne s'ouvrira pas)... et donc de mettre tout en place pour protéger son code (autant que possible)... il suffit de mettre une feuille "MS Excel 4.0 Macro" dans le classeur. Astuce à tester ;)

signaler à un administrateur
Commentaire de jmlucienvb le 28/02/2005 08:00:56

C'était un truc comme ça vu il y a qques jours :
empêcher l'affichage d'un classeur s'il est ouvert alors que l'exécution des macros est désactivée dans les options de sécurité




Option Explicit
'*******************************
'code à coller dans ThisWorkbook
'*******************************
'VériTi...

'dans l'évènement Open du classeur...
Private Sub Workbook_Open()
ThisWorkbook.IsAddin = False
End Sub

'dans l'évènement BeforeSave ou BeforeClose du classeur...
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.IsAddin = True
End Sub

'ainsi, si on ouvre le classeur alors que les options de sécurité
'bloquent l'exécution des macros, le classeur reste invisible...(mais pas VBA)

signaler à un administrateur
Commentaire de Patrice99 le 28/02/2005 16:14:43

ThisWorkbook.IsAddin : Pas mal, ca serait presque utile si on pouvait empecher de lancer l'éditeur VBA...

signaler à un administrateur
Commentaire de eldim le 03/08/2005 11:41:11

Salut !

Faut lancer excel par VB NET avec au préalable sur la variable d'application excel :

Sub Security()
    Dim secAutomation As MsoAutomationSecurity

    With Application
        secAutomation = .AutomationSecurity
        .AutomationSecurity = msoAutomationSecurityForceDisable
        With .FileDialog(msoFileDialogOpen)
            .Show
            .Execute
        End With
        .AutomationSecurity = secAutomation
    End With
End Sub

signaler à un administrateur
Commentaire de Daranc le 31/05/2006 09:19:06

j'ignore ce que cela vaut
www.veriti.net
rechercher: "Acyd" de Ti (Thierry Pourtier)
pour faire sauter les protections VB et feuilles par mot de passe sur les protections par code ,je ne sais pas. Mais c'est un outil de test plutot performant
Daranc

signaler à un administrateur
Commentaire de eldim le 31/05/2006 09:32:26

ça ne déverrouille pas le vb mais le fichier excel...

signaler à un administrateur
Commentaire de Daranc le 31/05/2006 09:45:23

le programme Acyd sert au mot de passe pour deverouiller les protections
par mot de passe tant sur les feuille que le projet VBA proteger par mot de passe  ul sert surtout a debloquer un fichier dont les mots de passe ont ete oubliés . je crois si on relits les intentions de 'auteur que ça ne marche pas sur les verouillage par code . C'est une extention XLA d'excel . d'ailleur celui ci jouis d'une protection un poil plus performante que ce qui est mit par défaut du coté de chez Bill .
Daranc

signaler à un administrateur
Commentaire de paradoxalmm le 05/03/2007 10:27:37

J'ai perdu mon mot de passe "vbaproject", y a t il un moyen de le retrouver?

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.