从HTA调用时,编码的VBS无法正常工作

时间:2018-04-04 17:33:36

标签: vbscript hta

我们有一个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应该正常工作,不知道为什么我们在这种情况下正在消失问题。

1 个答案:

答案 0 :(得分:3)

要使用已编码的VBScript,您需要指定要与language="VBScript.Encode"配合使用的语言引擎,而不仅仅是language="VBScript"

另外,如果你想使用它,请务必小心谨慎#34;为了保持安全&#34;。脚本编码器的目的是阻止随意检查,但它没有加密&#34;任何传统意义上的代码,以及not that hard来获取普通脚本。