Aller au contenu

comment créér un .exe en VBA ?


Messages recommandés

Posté(e)

Bonjour à tous,

 

je cherche à protéger mes sources via l'utilisation d'un .exe qui, me semble-t-il, serait la meilleure solution, mais voilà, je n'ai pas trouvé de bouton pour créer mon sésame....

 

J'ai bien trouvé comment mettre un mot de passe pour avoir accès au code dans l'éditeur, mais cela me semble maigre comme protection.

 

Quelqu'un a-t-il déjà créé un .exe en VBA ?

 

merci pour vos réponses

 

Gawel :yltype:

Posté(e)

Salut

 

Perso je n' y connais rien en exe mais des infos la dessus m'interessent grandement vu que par la suite j'aimerai en construire aussi.

 

Donc tout ce que tu pourras me donner en liens avec les exe et le cryptage des sources : je prends !

 

En espèrant que quelqu'un pourra t'aider un peu mieux que moi.

 

@+

 

Enael

Posté(e)

hello,

j'ai quitté le désert,

et je reviens, hihihihi

ben en ce qui concerne les executables,

il faut la Version pleine de Visual Basic

pour en créer, le VBA n'est qu'un Visual "allégé"

pour une Application particulière, en l'occurence AutoCad.

en aucun cas il n'autorise la création de .EXE.

amicalement

 

Posté(e)

Salut Didier,

 

c'est que ce que je pense aussi !!

donc je vais tester cette solution: je viens de télécharger à l'instant même (pile poil juste là maintenant !) le .NET Framework de microsoft, et je vais essayer de compiler mon projet VBA; va certainement falloir rajouter 2/3 lignes de code pour lui dire sur quelle application tourner.

 

je sais pas trop ce qui va me sortir de la machine à gaz........

 

Gawel

Posté(e)

Gawel,

 

Oyez, oyez! Sonnez hautbois et résonnez musettes. Tu es l'heureux récipiendaire de mon 100ième message. Il n'y a cependant pas de recompense :-)

 

Le framework ne te permettra malheureusement pas de créer des exe à partir de VBA, même que dans l'esprit de ce nouvel environnement, le VBA n'existera plus.

 

Qu'est-ce que VBA: C'est un environnement de développement spécialisé pour un logiciel donné, qui ne peut exister sans lui et qui utilise la syntaxe de VB mais en mode interprété (d'ou l'impossibilité de compiler et, au mieux, de protéger le code par mot de passe). Les versions de VBA pour Excel et AutoCAD sont très différentes l'une d l'autre. Par exemple, l'accès aux données du logiciel est intégré (fonctions de chiffrier pour Excel, fonctions de dessins pour AutoCAD), les composantes de boites de dialogue, même si à première vue sont similaires montrent d'énormes divergences. Les fabricants de logiciels payent des redevances à Microsoft pour l'incorporation de VBA mais pas l'utilisateur final.

 

Qu'est ce VB : C'est un environnement autonome permettant de déployer des versions compilées sous formes de exe, de dll, de composantes ActiveX, etc. En VB6, le code n'était pas encore 'managé'. Le développeur paye pour son environnement.

 

Qu'est qu'un framework: À partir de Visual Studio 2002 (VB7, C++ 7, etc.), on a complètement repensé l'environnement de développement. Tous les langages, exception du C++ produisent du code managé. Pour le c++, on a le choix de managé ou non. Mais qu'est qu'on 'manage' ainsi? C'est que Microsoft a décidé d'en finir avec les particularité s des langages, des systèmes d'exploitation et de la version des dll (dll hell). Chaque nouveau langage doit d'abord se conformer à des normes de compatibilité. VB, C++, J++ ... et même Pizza en sont des exemples. Le code source doit d'abord être converti dans un pré-format universel qui le rend indépendant de son langage d'origine et de son système d'exploitation. C'est alors du code managé car il n'est toujours pas utilisable tel quel. Le rôle du framework est justement de prendre en charge ce code, selon la version du système d'exploitation. Il existe des frameworks spécifiques pour Windows 98, Windows Nt, Windows 2000, Windows XP, Linux, MacOs, etc. Il existe plusieurs versions de frameworks selon que l'on doivent être compatible à Visual Studio 2002, 2003 et les autres.

 

Serge

Posté(e)

Aïe aïe aïe !!

 

va falloir que je change de tactique alors....

 

Y-aurait-il alors un autre moyen de protéger le code, en rajoutant une autre couche si nécessaire ?

 

Gawel

Posté(e)

Salut gawel

 

Je sais qu'on dit : aucun pass n'est inviolable mais certains le sont plus que dautre quand même et cela dépend contre qui tu veux protéger tes sources si c'est juste l'utilisateur lambda rien que le fait de mettre un pass ca va lui prendre la tete un petit moment mais si tu veu un bon mot de passe. Essais de mélanger minuscule, majuscule, chiffres, espace, et code ASCI Avec ca je pense que tu seras à l'abri d'intrusion dans ton code pour un moment

 

