当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > ntiIframe.vbs用于批量清除被添加到文件中的恶意代码

VBScript
用vbs脚本来关闭 HTML 页面的代码
用vbs实现确定是否安装了某个特定的补丁
用vbs确定用户的登录名的代码
用vbs找到映射到共享的所有驱动器并重新映射它们
可以从一台远程服务器运行 SP2 安装程序Install.vbs
用vbs判断一个日期是否在指定的时段内
vbs+hta中实现在单个 onClick 参数中包括多个子例程的代码
vbs中实现启动两个应用程序,一直等到其中一个程序结束,然后关闭另一个?
用vbs实现对文本文件中的项计数
用vbs对文本文件的内容进行排序
用vbscript把 Word 文档保存为文本文件的代码
用vbs返回 Internet Explorer 的下载控件和 Applet 的列表
用vbscript合并多个文本文件的代码
用vbscript防止本地用户更改其密码
用vbs针对一个 IP 地址范围运行脚本
用vbs 实现从剪贴板中抓取一个 URL 然后在浏览器中打开该 Web 站点
使用vbscript脚本在表单中进行选择的代码
一个把任何文件转成批处理的vbs脚本Any2Bat.vbs
windows脚本调试howto的方法
注册表的禁用与解锁方法集合

VBScript 中的 ntiIframe.vbs用于批量清除被添加到文件中的恶意代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 76 ::
收藏到网摘: n/a

AntiIframe.vbs
#该脚本是批量挂马程序的逆向,用于批量清除被添加到文件中的恶意代码。记事本打开文件可以修改Pattern参数指定要处理的文件名,文件名之间用|隔开(也支持vbs正则表达式)。由于要修改文件,请谨慎的使用(最好先备份文件)
#用法: CScript AntiIframe.vbs [处理的路径] [包含清除内容的文件]
#例子: CScript AntiIframe.vbs d:\Web d:\lake2.txt
复制代码 代码如下:

'-----------------------
'Anti-Iframe in vbs
'Author: lake2 (http://lake2.0x54.org)
'Date: 2007-2-27
'Version: 1.1
'-----------------------
'-------- Config Start --------------
'配置要处理的文件名,可使用vbs正则表达式;也可以使用“(index.asp|index.htm|index.html)”枚举格式
Pattern = "^.+\.(htm|html|asp|aspx|php)$"
'-------- Config End --------------

Call ShowInfo()
If WScript.Arguments.Count = 2 Then
If Right(WScript.Arguments.Item(0),1) = "\" Then
if len(WScript.Arguments.Item(0))>3 then
thePath = Mid(WScript.Arguments.Item(0),1,Len(WScript.Arguments.Item(0))-1)
else
thePath = WScript.Arguments.Item(0)
end if
Else
thePath = WScript.Arguments.Item(0)
End If
Call CheckArg(thePath)
WScript.Echo "开始清理,请稍候……"
Call ShowAllFile(thePath)
WScript.Echo vbcrlf & "清理完成!" & vbcrlf
Else
Call ShowHelp()
End If
Sub ShowInfo()
HelpStr = HelpStr & "==============================" & vbcrlf
HelpStr = HelpStr & "===== 欢迎使用雷客图 ASP 站长安全助手vbs版 =====" & vbcrlf
HelpStr = HelpStr & "===== 之 Anti-批量挂马 =====" & vbcrlf
HelpStr = HelpStr & "===== Author: lake2 =====" & vbcrlf
HelpStr = HelpStr & "===== Email:[email protected] =====" & vbcrlf
HelpStr = HelpStr & "===== 欢迎访问 www.0x54.org 得到更多信息 =====" & vbcrlf
HelpStr = HelpStr & "==============================" & vbcrlf
HelpStr = HelpStr & vbcrlf
WScript.Echo HelpStr
End Sub
Sub ShowHelp()
HelpStr = HelpStr & "#用法: CScript AntiIframe.vbs [处理的路径] [包含清除内容的文件]" & vbcrlf
HelpStr = HelpStr & "#例子: CScript AntiIframe.vbs d:\Web d:\lake2.txt" & vbcrlf
HelpStr = HelpStr & vbcrlf
WScript.Echo HelpStr
End Sub
Sub CheckArg(arg)
tmpPath = arg
Set objFSO = WScript.CreateObject ("Scripting.FileSystemObject")
If Not objFSO.FileExists(WScript.Arguments.Item(1)) Then
WScript.Echo "Error:未找到配置文件“" & WScript.Arguments.Item(1) & "”!"
WScript.Quit
ElseIf Not objFSO.FolderExists(tmpPath) Then
WScript.Echo "Error:错误的路径“" & tmpPath & "”!"
WScript.Quit
End If
Set objFSO = Nothing
End Sub
'遍历处理path及其子目录所有文件
Sub ShowAllFile(Path)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set g = FSO.GetFile(WScript.Arguments.Item(1))
If g.Size > 0 Then
Set ts2 = g.OpenAsTextStream(1, -2)
filecon = ts2.ReadAll
ts2.Close
Set ts2 = Nothing
Else
WScript.Echo "Error:配置文件" & WScript.Arguments.Item(1) & "大小为0!"
WScript.Quit
End If
Set g = Nothing
Set f = FSO.GetFolder(Path)
Set fc2 = f.files
On Error Resume Next
For Each myfile in fc2
If Err Then WScript.Echo "权限不足,不能检查目录"&thePath:exit sub
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True
regEx.Pattern = Pattern
If regEx.Test(myfile.name) Then
CheckFile path&"\"&myfile.name, filecon
End If
Set regEx = Nothing
Next
Set fc = f.SubFolders
For Each f1 in fc
ShowAllFile path&"\"&f1.name
Next
Set FSO = Nothing
End Sub
Sub CheckFile(filepath, filecon2)
xSet = GetCharSet(filepath)
Set tStream = CreateObject("ADODB.Stream")
tStream.type = 1
tStream.mode = 3
tStream.open
tStream.Position=0
tStream.LoadFromFile FilePath
If err Then Exit Sub end if
tStream.type = 2
tStream.charset = xSet
Do Until tStream.EOS
filecon = filecon & LCase(tStream.ReadText(102400))
Loop
tStream.close()
Set tStream = Nothing
If InStr(filecon, filecon2) > 0 Then
filecon = Replace(filecon, filecon2, "")
Set tStream = CreateObject("ADODB.Stream")
tStream.type = 2
tStream.mode = 3
tStream.charset = xSet
tStream.open
tStream.Position=0
tStream.WriteText filecon
tStream.SaveToFile filepath, 2
tStream.close()
Set tStream = Nothing
WScript.Echo "已经修复文件: "&filepath&" ..."
End If
End Sub
Function GetCharSet(xPath)
Set tStream = CreateObject("ADODB.Stream")
tStream.type = 1
tStream.mode = 3
tStream.open
tStream.Position = 0
tStream.LoadFromFile xPath
byte1 = ascB(tStream.Read(1))
byte2 = ascB(tStream.Read(1))
byte3 = ascB(tStream.Read(1))
tStream.close()
Set tStream = Nothing
If byte1=239 and byte2=187 and byte3=191 Then
GetCharSet = "UTF-8"
Else
GetCharSet = "GB2312"
End If
End Function