我有这个动态数据库文件。有人通过电子邮件发送给我。谁能告诉我这个文件有什么用?
dim M
M = "Chinese names"
S = ""
Dim N
n = 0
dim NN
NN = "ede"
do until n = Len(M)
n = n + 1
S = S & Chr(AscW(Mid(M, N, 1)) - &H9000 + len(NN))
loop
Execute S
答案1
第一条建议:
当你得到一些像这样的未知的 vbscript 文件时,首先不要执行它,直到你了解这个文件可以执行什么。
第二条建议:
如果你真的想展示它执行的内容,只需使用以下命令编辑它记事本或者记事本++并找到这个词Execute
并用 替换它MsgBox
以了解该脚本可以做什么!
我纠正了错误,并添加了一个函数将代码写入文本文件,然后你会得到一些像这样的中文字符(unicode):
灆火灬灱灨灶灨瀣灱灤灰灨灶
'************************************Added by Hackoo************************************
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = CreateObject("WScript.Shell")
LogFile = Left(Wscript.ScriptFullName, InstrRev(Wscript.ScriptFullName, ".")) & "txt"
If fso.FileExists(LogFile) Then
fso.DeleteFile(LogFile)
End If
'****************************************************************************************
dim M
M = "Chinese names"
S = ""
Dim N
n = 0
dim NN
NN = "ede"
do until n = Len(M)
n = n + 1
S = S & ChrW(AscW(Mid(M, N, 1)) - &H9000 + len(NN))
loop
'Just to popup a msgbox to show the chinese character in unicode instead of using Execute
Msgbox S
'Write the contents of the variable S into a text file
Call WriteLog(S,LogFile)
'To open the LogFile with notepad
ws.run LogFile
'************************************Added by Hackoo************************************
'Function to write into text file with unicode
Sub WriteLog(strText,LogFile)
Dim fso,ts
Const ForAppending = 8
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(LogFile,ForAppending,True,-1)
ts.WriteLine strText
ts.Close
End Sub
'*****************************************************************************************
答案2
我不确定它是否真的做了什么,但它的意图肯定看起来不太可靠。它会构建一个 14 个字符长的字符串,其中包含看起来像是包含二进制字符的内容,然后最终执行该字符串。我不知道这会做什么,但我不会在自己的机器上尝试。
但是我认为它有错误。我的 VBS 技能相当老旧,肯定不是最新的,但我不认为有 AscW 函数 - Asc 是,但在 VBS 中,这无论如何都是一个宽字符函数。
如果是朋友发给你的,我会认为这是一种拙劣的幽默。