我们有一个HTA用于使用VBS自动登录服务器。为了保持安全性,我们希望对VBS进行编码,该VBS具有登录服务器的凭据。我们遇到了一个VBS脚本,当拖动到VBS文件时对其进行编码,输出是一个VBE文件。
现在,当从HTA调用此VBE时,它显示并显示错误,这似乎无法正确读取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应该正常工作,不知道为什么我们在这种情况下正在消失问题。
答案 0 :(得分:3)
要使用已编码的VBScript,您需要指定要与language="VBScript.Encode"
配合使用的语言引擎,而不仅仅是language="VBScript"
。
另外,如果你想使用它,请务必小心谨慎#34;为了保持安全&#34;。脚本编码器的目的是阻止随意检查,但它没有加密&#34;任何传统意义上的代码,以及not that hard来获取普通脚本。