Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)

最近我的共享目录里面所有exe文件都被病毒感染,上网一查才知道是“logo1_.exe”这个咚咚搞的鬼。网上对这个病毒的危害性评价得很高,认为只要中了病毒,整台机器都只能“Format”了。其原因大概就是因为所有应用程序都被感染,运行任何程序都回使病毒“重生”。我使用“卡巴司机”杀毒,结果提示无法清除,将我整个exe文件给删了。郁闷中,自己动手写了这个咚咚来清除已感染程序里的的病毒。

中了“logo1_.exe”病毒请上网查找相关清除方法,本工具只是清除被感染文件里面的病毒,因没有太多时间,没做注册表自动恢复功能;) 

中毒的现象:会在所有含有exe文件的目录下建立一个隐藏的“_desktop.ini”文件,里面记录了病毒感染的日期。如果删除该文件,病毒会重复感染已感染的应用程序并重新生成“_desktop.ini”文件;很多被病毒感染的应用程序会出现很模糊的ICO图标。

网上传说该病毒每三分钟活动一次哦,还说新装的机器在带毒的网络工作,三分钟之内就会被遭毒手,装新系统的朋友小心了。

为防止不小心的朋友运行病毒文件,我已经将“.exe”后缀去掉了。大家可以添加“.exe”后缀名对比杀毒前和杀毒后的ICO图标变换情况。

再次提醒:未使用本工具清除“病毒样本”里的病毒之前,千万别运行“病毒样本”程序。否则马上中标 :D

保存为:Logo1_Kill.js运行即可

复制代码 代码如下:

