Donc, mon mot de passe projet VBA Excel peut facilement être fissuré ... Quelles sont les autres options?

StackOverflow https://stackoverflow.com/questions/1063155

Question

Maintenant que je sais qu'il ya un facile solution de contournement à la manière standard de verrouillage et mot de passe de protection du code VBA, je voudrais passer à des moyens plus efficaces de protéger le code. Je suis d'offrir un outil basé sur Excel à un client, mais je voudrais quelque chose de plus qu'une simple protection de type gêne qui ne dissuadera les plus paresseux des pirates.

Y at-il des options dans Excel VBA, ou doit-on vraiment de compiler une application séparée et oublier notre interface Excel?

Était-ce utile?

La solution

Le plus simple et moyen le plus efficace est de déplacer votre code VBA à un VB6 compilé Com / Addin d'automatisation.

Ou vous pouvez envisager une solution .Net (avec obfuscateur) si le rendement est pas important.

Autres conseils

Une autre astuce consiste à écrire le code contre un objet Excel dans Access puis rendre le fichier d'accès à un .mde http://www.blog.methodsinexcel.co.uk/?s= accès + MDB Pauvres, mais piou; -)

Pas besoin de se convertir à une autre langue - vous devriez pouvoir obscurcir la plupart de votre code VBA par noreferrer www.vbsobfuscator.com [Note: Les liens vers archive.org]

Pratiquement, obfuscators VBA ne protègent pas le code VBA parce qu'ils quittent la structure de l'algorithme inchangé, ce qui peut remonter aux algorithmes originaux qui peuvent ensuite être récupérés.

Conversion code VBA pour VB6 signifie que votre demande sera limitée à 32 bits Excel (VB6 ne dispose pas d'une version 64 bits) et il peut être décompilé par VB décompilateurs comme https://www.vb-decompiler.org/

Conversion code VBA pour VB.NET est pas une solution parfaite non plus, comme .NET a un mécanisme 'de réflexion' qui peut convertir le code compilé de assembly .NET dans le code source d'origine .

Vous pouvez convertir votre code VBA à C / C ++ , ce qui serait une forme très efficace de protection, mais comme C / C ++ et VBA sont des langages de programmation très différentes, la conversion du code VBA pour C / C ++ est difficile, sujette aux erreurs, et généralement pas la peine de l'énorme quantité de temps et d'efforts qu'il faut.

Il y a un outil appelé VbaCompiler pour Excel ( http://vbacompiler.com ) qui convertit le code VBA au code de langage C et compile ensuite dans une DLL . Le niveau de protection de cet outil prétend offrir est similaire à celui de la conversion de votre code VBA à C / C ++, mais sans l'énorme quantité de travail manuel qui est nécessaire pour un tel processus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top