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

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:lake2@mail.csdn.net        =====" & 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

(0)

相关推荐

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

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

  • Python和perl实现批量对目录下电子书文件重命名的代码分享

    经常会遇到下载的文件或电子书,名字中间都包含了一些网址信息,实际使用中由于名字太长不方便,下面的脚本使用正则表达式来对目录下的所有文件重命名: 例如: 修改前:[我们]Mac OS X for Unix Geeks[www.jb51.net].mobi 修改后:Mac OS X for Unix Geeks.mobi python代码如下: 复制代码 代码如下: import os import re def rename_dir(dir,regex,f):   if not os.path.i

  • 批量去除PHP文件中bom的PHP代码

    需要去除BOM,就把附件里的tool.php文件放到目标目录,然后在浏览器访问tool.php即可! 复制代码 代码如下: <?php //此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除 $basedir="."; //修改此行为需要检测的目录,点表示当前目录 $auto=1; //是否自动移除发现的BOM信息.1为是,0为否. //以下不用改动 if ($dh = opendir($basedir)) { while (($file = readdir($d

  • asp.net 将设有过期策略的项添加到缓存中

    下面的代码示例将有一分钟绝对过期时间的项添加到缓存中: 复制代码 代码如下: Cache.Insert("CacheItem6", "Cached Item 6", null, DateTime.Now.AddMinutes(1d), System.Web.Caching.Cache.NoSlidingExpiration); 下面的代码示例将有 10 分钟弹性过期时间的项添加到缓存中: 复制代码 代码如下: Cache.Insert("CacheItem

  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除. 恶意代码示例 复制代码 代码如下: <?php if(!isset($GLOBALS["\x61\156\x75\156\x61"])) { $ua=strtolower($_SERVER["\x48\124\x54\120\x5f\125\x53\105\x52\137\x41\107\x45\116\x54"]); if ((

  • python批量读取文件名并写入txt文件中

    本文实例为大家分享了python批量读取文件名并写入txt中的具体代码,供大家参考,具体内容如下 先说下脚本使用的环境吧,在做项目的过程中需要动态加载图片,使用Unity的Resources.Load方法,但是百十张图片怎么能一 一写下他们的名字作为加载的路径呢?总不能一个一个编辑后存到数组中吧,(虽然我最初是这么做的).所以必须有一个批量的工具,必须的. 于是乎激发了我的灵感,下面看代码.备注少,不动的给我留言,我会及时回复的. #coding=utf-8 import sys import

  • Windows批量添加防火墙例外端口的批处理代码

    Windows批量添加防火墙例外端口 复制代码 代码如下: echo off cls set var=30000 set end=30010 :continue set /a var+=1 echo add port %var% netsh firewall add portopening TCP %var% ftp_data_%var% if %var% lss %end% goto continue echo complete pause 下面的文章特色就是,如果是按顺序的可以手工添加,也可

  • Python 批量验证和添加手机号码为企业微信联系人

    目录 需求 源码 运行 需求 批量验证和添加手机号码为企业微信账号的联系人 源码 import tkinter as tk import pyautogui as pg import tkinter.messagebox as msgbox def setpos(): global x,y try: x,y = eval(tEntry.get()) except: pass pg.click(x-150,y) pg.typewrite('1') pg.moveTo(x,y,duration=0.

  • VBS 添加右键计算文件MD5的实现代码

    最近相关的备份比较频繁,为了校验文件的完整性,老是要打开某文件HASH校验工具,比较麻烦,于是乎写了这个东东,文件较大时计算有点慢,文件的MD5值保存在剪贴板!效果如图: 使用方法: 1.先将GetMD5.reg文件导入注册表以添加右键菜单,GetMD5.reg代码如下: 复制代码 代码如下: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\HASH(&G)\command]@="WScript.exe //

  • VBS脚本实现遍历批量替换多目录多文件内容的代码

    有时候我们需要将一个目录与子目录中的多个htm网页文件实现批量替换,这里就为大家分享一下 将以下代码复制到一个文本文档中,并将文本文档的后缀修改为.vbs,直接运行即可 Set WshShell = CreateObject("Wscript.Shell") WshShell.Run "cmd /c dir /s/b *.htm > list.htm",vbHide Wscript.Sleep 1000 sFile = "list.htm"

随机推荐