Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VB Script] compiler un script ?

16 réponses
Avatar
teddy
Bonjour,

Je cherche un outil pour "compiler" des fichiers VBScript ou BAT en fichier
EXE
Le but est surtout d'empêcher qu'on modifie les scripts (et qu'ils plantent
à cause de cela !).
Avez-vous une expérience dans ce genre d'outil ?
Merci pour vos suggestions.

10 réponses

1 2
Avatar
Thierry DEMAN [MVP]
Bonsoir,

The Windows Script Encoder (screnc.exe) is a Microsoft tool that can be used
... You can download the Windows Script Encoder at
http://msdn.microsoft.com/scripting/default.htm?/scripting/vbscript ...

Attention, des outils de décodage existent aussi!

A+

--
Thierry DEMAN-BARCELÒ
Exchange MVP, MCSE2003+M,MCSE2003+S,MCDBA,MCITP dba&Dev
http://base.faqexchange.info http://www.faqexchange.info
http://ISAFirewalls.org

" teddy" a écrit dans le message de
news:%
Bonjour,

Je cherche un outil pour "compiler" des fichiers VBScript ou BAT en
fichier EXE
Le but est surtout d'empêcher qu'on modifie les scripts (et qu'ils
plantent à cause de cela !).
Avez-vous une expérience dans ce genre d'outil ?
Merci pour vos suggestions.





Avatar
teddy
J'essaye ça tout de suite.
Merci !
J'ai vu qu'il existe aussi des outils tels que VBS2EXE
Ted

"Thierry DEMAN [MVP]" a écrit dans le message
de news:
Bonsoir,

The Windows Script Encoder (screnc.exe) is a Microsoft tool that can be
used ... You can download the Windows Script Encoder at
http://msdn.microsoft.com/scripting/default.htm?/scripting/vbscript ...

Attention, des outils de décodage existent aussi!

A+

--
Thierry DEMAN-BARCELÒ
Exchange MVP, MCSE2003+M,MCSE2003+S,MCDBA,MCITP dba&Dev
http://base.faqexchange.info http://www.faqexchange.info
http://ISAFirewalls.org

" teddy" a écrit dans le message de
news:%
Bonjour,

Je cherche un outil pour "compiler" des fichiers VBScript ou BAT en
fichier EXE
Le but est surtout d'empêcher qu'on modifie les scripts (et qu'ils
plantent à cause de cela !).
Avez-vous une expérience dans ce genre d'outil ?
Merci pour vos suggestions.








Avatar
MClaveau (MVP)
Bonjour !

Pour les VBS, la solution-astuce de Thierry est bonne.

Pour les batch, il faut chercher les (très) vieux Bat2com et Com2exe.
Tout petits, ils continuent à bien fonctionner... pour des batch
simples ne contenant pas des trucs trop récents ou trop tordus.

Concernant VBS2EXE ; comme beaucoup d'autres (+ ou - pseudos)
compilateurs VBS, ce sont des solutions payantes plus ou moins
complètes.

Il y a encore une autre solution : ma version de RunAs
(http://www.ponx.org/batutils ; cliquer à gauche pour voir un contenu,
et en bas pour télécharger).
Cet utilitaire permet de transformer une ligne de commande quelconque
en un executable (et un petit fichier paramètre, crypté).







--
@-salutations

Michel Claveau
Avatar
Gilles LAURENT [MVP]
" teddy" a écrit dans le message de
news:%
| Bonjour,

Bonsoir,

| Je cherche un outil pour "compiler" des fichiers VBScript ou BAT en
| fichier EXE
| Le but est surtout d'empêcher qu'on modifie les scripts (et qu'ils
| plantent à cause de cela !).
| Avez-vous une expérience dans ce genre d'outil ?
| Merci pour vos suggestions.

La solution de packaging native Microsoft ! IExpress 2.0 :
http://www.microsoft.com/technet/prodtechnol/ie/ieak/techinfo/deploy/60/en/iexpress.mspx

Guide pas-à-pas :
http://renegadetech.blogspot.com/2006/07/how-to-convert-bat-file-or-vbs-file.html

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
Jean
Le but est surtout d'empêcher qu'on modifie les scripts (et qu'ils plantent à
cause de cela !).


Mettre l'attribut "lecture seule" sur le fichier script ou batch.

... "compiler" des fichiers VBScript ou BAT en fichier EXE ...


Pour ce qui est de "compiler", masquer, obscurcir, ... :

