我最近不得不移动构建服务器,因为我们正在将代码库从.NET 4推进到4.6.1。我现在遇到的问题是我们使用了许多经典ASP页面,我们使用scrrun.dll scripting.encoder对象进行模糊处理。我们的旧构建服务器,Windows 2003机箱,没有问题。当前框似乎无法管理修改<%@ Language=VBScript %>
标记。当我使用scripting.encoder.EncodeScriptFile
cflag
或0
拨打1
时,我会收到
模块msvcrt.dll上的c00000005。
当我使用cflag
2
时,该脚本会很好地混淆,但该标志会将语言标记的修改关闭为<%@ Language=VBScript.Encode %>
,或者在某些情况下将其修改为cflag
在语言标记中,0
<%@ Language=VBScript.Encode %>
会插入2
标记,但scripting.encoder.EncodeScriptFile
不会。{/ p>
有没有办法让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(".asp",sSourceFile,1,"")
sFileOut = Left(file, Len(file) - 3) & "aspe"
Set oEncFile = oFSO.CreateTextFile(sFileOut)
oEncFile.Write sDest
oEncFile.Close
if i = 1 then
exit for
end if
Next
在Windows Server 2008 R2中正常运行?还有另一种方法可以做同样的功能吗?
我正在使用此脚本作为测试人员:
set oFSO = CreateObject("ADODB.Stream")
oFSO.CharSet = "utf-8"
file = oFilesToEncode(i)
oFSO.open
oFSO.LoadFromFile(file)
sSourceFile=oFSO.ReadText()
sDest = oEncoder.EncodeScriptFile(".asp",sSourceFile,0,"")
sFileOut = Left(file, Len(file) - 3) & "aspe"
oFSO.WriteText(sFileOut)
oFSO.SaveToFile sDest
oEncFile.Close
编辑:由于代码在评论中没有很好地格式化,因此修改了部分
getState()