Mais on doit pouvoir contourner un mot de passe je pense (je suis pas un connaisseur en sécurité). Donc voila après ca dépend vraiment de la personne qui aura ton prog entre les mains. Si c'est un vrai hacker laisse tomber c'est plus qu'un simpel criptage qu'il te faudra , il faut vraiment que tu cibles le public de destination et la tu pourras enfin te protéger.

 

Mais dans l'univers rien n'est impossible (dixit I. et G. Bogdanov)

 

Enael

Posté(e)

Euh c'est juste pour corriger mon erreur mais je pense que vous l'aviez fait de vous même :

Il manque un I à code ASCII.

 

Voila désolé, je ne m'étais pas relu.

 

Enael

Posté(e)

Salut Enael,

 

pour l'instant mon mot de passe se résume à une suite de 10 caractères minuscules. Je vais le modifier en suivant tes conseils.

Etant donné que je vais transférer mon appli aux indiens (qui habitent en inde je le rappelle), ce sont des bidouilleurs de premières............ s'ils veulent vraiment voir la source, je pense qu'ils y arriveront !

 

amicalement

 

Gawel

Posté(e)

Euh oui il y a pas mal de bidouilleurs et des bons qui plus est donc le cryptage ne ferait que le cacher un temps un peu plus long à ceux qui voudront voir les sources.

 

(T'as qu'à leur laisser quelques petits commentaires à leur intention dans tes sources <acronym class=dict title=)

 

Mais en fait, tu pourrais pt m'en dire plus sur le role du .exe parce que je ne sais pas trop a quoi ca sert de le complier de cette manière.

 

merci

 

Enael

Posté(e)

l'intérêt du .exe, c'est qu'après tu ne peux plus accèder à la source, car tout le code de base est transformé: impossible donc de dégoter quoi que ce soit à l'intérieur......

 

Gawel

Posté(e)

Donc si je comprend bien en gros ca compresse ton code sauf que ne peut plus le décomprésser après?

 

Euh par contre je dis ca comme ca sans vraiment prouver ce que j'affirme mais je ne pense pas qu'en VBA tu puisses créer un .exe vu que tu reste tout le temps tributaire de l'éditeur MS. Enfin je fait mon petit tour et si j'ai du nouveau là dessus je te fais signe.

 

Enael

Posté(e)

Oui c'est pour cela qu'au début je parlais de migrer mon appli en VB.NET par exemple.

 

mais apparemment, cela ne devrait pas aboutir au résultat escompté.

 

je désespère pas quand même, on va bien réussir à trouver une solution: impossible n'est pas français ! Super Dupont, vole à mon secours !!

 

Amicalement

Gawel

 

 

Posté(e)

Gawel,

 

3 commentaires:

 

1) Penser que le choix du mot de passe peut dissuader l'ennemi c'est faire fausse route. C'est la ligne Maginot :-) VBA a des faiblesses qui sont très facilement exploitées par les hackers. Vous comprendrez que je ne puisse dévoiler des pistes pour ne pas contribuer au décodage de programme.

 

2) VB.NET n'est pas un bon choix. Appelons ce produit VB7. VB7 permet de créer des exécutables autonome, au même titre que le vieux VB6 donc pas compatible à intention de ta demande. Il permet également de créer des solutions (i.e. un dll). Seule la version 2005 d'AutoCAD permet son interprétation (voir commande NETLOAD)

 

3) Reste que le moyen le plus efficace est de créer un dll en VB6 puis de l'ajouter aux références en VBA. La création d'une classe pour l'échange de propriétés, méthodes et événements est requis.

 

Serge

 

Posté(e)

 

Bonsoir

 

Qq commentaires, je ne suis pas programmeur DU TOUT en VB, donc ...

voilà mon impression (de vieil informaticien) à ce sujet:

 

Quelque soit la complexité de votre mot de passe, si JAMAIS il est embarqué

dans le programme crypté afin justement de pouvoir le relire si on a le mot de passe,

il faut savoir que cette protection est illusoire, car vous trouverez TOUJOURS un utilitaire

(moyennant qq dollars éventuellement) qui le retrouvera ...

 

Par contre si le mot de passe est long et complexe: minuscules / majuscules / caractères spéciaux / etc ALORS LA, seule la force brute permettra EVENTUELLEMENT de retrouver le source d'origine.

 

Mais n'oubliez JAMAIS votre mot de passe !!!

 

En supposant BIEN SUR, que le logiciel utilise un algorythme d'encodage SERIEUX.

 

Et au vu de tous les utilitaires que l'on peut trouver sur le NET pour décoder des trucs Microsoft, je crains malheureusement que le VB ne soit PAS DU TOUT dans cette catégorie.

 

Je suis sur que Serge va me faire quelques commentaires PERTINENTS !!!

 

Crabuleusement

 

Autodesk Expert Elite Team

Posté(e)

Salut gawel et les autres forumeurs

 

Voila je viens de finir ma petite ballade sur la toile et voial ce que j'en ai sorti :

 

- Pour la partie sur l'executable :

 