Pour VBScript on pourrait effectivement penser à encoder le script avec
screnc.exe mais l'encodage est réversible (historiquement c'est
Jean-Luc Antoine sur son site interclasses.com qui a publié le premier
script du genre), ce qui s'encode se décode, et la taille du script va
augmenter (ce qui peut porter à conséquence si on fait des
inclusions-include).


La meilleure solution pour "compiler" un script, quelqu'il soit, est de
le "réécrire" dans le langage non interprété (et donc compilé) dans
lequel il est écrit (ou dont il s'inspire).
Soit Visual basic pour VBScript, C++ pour Jscript et C# pour
PowerShell.

La différence majeure entre votre script et le code qui sera complié
résidera essentiellement dans le fait que vous devrez typer vos
variables (indiquer que machin est un entier , que truc est une chaîne,
...) ... pour le reste il y a de fortes chances que le code de votre
script ne devra pas être modifié.

L'avantage supplémentaire en utilisant un "langage compilé" est que les
anti-virus ne feront pas de sauts de carpes lorsque votre code sera
exécuté.

Une solution alternative pourrait être d'utiliser le Script Control (un
ActiveX MS) dans un "langage compilé", là vous pourrez insérer votre
script tel quel dans le code de l'exécutable.
Le choix du langage n'a pas d'importance (c++, Delphi, ... ).
Les anti-virus ne feront pas de sauts de carpes non plus.
Le seul "inconvénient" est que le Script Control est inclus dans Vista
(et peut être dans certains Win XP/2000) mais en tout cas pas sous
Windows 9x.
Mais une distribution téléchargeable du Script Control est disponible
(faire une recherche Google sur "Script Control" pour trouver le lien
MS).
Comme vous pouvez utiliser le langage de votre choix vous pouvez vous
orienter vers des solutions non payantes comme Dev-C++ ou une version
perso de Delphi.
Pour faire du non payant en VB vous pourriez imaginer construire un ocx
(dll, activex) à l'aide de VB5CCE (Visual Basic 5 Control Creator
Edition), une version gratuite de VB5 dédiée à la construction de
com/activeX/appelezcacommevousvoulez, qui "contiendrait" le contenu
"traduit" de votre script (vous pouvez même pousser le bouchon jusqu'à
faire un appel au Script Control au sein de l'ocx).
Cet ocx serait alors utilisé à partir d'un script.
Un peu chipo, mais jouable.
Malheureusement vb5cce n'est plus disponible (à ma connaissance =>
vérifier) en téléchargement sur le site MS ... si vous n'en disposez
pas, oubliez.

Une dernière option serait d'utiliser un installateur disposant d'un
mode silencieux.
Il suffit d'insérer votre script/batch dans l'installateur et de lui
demander d'exécuter votre script/batch à son démarrage.
Mon choix personnel en non payant pour ce genre de truc se porte sur
NSIS (faire un recherche sur NSIS dans Google).
N'oubliez pas que dans ce cas :
1- l'anti-virus fera des sauts de carpes
2- votre script sera décompressé par l'installateur quelque part sur le
disque puis exécuté ... il ne sera donc pas totalement invisible.
Pour un .VBS, comme le code est d'abord chargé en mémoire puis exécuté,
on peut limiter le temps de présence du fichier script en commencant
par détruire le script au début de celui-ci, par exemple :

'---8<---Simili_Auto_Wipe.VBS---Jean-JMST-Belgium---

'>>>Destruction du script>>>
With CreateObject("Scripting.FileSystemObject")
'Vidage du contenu du script en cas de récupération
'du fichier dans la copie de la FAT par un
'utilitaire adhoc.
.CreateTextFile WScript.ScriptFullName,True
'Effacement du script
.DeleteFile WScript.ScriptFullName,True
End With
'<<<Destruction du script<<<

'>>>CODE>>>
With WScript
.Echo .Version
End With
'<<<CODE<<<

'---8<---Simili_Auto_Wipe.VBS---Jean-JMST-Belgium---


Mais bon, comme je le disais plus haut, l'outil adéquat pour faire
tourner un code sans que des modifications puissent y être aisément
apportée par autrui est un exécutable créé à l'aide d'un "langage
compilé".


Amicalement,

--
Jean - JMST
Belgium

Avatar
Méta-MCI \(MVP\)
Bonjour, Jean !


Je profite de ton retour (après tous ces mois de vacances ?) pour te dire que j'ai eu besoin de te
joindre, durant l'été, et n'ai pas pu, pour cause d'adresses e-mail soigneusement massacrées dans
tes en-têtes de messages de news.

