我们有一个HTA使用VBS自动登录到服务器。为了维护安全性,我们想编码VBS,该VB具有登录服务器的凭据。我们遇到了一个vbs脚本,该脚本编码了vbs文件时,输出是一个vbe文件。
现在,当此VBE从HTA调用时,它显示和错误,似乎无法正确读取VBE。
以下是我们将VBE链接到hta的方式:
<script language="VBScript" src="hola.vbe" > </script>
另外,以下是编码的代码:
Option Explicit
dim oEncoder, oFilesToEncode, file, sDest
dim sFileOut, oFile, oEncFile, oFSO, i
dim oStream, sSourceFile
set oFilesToEncode = WScript.Arguments
set oEncoder = CreateObject("Scripting.Encoder")
For i = 0 to oFilesToEncode.Count - 1
set oFSO = CreateObject("Scripting.FileSystemObject")
file = oFilesToEncode(i)
set oFile = oFSO.GetFile(file)
Set oStream = oFile.OpenAsTextStream(1)
sSourceFile=oStream.ReadAll
oStream.Close
sDest = oEncoder.EncodeScriptFile(".vbs",sSourceFile,0,"")
sFileOut = Left(file, Len(file) - 3) & "vbe"
Set oEncFile = oFSO.CreateTextFile(sFileOut)
oEncFile.Write sDest
oEncFile.Close
Next
根据我的理解,编码的VBS应该像正常情况一样工作,不确定为什么在这种情况下我们会淡出问题。
要使用编码的vbscript,您需要指定与language="VBScript.Encode"
一起使用的语言引擎,而不仅仅是language="VBScript"
。
另外,如果您想使用"维护安全性",请保持警惕。脚本编码器的目的是确定随意检查,但并不是在任何常规意义上"加密"代码,也不是很难获得朴素的脚本。