亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTA > 正文

用hta+javascript實現替換網站被下木馬網頁中的iframe

2020-01-31 15:43:04
字體:
來源:轉載
供稿:網友
服務器中了病毒是件超級麻煩的事情,尤其是什么熊貓燒香之類的或者變種病毒,因為它們不單單潛伏于計算機里,還會把所有的一些網頁文件加上了一些iframe,讓訪問者繼續(xù)中毒,我想這也是它得已迅速蔓延的手段吧! 
    如果要把網頁中的iframe去掉,是件吃力的苦力活。 
    所以,寫了這樣的一個小工具,希望能起到一點點的作用。  
    請把代碼復制,保存在本地,以hta為擴展名。然后雙擊執(zhí)行
復制代碼 代碼如下:

<html>
<head>
<hta:application id=ReplaceIframApp
    applicationname="RAP 1.0"
    border="dialog" [thick/dialog window/none/thin]
    borderStyle="raised" [normal/complex/raised/static/sunken]
    caption="yes"
    icon="res/warm.ico"
    maximizebutton="no"
    minimizebutton="yes"
    showintaskbar="yes"
    singleinstance="yes"
    sysmenu="yes"
    version="1.0"
    windowstate="normal"
/>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<title>Replace Iframe Application</title>
<script type="text/javascript">
    window.resizeTo(800,520);
    var Class = {
        create:function(){
            return function(){
                this.initialize.apply(this,arguments);
            }
        }
    };
    var $ = function(sname){return document.getElementById(sname);}

    String.prototype.stripTags = function() {
            return this.replace(/<//?[^>]+>/gi, '');
    };
    String.prototype.escapeHTML = function() {
            var div = document.createElement('div');
            var text = document.createTextNode(this);
            div.appendChild(text);
            return div.innerHTML;
    };
    String.prototype.unescapeHTML = function() {
            var div = document.createElement('div');
            div.innerHTML = this.stripTags();
            return div.childNodes[0] ? div.childNodes[0].nodeValue : '';
    };
    Array.prototype.S = String.fromCharCode(2);
    Array.prototype.in_array = function(e){
        var re = new RegExp(this.S+e+this.S);
        return re.test(this.S+this.join(this.S)+this.S);
    };
    String.prototype.color = function(c){
        return "<span style=/"color:"+ c +"/">"+ this +"</span>";
    };
    ReplaceApp = Class.create();
    ReplaceApp.prototype = {
        initialize:function(args){
            this.foobar = $(args[0]);
            this.container = $(args[1]);
            this.initSet();
            this.fso = new ActiveXObject("Scripting.FileSystemObject");
            this.showFooBar('initializing...');
            this.testFSO();
        },
        initSet:function(){
            this.folders = new Array();
            this.files = new Array();
            this.iframes = new Array();
            this.iframesStr = new Array();
            this.selects = new Array();
            this.iframeFiles = new Array();
            this.iframeNum = 0;
            this.folderNum = 0;
            this.fileNum = 0;
            this.currentFolder='';
        },
        showFooBar:function(msg){
            this.foobar.innerHTML = msg;
        },
        writeContainer:function(c){
            this.container.innerHTML = c;
        },
        testFSO:function(){
            this.drives = new Enumerator(this.fso.Drives);
            var s, n, x;
            s = '';
            for(;!this.drives.atEnd();this.drives.moveNext()){
                x = this.drives.item();
                s = s + x.DriveLetter;
                s += " - ";
                if (x.DriveType == 3)
                 n = x.ShareName;
                else if (x.IsReady)
                 n = x.VolumeName;
                else
                 n = "[驅動器未就緒]";
                s +=   n + "<br>";
            }
            this.writeContainer(s);
        },
        showFolderList:function(folder){
            if(folder=="" || !/^[a-zA-Z]/://.*/ig.test(folder) || !this.fso.FolderExists(folder)){
                this.showFooBar('路徑不正確'.color('red').bold());
                return;
            }
            this.initSet();
            this.currentFolder = folder;
            this.recFolder(folder);
            this.parseFiles();
        },
        recFolder:function(folder){
            var f, s, fc;
            f = this.fso.getFolder(folder);
            fc = new Enumerator(f.files);
            for(;!fc.atEnd(); fc.moveNext()){
                this.files.push(fc.item());
                this.fileNum++;
            }
            fc = new Enumerator(f.SubFolders);
            for(;!fc.atEnd();fc.moveNext()){
                this.folders.push(fc.item());
                this.folderNum++;
                this.recFolder(fc.item());
            }
        },
        parseFiles:function(){
            var f, s, a, i, c, b;
            for(i=0;i<this.files.length;i++){
                f = this.fso.OpenTextFile(this.files[i],1);
                s = f.ReadAll();
                a = this.balanceMatch(s);
                b = false;
                for(c=0;c<a.length;c++){
                    if(/^<iframe/ig.test(a[c])){
                        if(!b){
                            this.iframeNum++;
                            this.iframeFiles.push(this.files[i]);
                            b = true;
                        }
                        if(!this.iframes.in_array(a[c])){
                            this.iframes.push(a[c]);
                            this.iframesStr.push(a[c].escapeHTML());
                        }
                    }
                }
            }
            this.writeTable();
            var result = {
                '當前目錄:':this.currentFolder,
                '目錄數:':this.folderNum,
                '文件數:':this.fileNum,
                '查找文件數:':this.iframeNum
            };
            this.writeInfo(result);
        },
        Replace:function(){
            var o, oo, i, f, s, j, stat;
            stat = 0;
            o = $('itable');
            oo = o.getElementsByTagName("INPUT")
            this.selects = new Array();
            for(i=0;i<oo.length;i++){
                if(oo[i].checked){
                    this.selects.push(this.iframes[oo[i].value]);
                }
            }
            for(i=0;i<this.iframeFiles.length;i++){
                f = this.fso.OpenTextFile(this.iframeFiles[i],1);
                s = f.ReadAll();
                for(j=0;j<this.selects.length;j++){
                    var re = new RegExp(this.selects[j]);
                    s = s.replace(re,'');
                }
                f = this.fso.OpenTextFile(this.iframeFiles[i],2);
                f.Write(s);
                f.Close();
                stat++;
                //return;
            }
            var result = {
                '被替換文件數:':stat
            }
            this.writeInfo(result);
        },
        writeTable:function(){
            var s, i;
            s = '';
            s += '<table id="itable" class="tbclass">';
            s += '<tr>';
            s += '    <td width="7%">操作</td>';
            s += '    <td width="93%">iframe 列表</td>';
            s += '</tr>';
            for(i=0;i<this.iframesStr.length;i++){
                s += '<tr>';
                s += '    <td><input type="checkbox" name="ichk" value="'+ i +'" /></td>';
                s += '    <td>'+ this.iframesStr[i] +'</td>';
                s += '</tr>';
            }
            s += '</table>';
            this.writeContainer(s);
        },
        writeInfo:function(oo){
            var s;
            s = '';
            for(o in oo){
                s += o.toString().color('blue') + (eval('oo.'+o)).toString().color('red') + '  ';
            }
            this.showFooBar(s);
        },
        balanceMatch:function(str){
            var node = "";
            var node_temp = "";
            var n = 0;
            var temp = "";
            var textArray = [];
            str.replace(/((?:.|/n)*?)(<iframe.*?>|<//iframe.*?>)|((?:.|/n)*?)$/g, callback);
            return textArray;

            function callback(a0, a1, a2, a3)
            {
                if(n == 0)
                {
                    if(a1 && a1 != "")
                    {
                        textArray[textArray.length] = a1;
                    }
                    if(a2 && a2 != "")
                    {
                        if(/.*?//>/.test(a2))
                        {
                            textArray[textArray.length] = a2;
                        }
                        else
                        {
                            node = a2.match(/[^<]*?[/s>]/)[0];
                            node = node.substring(0, node.length-1);
                            temp += a2;
                            n = 1;
                        }
                    }
                }
                else
                {
                    if(a1 && a1 != "")
                    {
                        temp += a1;
                    }
                    if(a2 && a2 != "")
                    {
                        if(/.*?//>/.test(a2))
                        {
                            temp += a2;
                        }
                        else if(a2.substr(1,1) == "/")
                        {
                            if(a2 == "</" + node + ">")
                            {
                                temp += a2;
                                n--;
                                if(n == 0)
                                {
                                    textArray[textArray.length] = temp;
                                    temp = "";
                                }
                            }
                            else
                            {
                                temp += a2
                            }
                        }
                        else
                        {
                            node_temp = a2.match(/[^<]*?[/s>]/)[0];
                            node_temp = node_temp.substring(0, node_temp.length-1);
                            temp += a2;
                            if(node == node_temp)
                            {
                                n++;
                            }
                        }
                    }
                }

                if(a3 && a3 != "")
                {
                    textArray[textArray.length] = a3;
                }

            }
        }
    }
    window.onload = function(){
        window.rap = new ReplaceApp(['status_bar','Container']);
    }
</script>
    <style type="text/css" title="currentStyle" media="screen">
        .tbclass{
            border-top:1px solid #ccc;
            border-left:1px solid #ccc;
        }
        .tbclass td{
            border-bottom:1px solid #aaa;
            border-right:1px solid #ccc;
            padding:3px;
            font-size:12px;
        }
    </style>
</head>
<body style="border:0;" bgcolor=buttonface scroll=no>
<table width=100% height=100% style="font-size:9pt">
<tr><td width=100% height=410><div id="Container" style="width:100%;height:100%;border:2 inset;background-color:white;padding:5px;overflow:auto;">loading...</div></td></tr>
<tr><td width=100% height=20>路徑:<input type=text id=webPath style="width:293"> <input type="button" style="width:70" onclick="rap.showFolderList($('webPath').value)" value="查找" /> <input type=button style="width:70" onclick="rap.Replace()" value="替換"></td></tr>
<tr><td width=100% height=20><div id="status_bar" style="width:100%;height:100%;border:1 inset;background-color:white;padding:2px;overflow:hidden;"></div></td></tr>
</table>
</body>
</html>

樓主真不錯,這么快就有了實現解決的辦法,贊一個,
下了一個好象假死了。沒有細看你的代碼,看起來好復雜,我想實現起來應該不是很復雜把。
/<iframe[^/>]*>/s*<//iframe>/gi
fso枚舉文件夾及其文件htm,html,php,asp等進行替換

不過要是自己的頁面確實需要iframe不就全部換完了?
我建議對iframe地址進行匹配,對包含指定字符的地址不替換
這個正則讓我回去想想。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
久久国产天堂福利天堂| 国产亚洲一级高清| 日韩高清中文字幕一区| 亚洲成人生活片| 丰满的少妇愉情hd高清果冻传媒| 亚洲精品欧美精品| 性欧美videos高清hd4k| 99精品国产一区二区三区不卡| 欧产日产国产v| 久久精品国内一区二区三区水蜜桃| 黄色网址在线免费播放| 在线观看一区二区精品视频| 国产一区二区三区免费在线| 久久久久国产精品区片区无码| 亚洲国产欧美国产综合一区| yourporn在线观看视频| 中文字幕不卡每日更新1区2区| 欧美大片在线看免费观看| 欧美xxxx在线| 91精品国产乱码久久久久久蜜臀| 久久精品国产电影| 欧美一级xxxx| ass极品水嫩小美女ass| 丰满大乳奶做爰ⅹxx视频| 爽爽爽爽爽爽爽成人免费观看| 岛国av一区| 欧美交a欧美精品喷水| 欧美a级一区| 夜夜骑天天操| 国产精品揄拍500视频| 91尤物视频在线观看| 国产一区二区自拍视频| 国产精品美女久久久久久久网站| 97人妻人人澡人人爽人人精品| 88久久精品无码一区二区毛片| 欧美一级精品片在线看| 国产91色蝌蚪视频| 91麻豆swag| 在线免费av播放| 在线观看av资源网| 亚洲一区二区毛片| 日本不卡一区二区在线观看| 欧美一区二区三区成人| 日韩影片在线播放| 久久精品视频7| 欧美一级二级三级九九九| 日本在线精品视频| 欧美激情视频在线观看| 亚洲AV无码久久精品国产一区| 成人免费xxxxx在线观看| 亚洲免费网站在线观看| 亚洲第一视频在线播放| 初体验·韩国| 欧美日韩dvd在线观看| 欧美人与性禽动交精品| 中文字幕手机在线视频| 国产麻豆视频| 色婷婷热久久| 免费欧美网站| 亚洲国产日韩欧美| 亚洲午夜视频在线观看| 免费永久在线观看黄网| 天天爽夜夜爽人人爽| 亚洲精品免费一区亚洲精品免费精品一区| 99这里有精品视频| 欧美视频亚洲视频| 九九热线视频只有这里最精品| 国产一区二区三区精彩视频| 亚洲黄色在线网站| 精品av久久久久电影| 国产美女娇喘av呻吟久久| 亚洲自拍高清视频网站| 污软件在线观看| 最色在线观看| 亚洲国产精品精华液网站| 喷白浆一区二区| 黑巨茎大战欧洲金发美女| 精品精品99| 屁屁影院ccyy国产第一页| 日韩亚洲欧美中文三级| 国产精品19p| 亚洲色图丝袜美腿| 国产偷窥女洗浴在线观看亚洲| 99一区二区三区| av资源在线| 色综合网色综合| a天堂中文在线88| 无码国产伦一区二区三区视频| www.男人天堂网| 久久精品国产第一区二区三区最新章节| 亚洲人成网站在线观看播放| 色av中文字幕| 噜噜噜91成人网| 久久久精品一品道一区| 香港三日本三级少妇66| 中文字幕+乱码+中文字幕一区| 麻豆影视在线观看_| 欧美视频精品在线观看| 成人黄色综合网站| 999亚洲国产精| fc2ppv素人在线| 男男h黄动漫啪啪无遮挡软件| 日韩不卡在线| 美女被黑人爆操网站| 欧美精品videosex| 91中文在线视频| 日本一极黄色片| 麻豆国产高清在线播放| 中文字幕av免费观看| 国产啊啊啊视频在线观看| 黑人精品无码一区二区三区AV| 视频黄页在线| 狠狠操图片视频| 欧美—级在线免费片| 欧美一区二区三区成人| 日韩和欧美的一区二区| 日本一卡二卡在线| 亚洲精品进入| 亚洲一区资源| 成年人午夜视频在线观看| 亚洲成av人片在www色猫咪| 激情欧美一区二区三区在线观看| 国产亚洲欧美日韩在线观看一区二区| 日本va欧美va国产激情| 少妇一级淫片免费放中国| 国产精品一区久久久| 青青青免费视频在线2| 国产精品入口麻豆免费| 天堂а在线中文在线无限看推荐| 91传媒视频在线播放| 亚洲精品高清视频在线观看| 男人与禽猛交狂配| 51精产品一区一区三区| 香蕉久久一区二区不卡无毒影院| 91国在线观看| 日韩福利一区二区三区| 国产a久久精品一区二区三区| 91偷拍精品一区二区三区| 亚洲欧美日韩在线一区| 亚洲区免费视频| 中文字幕欧美日韩一区| 成年人视频网站免费| 永久91嫩草亚洲精品人人| av 日韩 人妻 黑人 综合 无码| 天天操夜夜添| 丝袜国产日韩另类美女| 99九九热只有国产精品| 欧美一级二级三级九九九| 91免费观看国产| 日本在线成人| xxxx欧美xxxx黑人| 欧美精品a∨在线观看不卡| 高清精品一区二区三区一区| 亚洲美女主播视频免费观看| 一区二区在线观看视频在线观看| 99热国产在线中文| 欧美三区美女| 悠悠资源av网址| 缴情综合网五月天| 国产精品2024| 都市激情久久久久久久久久久| 神马久久午夜| 日韩欧美手机在线| www.麻豆av| 国产毛片一区二区三区| 超碰97国产在线| 国产传媒欧美日韩成人精品大片| 欧美一级黑人aaaaaaa做受| 欧美a在线观看| 伊人www22综合色| 欧美三级网站在线观看| 美女航空一级毛片在线播放| 草莓污污视频在线观看| 国产激情在线看| 四虎精品一区二区| 欧美在线播放一区| 91久久国产自产拍夜夜嗨| 免费大片黄在线观看| 北岛玲精品视频在线观看| 日本人dh亚洲人ⅹxx| 国产福利小视频在线观看| 亚洲熟妇国产熟妇肥婆| 精品乱码亚洲一区二区不卡| 性色一区二区三区| 最新二区三区av| 久久久精品蜜桃| 国产欧美一区二区三区四区| 国产在线视频三区| 久久av最新网址| 免费在线黄色av| 丁香婷婷在线| 欧美多人野外伦交| 欧美三级午夜理伦三级中视频| 激情另类小说区图片区视频区| 蜜臀精品久久久久久蜜臀| 欧美精品一二区| 在线观看欧美理论a影院| 国产成人免费| 日韩人妻一区二区三区蜜桃视频| 免费观看成人网| 四季av一区二区三区免费观看| 红桃视频国产精品| 久久这里只有精品18| 日韩国产在线不卡视频| 亚洲午夜精品久久| 99re6热只有精品免费观看| 日韩在线黄色| 都市激情亚洲色图| 黄污网站在线观看| 久久99精品波多结衣一区| 亚洲一区二区三区四区电影| 97在线观视频免费观看| 国产成人鲁色资源国产91色综| 欧美日韩精品免费在线观看视频| 伊人久久成人网| 午夜电影久久久| 免费国产自久久久久三四区久久| h片在线观看免费| 欧美性大战久久久久xxx| 久草在线网址| jizz免费| 免费在线小视频| 日产欧产va高清| 亚洲成人在线网站| 国内精品小视频| 99久久久精品| 日韩激情一区二区三区| 色婷婷久久99综合精品jk白丝| 欧美性三三影院| 性少妇videosexfreexxx片| 欧美日本韩国一区二区三区视频| 丰满女人性猛交| 国产精品178页| 日韩av电影在线网| av在线观看地址| 国产成在线观看免费视频| 秋霞在线一区| 波多野结衣 久久| 久久国产乱子精品免费女| 欧美人牲a欧美精品| 日韩精品视频中文在线观看| 国产成人精品视频ⅴa片软件竹菊| 蜜臀久久99精品久久一区二区| 日韩成人中文电影| 亚洲午夜精品福利| 1pondo在线播放免费| 99久免费精品视频在线观看| 国产亚洲一区二区三区不卡| 精品亚洲成a人在线观看| 色哟哟精品视频| 92国产精品观看| 国产情侣久久久久aⅴ免费| 亚洲午夜久久久久久久久久久| 91精品国产综合久久小美女| 国际精品欧美精品| 丁香花五月激情| 国产乱子视频| 欧美激情一级二级| 91福利视频久久久久| 动漫视频在线一区| 欧美日本视频在线观看| 91国偷自产一区二区三区的观看方式| 在线观看国产精品入口| www.四虎成人| 多野结衣av一区| 久久亚洲无码视频| 国产视频xxxx| 欧美捆绑视频| 青草久久伊人| 黄色小视频在线免费观看| 亚洲欧美精品一区二区| 国产xxxx在线观看| 亚洲视频分类| 中文字幕精品一区二区精品绿巨人| 在线观看久久av| 日韩欧美国产电影| 国产成人高清激情视频在线观看| 亚洲同性同志一二三专区| 亚洲成人av免费看| 欧美日韩国产一区二区在线观看| 色yeye免费人成网站在线观看| 91成人国产综合久久精品| 黄网视频在线观看| 国产成人手机在线| 中文av一区特黄| 亚洲国产成人精品激情在线| 欧美一区视频在线| 九一免费看片| 91热门视频在线观看| 自拍在线播放| 亚洲第一中文字幕| 最新国产精品自拍| 欧美经典一区| 日本视频在线观看| 国产最顶级的黄色片在线免费观看| 成人激情文学综合网| 国产精一品亚洲二区在线视频| 三叶草欧洲码在线| 亚洲字幕久久| 黄网动漫久久久| 国产一区不卡精品| 国产成人精品一区二区三区| 九九热精品免费视频| 日韩小视频在线观看专区| 不卡视频在线| 一区二区三区无毛| 成人在线免费观看黄色| 久久99久久99精品| 黄色av网址在线免费观看| 日本精品久久久| 好吊成人免视频| 亚洲天堂2014| 日韩偷拍一区二区| 成人爽a毛片| 国产视频一区欧美| 国产视频二区在线观看| 91麻豆精品国产自产在线| 99久久国产综合精品色伊| 亚洲国产国产亚洲一二三| 中文字幕在线观看一区二区三区| 激情图片中文字幕| 日韩免费在线视频观看| 日韩中文字幕av在线| 中国女人内谢69xxxx视频| 26uuu国产精品视频| 午夜一级在线看亚洲| 中文字幕av影视| 亚洲一区二区三区成人在线视频精品|