Protection EFFICACE du Code VBA

euromatic

XLDnaute Nouveau
Petite expérience amusante:
Je prends un fichier XL (1.xls) contenant une macro dont je souhaite protéger le code VBA du projet.
J'en fais une copie conforme (2.xls).
Je verrouille le code VBA du premier fichier avec un mot de passe(AZERTY).
Je verrouile le code VBA du second avec un autre mot de passe (QSDFGH).

J'effectue ensuite sous DOS une comparaison de fichier avec la commande FC (File Compare)
Voilà le résultat:
****** 1.xls
HelpContextID='0'
CMG='F1F324CC28CC28CC28CC28'
DPB='E3E136442F4B2F4B6ED68D498BC4E4'
GC='D5D7005E005101510151'

****** 2.XLS
HelpContextID='0'
CMG='1012C5E3C9E3C9E3C9E3C9'
DPB='2022F5F0FCF0FCA11EB024B123F9'
GC='3133E409E509E5F6'


J'ouvre mes 2 fichiers avec un Editeur Hexa, je remplace les valeurs CMG DPB & GC par des zéros, et hop plus de mots de passe !
Bonjour la Protection !

C'est d'ailleurs ce que se contente de faire le programme ACYD dont l'auteur veut nous faire croire qu'il utilise la 'Brut Force'.
Si c'était vraiment le cas, comment expliquer qu'un mot de passe de 100 caractères (4,508e+240 combinaisons!) soit cracké aussi rapidement qu'un mot de passe de 3 caractères (16581375 combinaisons) ?!

Ma question est donc la suivante : Existe-t-il une technique efficace pour verrouiller son code VBA , sans avoir recours à une compilation en fichier OCX ?

Merci d'avance
 

Jam

XLDnaute Accro
salut Euromatic, slimsamfr,

Il n'existe pas de vrai solution de protection des macros XL.
Le seul vrai moyen ce sont les DLL (ou XLL) - et encore, rien n'étant à l'abris d'un pro du reverse engeenering :(

Bon courage
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir euromatic, slimsamfr, Jam,

Tout d'abord, euromatic, je t'informe que l'auteur d'ACYD en question porte le pseudonyme de Ti et est un membre éminent de ce Forum !
Ensuite, j'ai beau parcourir Acyd (version 1.8), l'aide et les fichiers textes associés, je ne vois nulle part où Ti veut nous faire croire qu'il utilise la 'Brut Force' en ce qui concerne la protection VBA. Tout ce que je vois moi, c'est : 'Suppression de la protection VBA : La suppression de cette protection est excessivement facile et rapide.'.
Pour ma part, je n'ai pas l'impression que Ti ait l'habitude de vouloir 'faire croire'... bien au contraire.... Par exemple, je viens de voir ton profil de membre XLD dans lequel tu te qualifies toi-même d'Expert au niveau de l'utilisation d'Excel et Développeur avancé VBA, personnellement je t'en félicite, mais si tu regardes le profil de notre ami Ti, tu y verras indiqué avec humour : Débutant et C'est quoi le VBA ?

Une chose est sûre toutefois, tu n'es pas expert en délicatesse vis-à-vis d'un auteur qui n'a qu'une prétention : rendre service... et qui n'a de ce côté plus rien à prouver !

Bon... à part ça, je te souhaite la bienvenue sur XLD... ;)

Cordialement,

Message édité par: myDearFriend!, à: 10/04/2006 19:12
 

Creepy

XLDnaute Accro
Bonsoir,

Je ne voulais pas intervenir dans ce poste, mais je ne peux pas resister.

MyDearFriend à tout à fait raison je suis 100% d'accord avec lui.

AUCUNE protection n'est fiable à 100%, si quelqu'un le fait, quelqu'un peut le defaire !

Seulement plus tu augmentes le niveau plus ca reduit le nombre de personnes capables de le faire.

Personnellement je protege mon code VBA au taf, mais seulement dans le but d'eviter les fausses manip des utilisateurs. Pas pour eviter le 'pompage'.

De toute facon en général un macro VBA n'est pas un secret d'etat.

Bref bcp de vent pour pas grand chose je trouve !

Voila A+

Creepy
 

Ti_

Nous a quitté
Repose en paix
salut à vous

tout d'abord merci Didier pour avoir dit mieux que moi tout ce que je pensais de ce fil, et merci Creepy de l'avoir appuyé.
En fait, j'avais une réponse préparée dès cet après-midi, mais j'attendais de voir avant s'il susciterait des réactions et dans quel sens.
Bon, puisqu'on y est, voici donc la teneur de ma propre réponse :

l'auteur d'acyd parle de la force brute (l'expression n'est pas de moi, c'est une 'expression consacrée' pour signaler qu'on n'utilise aucune technique élaborée pour faire une recherche de mot de passe) pour les protections à l'ouverture du fichier, et c'est tout. Relis la doc d'Acyd. Sinon j'ai toujours dit que la protection VBA était la plus simple à supprimer.
Et enfin je ne veux rien faire croire du tout. Si tu n'aimes pas Acyd, je ne t'oblige pas à l'utiliser, je n'ai rien à vendre dans cette affaire...
D'autre part je n'entrerai pas dans les détails, mais la méthode que tu décris fonctionne quelquefois, mais pas toujours. Dans certaines circonstances elle rend le fichier inutilisable.

Sinon, si Cathy était là en ce moment, elle te confirmerait que l'auteur d'Acyd est un vicieux, mouarf !


Maintenant, je tiens à préciser que je reçois en permanence des tas de mails pour me demander comment vraiment rendre indéchiffrable un code VBA. Depuis longtemps j'ai pris le parti (contrairement à mes habitudes) de ne plus y répondre, tout simplement parce que je n'ai pas de réponse, sinon, comme le dit Jam, de créer une DLL, ce qui induit d'autres problèmes par ailleurs...
Si tu vas voir mon dernier programme 'Cryptage' (issu d'une question d'XLD et destiné il est vrai à un usage différent) sur Vériti, tu pourras y lire que je considère cet exercice, justement comme un exercice amusant, sans aucune autre garantie d'efficacité, puisque dans la mesure où on cherche à protéger quelque chose dans (ou depuis) un fichier Excel, on peut être sûr que c'est perdu d'avance...
 

Ti_

Nous a quitté
Repose en paix
En fait José, ce n'est pas toujours vrai. J'ai écrit mon algo de telle façon que quelquefois le tien est plus rapide, quelquefois c'est le mien (et dans Excel 2000 c'est toujours le mien !).
De toute façon on s'en fout, comme je le répète en permanence, on n'a pas (on ne devrait pas avoir) tous les jours besoin de supprimer les protections d'un fichier, alors qu'on attende 2 secondes ou 2 minutes, ça ne change rien...
Allez, rien qu'un petit coup sur le crâne, ça soulage tellement ! :evil:
 

Discussions similaires

Statistiques des forums

Discussions
312 451
Messages
2 088 517
Membres
103 873
dernier inscrit
Sabin