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.
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" <te...@orange.fr> a écrit dans le message de
news:%23hJug6l...@TK2MSFTNGP05.phx.gbl...
"Thierry DEMAN [MVP]" <tdeman...@NOSPAMfree.fr> a écrit dans le message
de news: 28C6082C-CC52-475B...@microsoft.com...
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
Bonsoir,
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
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
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
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
" teddy" <te...@orange.fr> a écrit dans le message de news:
%23hJug6l...@TK2MSFTNGP05.phx.gbl...
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.
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
> A quel niveau ?
> Ca doit faire un an que j'ai mis la gmail dans l'entête
Jusqu'au mois de mai, j'avais lu : <repo...@groupe.svp>
Mais, je dois reconnaître que je n'ai même pas essayé cette adresse...
--
@-salutations
Michel Claveau
"Thierry DEMAN [MVP]" <tdeman...@NOSPAMfree.fr> a écrit dans le message
de news: 28C6082C-CC52-475B...@microsoft.com...
--
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" <te...@orange.fr> a écrit dans le message de
news:ewmPbQN8...@TK2MSFTNGP03.phx.gbl...
En plus des outils "express", primal script inclut un outil de création
d'exe, que je n'ai jamais réussi à prendre en défaut, même avec du vbscript
un peu tordu.
http://www.primalscript.com/
com2exe et runas ne sont plus dispos, les liens de t�l�chargement sont bris�s.
J'aimerais savoir o� trouver ces perles antiques.