elistian Posted December 26, 2006 Share Posted December 26, 2006 Ok I need some help from the VB Script Guru's out there. Ive been messing around with the SwitchBlade but need a feature from it pulled so I can use it for something else. As all of you know, when executing a batch file, a command window pops up which is not very stealth like. SwitchBlade fixs this by having a "VBScript Encoded Script File" named "go.vbe" on the emulated cd-rom that simply executes the "go.cmd" batch file on the thumb drive silently with no windows popping up. Now I need another one of these ".vbe" VBScripts to execute a batch file for me that has a different name. I can not edit this current one as its just jibberish when you open it. All I need is a simple ".vbe" VBScript that will silently execute a batch file named "execute.bat" located in the same directory as the ".vbe" script. Can any fellow haklings help me out with this. Simply have it run a batch file named "execute.bat" that will be located in the same exact directory as the script, but run it silently, with no command windows popping up. Any help at all is appreciated! Thanks... 8) Quote Link to comment Share on other sites More sharing options...
remkow Posted December 26, 2006 Share Posted December 26, 2006 It doesn't necessarily have to be a vbe script, it can also be vbs. Use the following vbs script to decode a vbe file, and then just change go.cmd to whatever you want. option explicit Dim oArgs, NomFichier 'Optional argument : the encoded filename NomFichier="" Set oArgs = WScript.Arguments Select Case oArgs.Count Case 0 'No Arg, popup a dialog box to choose the file NomFichier=BrowseForFolder("Choose an encoded file", &H4031, &H0011) Case 1 If Instr(oArgs(0),"?")=0 Then '-? ou /? => aide NomFichier=oArgs(0) End If Case Else WScript.Echo "Too many parameters" End Select Set oArgs = Nothing If NomFichier<>"" Then Dim fso Set fso=WScript.CreateObject("Scripting.FileSystemObject") If fso.FileExists(NomFichier) Then Dim fic,contenu Set fic = fso.OpenTextFile(NomFichier, 1) Contenu=fic.readAll fic.close Set fic=Nothing Const TagInit="#@~^" '#@~^awQAAA== Const TagFin="==^#~@" '& chr(0) Dim DebutCode, FinCode Do FinCode=0 DebutCode=Instr(Contenu,TagInit) If DebutCode>0 Then If (Instr(DebutCode,Contenu,"==")-DebutCode)=10 Then 'If "==" follows the tag FinCode=Instr(DebutCode,Contenu,TagFin) If FinCode>0 Then Contenu=Left(Contenu,DebutCode-1) & _ Decode(Mid(Contenu,DebutCode+12,FinCode-DebutCode-12-6)) & _ Mid(Contenu,FinCode+6) End If End If End If Loop Until FinCode=0 WScript.Echo Contenu Else WScript.Echo Nomfichier & " not found" End If Set fso=Nothing Else WScript.Echo "Please give a filename" WScript.Echo "Usage : " & wscript.fullname & " " & WScript.ScriptFullName & " <filename>" End If Function Decode(Chaine) Dim se,i,c,j,index,ChaineTemp Dim tDecode(127) Const Combinaison="1231232332321323132311233213233211323231311231321323112331123132" Set se=WSCript.CreateObject("Scripting.Encoder") For i=9 to 127 tDecode(i)="JLA" Next For i=9 to 127 ChaineTemp=Mid(se.EncodeScriptFile(".vbs",string(3,i),0,""),13,3) For j=1 to 3 c=Asc(Mid(ChaineTemp,j,1)) tDecode(c)=Left(tDecode(c),j-1) & chr(i) & Mid(tDecode(c),j+1) Next Next 'Next line we correct a bug, otherwise a ")" could be decoded to a ">" tDecode(42)=Left(tDecode(42),1) & ")" & Right(tDecode(42),1) Set se=Nothing Chaine=Replace(Replace(Chaine,"@&",chr(10)),"@#",chr(13)) Chaine=Replace(Replace(Chaine,"@*",">"),"@!","<") Chaine=Replace(Chaine,"@$","@") index=-1 For i=1 to Len(Chaine) c=asc(Mid(Chaine,i,1)) If c<128 Then index=index+1 If (c=9) or ((c>31) and (c<128)) Then If (c<>60) and (c<>62) and (c<>64) Then Chaine=Left(Chaine,i-1) & Mid(tDecode(c),Mid(Combinaison,(index mod 64)+1,1),1) & Mid(Chaine,i+1) End If End If Next Decode=Chaine End Function Function BrowseForFolder(ByVal pstrPrompt, ByVal pintBrowseType, ByVal pintLocation) Dim ShellObject, pstrTempFolder, x Set ShellObject=WScript.CreateObject("Shell.Application") On Error Resume Next Set pstrTempFolder=ShellObject.BrowseForFolder(&H0,pstrPrompt,pintBrowseType,pintLocation) BrowseForFolder=pstrTempFolder.ParentFolder.ParseName(pstrTempFolder.Title).Path If Err.Number<>0 Then BrowseForFolder="" Set pstrTempFolder=Nothing Set ShellObject=Nothing End Function PS. I didn't write this myself, but found it somewhere. I don't know who the original author is, but all creditz go to him (or her). Quote Link to comment Share on other sites More sharing options...
majk Posted December 26, 2006 Share Posted December 26, 2006 Couldn't you just name your file go.cmd or add execute.bat to the go.cmd file? Quote Link to comment Share on other sites More sharing options...
elistian Posted December 27, 2006 Author Share Posted December 27, 2006 no because the .vbe doesnt look for the go.cmd file in the same directory as itself. thanks for the code, ill give it a try Quote Link to comment Share on other sites More sharing options...
elistian Posted December 27, 2006 Author Share Posted December 27, 2006 2 questions 1) Is there any way to output the decode to a text file? It displays it in a window and cant make out some of the characters, for example how many """ there are in parts. Output to a text file would help. Heres the output: 2) You would happen to have another VBS file that re-encodes the .vbs into a .vbe again after I modify it, would you? thanks again Quote Link to comment Share on other sites More sharing options...
elistian Posted December 27, 2006 Author Share Posted December 27, 2006 Nevermind got it working. Just typed out that code from the image and then cut it down until it only had what I needed. For anyone else who wants something similar, here: If CreateObject("Scripting.FileSystemObject").FileExists("execute.bat") Then CreateObject("Wscript.Shell").Run "execute.bat", 0, False End If Quote Link to comment Share on other sites More sharing options...
remkow Posted December 27, 2006 Share Posted December 27, 2006 It's not necessary to make it into a vbe, it will run as vbs too, but you can always download the windows script encoder from microsoft. Quote Link to comment Share on other sites More sharing options...
elistian Posted December 28, 2006 Author Share Posted December 28, 2006 It's not necessary to make it into a vbe, it will run as vbs too, but you can always download the windows script encoder from microsoft. thanks, I know, figured that out during the process of getting the above to work. I prefer it coded as a .vbe just so it cant be viewed or modified but any average joe. I realize its not to difficult to decode, just enough to stop the average user. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.