Est-ce que cette nouvelle adresse, sous gmail, est utilisable ? (Au passage : plus de précautions
antispam ?)

@+

Michel Claveau
Avatar
Jacques Barathon [MS]
"Jean" wrote in message
news:
...
Comme vous pouvez utiliser le langage de votre choix vous pouvez vous
orienter vers des solutions non payantes comme Dev-C++ ou une version
perso de Delphi.
Pour faire du non payant en VB vous pourriez imaginer construire un ocx
(dll, activex) à l'aide de VB5CCE (Visual Basic 5 Control Creator
Edition), une version gratuite de VB5 dédiée à la construction de
com/activeX/appelezcacommevousvoulez, qui "contiendrait" le contenu
"traduit" de votre script (vous pouvez même pousser le bouchon jusqu'à
faire un appel au Script Control au sein de l'ocx).
Cet ocx serait alors utilisé à partir d'un script.
Un peu chipo, mais jouable.
Malheureusement vb5cce n'est plus disponible (à ma connaissance =>
vérifier) en téléchargement sur le site MS ... si vous n'en disposez pas,
oubliez.


Sans discuter du fond de la question sur l'intérêt de la compilation d'un
script pour le protéger en écriture, je signale juste que Visual Studio
Express est gratuit et disponible notamment pour C# et Visual Basic.

http://www.microsoft.com/france/msdn/vstudio/express/default.mspx

Jacques

Avatar
teddy
Merci encore à tous pour vos réponses.
Je cherchais surtout la solution la + facile pour ne pas avoir à
redévelopper ces scripts VBS (qui fonctionnent parfaitement) en VB ou C#.
Teddy


" teddy" a écrit dans le message de news:
%
Bonjour,

Je cherche un outil pour "compiler" des fichiers VBScript ou BAT en
fichier EXE
Le but est surtout d'empêcher qu'on modifie les scripts (et qu'ils
plantent à cause de cela !).
Avez-vous une expérience dans ce genre d'outil ?
Merci pour vos suggestions.





Avatar
Jean
"Jean" wrote in message
news:
...
Comme vous pouvez utiliser le langage de votre choix vous pouvez vous
orienter vers des solutions non payantes comme Dev-C++ ou une version
perso de Delphi.
Pour faire du non payant en VB vous pourriez imaginer construire un ocx
(dll, activex) à l'aide de VB5CCE (Visual Basic 5 Control Creator
Edition), une version gratuite de VB5 dédiée à la construction de
com/activeX/appelezcacommevousvoulez, qui "contiendrait" le contenu
"traduit" de votre script (vous pouvez même pousser le bouchon jusqu'à
faire un appel au Script Control au sein de l'ocx).
Cet ocx serait alors utilisé à partir d'un script.
Un peu chipo, mais jouable.
Malheureusement vb5cce n'est plus disponible (à ma connaissance =>
vérifier) en téléchargement sur le site MS ... si vous n'en disposez pas,
oubliez.


Sans discuter du fond de la question sur l'intérêt de la compilation d'un
script pour le protéger en écriture, je signale juste que Visual Studio
Express est gratuit et disponible notamment pour C# et Visual Basic.

http://www.microsoft.com/france/msdn/vstudio/express/default.mspx

Jacques


Merci pour la précision.

J'y avais pensé mais je n'ai jamais testé les Express dont j'avais sans
doute mal lu qu'elle seraient "périmées" en février 2007.
De plus je m'étais convaincu que les exécutables produits ne seraient
"valables" que sur la machine où ils avaient été créés.

Donc, oui si ces versions sont disponibles sans restrictions on peut
définitivement oublier vb5cce.

Amicalement,

--
Jean - JMST
Belgium


Avatar
Jean
Bonjour, Jean !


Je profite de ton retour (après tous ces mois de vacances ?) pour te dire
que j'ai eu besoin de te joindre, durant l'été, et n'ai pas pu, pour cause
d'adresses e-mail soigneusement massacrées dans tes en-têtes de messages de
news.



A quel niveau ?
Ca doit faire un an que j'ai mis la gmail dans l'entête et elle me
semble correcte.

Est-ce que cette nouvelle adresse, sous gmail, est utilisable ?


Oui (mais maintenant je doute :-) )

(Au passage : plus de précautions antispam ?)



Sur certains comptes je fais le filtrage avec MesSpams.
Sur le compte gmail le filtrage se fait "chez" gmail et je n'y ai reçu
aucune proposition pour des potions magiques jusqu'à présent :-)

@+

Michel Claveau


Amicalement,

--
Jean - JMST
Belgium

1 2