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

最近我的共享目录里面所有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();
    }
}

时间: 2024-08-27 04:25:07

Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)_javascript技巧的相关文章

javascript写的简单的计算器,内容很多,方法实用,推荐_javascript技巧

最近用javascript写了一个简单的计算器,自己测试感觉还好,先给大家观赏下界面: 界面就是这样了,但是功能如何呢? 现在只是个简单的标准计算器,能进行加减乘除连续运算,以及求余运算.如果发生被除数为零的错误,下面会给出提示,就像这样: 自己不知道写的怎么样,但是对于新手来说,这肯定是一份大餐,里面可以接触到的东西不少,可以拿来学习.如果有高手看出里面的疏漏.错误等望不吝赐教,给予指点. 下面贴上代码,希望里面的注释足够多了. js部分: 复制代码 代码如下: var num=0,resul

javascript写的一个模拟阅读小说的程序

 这篇文章主要介绍了用javascript写了一个模拟阅读小说的程序,需要的朋友可以参考下  代码如下: <html>  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />  <head>  <title></title>  <script type="text/javascript"> 

【求助】用Python写出一个遍历网站所有url的小工具

问题描述 [求助]用Python写出一个遍历网站所有url的小工具 用Python 怎么写出一个 遍历网站所有url的小工具, 包括首页的url和所有子网页url 不能有重复的url,我自己写的只能遍历一个网页的 首页,子网页的遍历不出来,新人 没币 ,求好心人帮助!!! 解决方案 http://www.cnblogs.com/fnng/p/3576154.htmlhttp://www.oschina.net/code/list_releted_codes?id=25402 解决方案二: htt

写了一个layout,拖动条连贯,内容区可为iframe_javascript技巧

写一个layout本来是一个很简单的事情,可这次的一个layout问题确让我为难了许久才做出来,下面来大概讲解一下问题的出现与解决过程. 注:本文代码皆基于jquery实现. 按照普通的方法写一个layout,一般是用一个table来实现,用中间的td拖动来控制左右两个td的大小,这个问题简单,很快就搞定.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.

分享9个最好用的JavaScript开发工具和代码编辑器_javascript技巧

Web设计和开发是现今越来越流行的职业方向之一.工欲善其事,必先利其器,如果你想在这个领域出类拔萃,那么你就必须具备一些优秀的技能,例如能操作不同的平台.IDE和其他各种各样的工具. 谈到平台和IDE,现在已经不是以前那个掌握一个IDE就能"一招鲜吃遍天"的时代了.激烈的竞争以及蔓延到现在的集成开发环境.基于IDE是用于创建和部署应用程序的强大客户端应用程序,下面我们要分享的就是对于很多网页设计师和开发人员而言,最好的JavaScript 开发工具. 若有不同见解,敬请不吝赐教. 1)

javascript写的一个模拟阅读小说的程序_javascript技巧

复制代码 代码如下: <html> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <head> <title></title> <script type="text/javascript"> function Reader(content, cID, stopID, continue

javascript 写的一个简单的timer_时间日期

先看看效果吧.代码很简单,只是使用了javascript的setTimeout()函数.用到的html" 复制代码 代码如下: <table> <td bgcolor="EE8F8F" height="45"> <img src="dg8.gif" src="dg8.gif" name="hr1"><img src="dg8.gif"

JavaScript写的一个DIV 弹出网页对话框_javascript技巧

网上搜索到的代码,做了一些修改该, 修正无法自定义颜色,修正IE8 下错误,以及其他小BUG 兼容IE6~8以及火狐 可以自定义 // 提示窗口标题高度 // 提示窗口的边框颜色 // 提示窗口的标题颜色 // 提示窗口的标题背景色 // 提示内容的背景色 // 提示内容文字对齐方式 功能 可以弹出一个大DIV遮住页面(IE下 透明) 然后在屏幕中央显示显示一个小DIV 可用作功能提示 操作提示 以及公告等 提示内容可以使带HTML标记的文字,也可是一个页面链接 复制代码 代码如下: funct

javascript写的一个链表实现代码_javascript技巧

本来要用Array来保存数据的,没试过用JS来数据结构,就用JS来试试吧. JS效率真的很低一个链表装1000个对象浏览器就提示运行缓慢了. 之前觉得AJAX3D挺用前景的,现在看来还没有流行就要夭折了.用delphi开发的游戏人们都觉得太慢了,何况用JS. 下面是我实现的一个链表: 复制代码 代码如下: /*@author eric *@mail shmilyhe@163.com *blog.csdn.net/shmilyhe */ <script> function Student(no,