Pour créer un executable il faut deja etre dans un "vrais" environement de developpement celui du vba consiste a créer des macros des script qui par definition sont lisible a partir d'un editeur de texte. Pour faire de vrais executable il faut employer un compilateur et un linkeur que l'on trouve generallement dans Visual Studio pour ceux qui utilise les produits Microsoft. Le linkeur s'appel LINK.EXE et le compilateur pour visual basic 6.0 est C2.EXE. Donc la solution serais d'utiliser l'environement Visual Basic pour créer un executable...

 

- Pour la sécurité :

 

Vous pouvez toujours exporter vos form & modules VBA puis les importer sur VB6 ... ça marche seulement si l'on utilise pa les propriété de l'environement VBA (Excel, Access, etc) ...

 

M'enfin un exe c pas plus sécurisé qu'un VBA si on y reflechi bien ;)

 

Posté(e)

Ah lala faut que je me réveille moi j'en ai oublié la fin de mon message.

 

Donc moralité si tu veux protogé ton sources :

 

- Supprime internet

- Suprime les lecteurs (dvd, cd , disquette)

- Supprime les ports séries et parallèles

- Supprime (usb, firewire, autres...)

- Supprime le clavier

- Supprime l'écran

- Soude ta tour

- Coule une dalle de béton dessus

- Détruit toutes les sauvegardes externes que tu as fait

 

Et la en principe on ne peut plus modifier ta source sauf peut etre avec une bombe magnétique ou un super aimant ( mais la c'est pas de la modification mais de la destruction de source )

 

Non la vrai moralité de tout ca c'est que peut importe ta protection, les protections sont faites pour etre cassé et c'est bien ca l'enjeu. Car comme je l'ai écrit dans des post d'avant en empruntant cette phrase aux joyeux frères Bogdanov : Dans l'univers rien n'est impossible.

 

Alors si tu veux vraiment mettre en exploitation ta source, fait toi à l'idée que le code sera lu, lu et relu et certainement modifier. Eh oui, ton bébé que tu auras chéri et élevé ne tappartiendra plus.

 

Faut pas pleurer c'est la vie ;)

 

Enael

Codeur dépressif <acronym class=dict title=

Posté(e)

Le Crabe,

Normalement, les majuscules dans des messages signifient 'crier' selon la nétiquette mais je sais que c'était plus pour attirer l'attention. Néanmoins, et puisque c'est déjà vendredi (ou presque) je me permets de relater une autre anecdote PERTINENTE :-).

 

L'autre jour, j'entre à la bibliothèque et je crie

"UN HAMBURGER, UNE FRITE ET UN COKE".

 

La bibliothécaire me répond:

"Monsieur, vous êtes à la bibliothèque ..."

 

Je lui dit alors à voie basse:

"désolé... un hamburger, une frite et un coke"

 

 

Enael

Lorsqu'on passe de VBA à VB, les formes (feuilles ou forms) deviennent alors des feuilles de concepteur Microsoft. Celle-ci réagissent différemment, et comme tu l'a mentionné, risque que de ne pas fonctionner telles quelles s'il y a des références à des instructions natives (pensons à ThisDrawing venant d'AutoCAD).

 

 

Aux autres,

Pour vous démontrer que VBA n'offre absolument aucune protection, je vous propose de m'envoyer un court dvb encrypté dans lequel vous aurez inscrit en commentaire la date d'aujourd'hui et mon nom à la 2-ième ligne, ceci pour me prouver que vous en êtes l'auteur et je vous en dévoilerai le contenu. Mon adresse est de courriel est le cunivers(at)univers.qc.ca ou le serge.camire(at)cadnovation.com, en remplaçant le (at) par @.

 

Serge

 

Posté(e)

Un petit post en bonus encore sur ce sujet.

 

Donc voila ma ballade s'achève et j'ai essayer de trouver comment protéger des sources mais toutes les personnes mon dit a peu près la même chose : dès que ca commence par vb... oublie, les protection n'existe pas.

 

Ils m'ont expliqué que pour la complilation en VB.net ca ne sert pas à grand choses vu que des décompilateur existent. Pour le vb.6, les compilateur existe aussi mais sont beaucoup plus difficilement trouvable donc vb6 est peut etre pour le moment le moyen le plus sur enfin tout est relatif.

 

Merci Serge pour tes anecdotes si jamais tu en as d'autres hésite pas. Un peu de détente dans le coding ne fait jamais de mal.

 

@+

 

Enael

Posté(e)

Enael,

 

SI je peux donner une conclusion:

Dans AutoCAD, les fichiers autrefois protégés par les méthodes pre-R14 ainsi que les VBA ne sont pas protégés à toute épreuves. Les vlx, arx, dll (en référence dans un VBA) et exe sont compilés et très bien protégés, même si certains font avancer qu'il existe des compilateurs : qui veut lire du code machine?

 

Serge

  • 1 an après...
Posté(e)

Alors ? Ca fait une demi heure que je lis ce forum et.... Je ne sais toujours pas si, depuis un dvb faire un arx ou autre. Si je fais une application qui tourne sous autocad et que je souhaite la distribuée ou même la vendre, il n'y auriat aucun moyen ? Mais comment font les Covadis et les Topolist ?

 

Ceci dit, c'est toujours agréable d'être sur Cadxp....

 

Bonne soirée à tous...

Ou bonne journée... ;)

 

 

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité