Закодированный VBS не работает при вызове из HTA

У нас есть HTA, используемый для автоматического входа на серверы с помощью VBS. Для обеспечения безопасности мы хотели закодировать VBS, у которого были учетные данные для входа на сервер. Мы наткнулись на 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 должен работать как обычный, не знаю, почему в этом случае у нас исчезает проблема.


person Prateek Jaiswal    schedule 04.04.2018    source источник


Ответы (1)


Чтобы использовать закодированный VBScript, вам нужно указать языковой движок для использования с language="VBScript.Encode", а не только с language="VBScript".

Кроме того, будьте очень осторожны, если вы хотите использовать его «Для обеспечения безопасности». Кодировщик скриптов предназначен для предотвращения случайной проверки, но он не «шифрует» код в обычном смысле, а не так сложно вернуть простой скрипт.

person Community    schedule 04.04.2018