TaskKill("logo1_.exe"); TaskKill("rundl132.exe"); var window, lstKill, pnlScan, form1 = new Form; form1.Run(); function Form() {     var IE = WSH.GetObject("", "InternetExplorer.Application");     IE.ToolBar = 0;     IE.StatusBar = 0;     IE.Width = 350;     IE.Height = 360;     IE.Navigate("about:blank");     var document = IE.document;     document.body.scroll = "no";     document.body.style.font = "9pt 宋体";     window = document.frames;     document.body.charset = "gb2312";     document.bgColor = "menu";     document.body.style.border = 0;     document.title = "Logo1_.exe 病毒清除工具";     this.Run = function()     {         var btnKill = new Button("清除病毒");         var filebox = new FileBox;         var grpScan = new Group;         var grpKill = new Group("快速清除病毒");         var dirPath = new TextBox;         var btnScan = new Button("开始扫描");         pnlScan = new Panel;         lstKill = new ListBox;         dirPath.value = "D:\\";         grpScan.Text.data = "目录扫描";         pnlScan.Text.data = "准备就绪";         lstKill.style.width = "100%";         lstKill.style.height = "2in";         AddControl(grpKill);         grpKill.Add(filebox);         grpKill.Add(btnKill);         AddControl(grpScan);         grpScan.Add(dirPath);         grpScan.Add(btnScan);         grpScan.Add(pnlScan);         grpScan.Add(lstKill);         btnKill.onclick = btnKill_Clicked;         btnScan.onclick = btnScan_Clicked;         IE.Visible = true;         try         {             while(!window.closed)             {                 if(btnScan.disabled)                 {                     try                     {                         var FSO = new ActiveXObject("Scripting.FileSystemObject");                         var Folder = FSO.getFolder(dirPath.value);                         FolderList(Folder);                     }                     catch(err)                     {                         window.alert(err.message);                     }                     btnScan.disabled = false;                     window.alert("扫描完成。");                 }                 WSH.Sleep(1000);             }         }         catch(err)         {}         function btnKill_Clicked()         {             var FilePath = filebox.value;             if(FilePath && Check(FilePath))             {                 if(window.confirm("发现病毒,是否清除?"))                 {                     try                     {                         Backup(FilePath);                     }                     catch(Err){}                     while(Check(FilePath)) Clear(FilePath);                     window.alert("清除了一个病毒。");                 }             }             else             {                 window.alert("未发现病毒。");             }         }         function btnScan_Clicked()         {             while(lstKill.options.length) lstKill.options.remove(0);             btnScan.disabled = true;         }     }     function AddControl(obj)     {         document.body.appendChild(obj);     }     function FileBox()     {         var obj = document.createElement("input");         obj.type = "file";         return obj;     }     function Button(text)     {         var obj = document.createElement("input");         obj.type = "button";         obj.value = text;         return obj;     }     function TextBox()     {         return document.createElement("input");     }     function Panel()     {         var Div = document.createElement("div");         Div.Add = function(Obj)         {             this.appendChild(Obj);         }         Div.Text = document.createTextNode();         Div.Add(Div.Text);         Div.style.overflow = "hidden";         return Div;     }     function Group(Title)     {         var fieldset = document.createElement("fieldset");         var legend = document.createElement("legend");         fieldset.Text = document.createTextNode();         fieldset.Text.data = Title;         legend.appendChild(fieldset.Text);                 fieldset.Add = function(Obj)         {             this.appendChild(Obj);         }         fieldset.Add(legend);         fieldset.style.marginBottom = "2mm";         return fieldset;     }     function ListBox()     {         var select = document.createElement("select");         select.multiple = true;         select.Add = function(text)         {             var opt = window.Option(text);             select.options.add(opt);         }         return select;     } } function TaskKill(Process) {     var WinMgmts = GetObject("WinMgmts://127.0.0.1");     var ProcList = WinMgmts.ExecQuery("select * from win32_process");     var ProcList = new Enumerator(ProcList);     while(!ProcList.atEnd())     {         if(ProcList.item().Name.toLowerCase() == Process.toLowerCase())             ProcList.item().terminate();         ProcList.moveNext();     } } function Check(SourcePath) {     var Code = "MZKERNEL32.DLL\x00\x00LoadLibraryA\x00\x00\x00\x00GetProcAddress\x00\x00|\x00\x00BKwdwing@";     var Stream = new ActiveXObject("Adodb.Stream");     Stream.Open();     Stream.Charset = "gb2312";     Stream.LoadFromFile(SourcePath);     var Body = Stream.ReadText(60);     Stream.Close();     Body = Body.replace(/[\s\S]\x00\x00BK/, "|\x00\x00BK");     return Body == Code; } function Clear(SourcePath) {     var Stream = new ActiveXObject("Adodb.Stream");     Stream.Open();     Stream.LoadFromFile(SourcePath);     var Body = Stream.ReadText(500 * 1024);     Stream.Close();     var Match = "";     while(Match.length < 21) Match += "\x00";     Match += "MZ";     var C = 0, Temp = "";     while(C< Body.length && Temp.indexOf(Match) <0)     {         var Uni = Body.substr(C, 1000);         C += 1000;         Temp += Decode(Uni);     }     var Position = Temp.indexOf(Match) + 21;     Stream.Type = 1;     Stream.Open();     Stream.LoadFromFile(SourcePath);     Stream.Position = Position;     Body = Stream.Read();     Stream.Position = 0;     Stream.SetEOS();     Stream.Write(Body);     Stream.SaveToFile(SourcePath, 2);     Stream.Close(); } function Backup(SourcePath) {     var FSO = new ActiveXObject("Scripting.FileSystemObject");     var File = FSO.GetFile(SourcePath);     File.Copy(SourcePath + ".logo1_vir", false); } function Decode(text) {     return text.replace(/([\u0000-\uffff])/g, function($1)     {         var uni = $1.charCodeAt(0).toString(16);         while(uni.length < 4) uni = "0" + uni;         uni = uni.replace(/(\w{2})(\w{2})/g, "%$2%$1");         return unescape(uni);     }); } function ScanFiles(Folder) {     var Files = new Enumerator(Folder.Files);     while(!Files.atEnd())     {         if(Files.item().Name.slice(-4).toLowerCase() == ".exe")         {             var Path = Files.item().Path;             pnlScan.Text.data = Path;             if(Check(Path))             {                 try                 {                     Backup(Path);                 }                 catch(err){}                 while(Check(Path)) Clear(Path);                 lstKill.Add(Path + " (OK)");             }             WSH.Sleep(50);         }         Files.moveNext();     } } function FolderList(Folder) {     ScanFiles(Folder);     var Folders = new Enumerator(Folder.SubFolders);     WSH.Sleep(50);     while(!Folders.atEnd())     {         if(Folders.item().Path.match(/\\/g).length > 255) continue;         pnlScan.Text.data = Folders.item().Path + "\\";         FolderList(Folders.item());         Folders.moveNext();     } }