网页病毒清除办法

 更新时间:2016年11月25日 15:26  点击:1772

你的网页是不是经常被无故的在php,asp,html,js 等文件后台加上一些木马地址呢?我以前有个站就是这样,所以一恨之下写了这段代码,文章虽然有一点浪费资源了,但是总比我们手动清除要好吧,下面我为讲讲程序的清除病毒的原理吧.

首先们要读取 $checkFile 文件这个文章是判断一个文章 是否被感染了,如果是就会执行$savafile变量里面的txt文件路径的所有文件,进行按你infecFile病毒列表清除一次.

<?php
 Class clear_virus{
  //public $content;
  public $infectFile ='virus.txt';//病毒文件列表文件
  public $savefile    ="save.txt";//所在查看病毒的文件列表
  public $timep  ='time.txt';//些记录清除病毒时间
  public $checkFile ='e.php';//这里是设置
  public $run   =0;
  public $virus_type;
  public $replace  ;
  public $filepath ; 
  public $tag         =0; 
   
  function open_file(){
   $this->read_virus();   
   $this->check_File();
   if($this->run){ 
    $this->update_time(); 
    $this->read_file() ;    
    foreach($this->filepath as $tmppath){
     if(file_exists($tmppath)){
      $tmp_file =file_get_contents($tmppath); 
      print_r( $this->virus_type);      
        for( $i=0;$i<sizeof($this->virus_type);$i++ ){
         if( strrpos($tmp_file,$this->virus_type[$i])!== false){
          $tmp_file =str_replace($this->virus_type[$i],'',$tmp_file);
          $this->tag =1;          
         }         
        }
        if( $this->tag ){
         $handle =fopen($tmppath,'w');
         fwrite($handle,$tmp_file);
         fclose($handle);
         unset($tmp_file); 
        }     
      
     }else{
      ;
     }      
    } 
   }
  }
  
  function check_File(){
   if(file_exists($this->checkFile) ){
    $temp =file_get_contents($this->checkFile) ;
    echo $temp;
     foreach( $this->virus_type as $v_tmp ){
      if( strrpos($temp,$v_tmp)!== false ){
       $this->run =1;
       break;
      }
     }
     echo $this->run;
     unset($temp);    
   }else{
    $this->show_error(5);
   }
  }
  
  function update_time(){
   if(file_exists($this->timep) ){
    $tmp_time =date("Y-m-d H:i:s").chr(13).'|';
    $tmp_fp  =fopen($this->timep,'a+');
    fwrite($tmp_fp,$tmp_time);
    fclose($tmp_fp);    
   }
   
  }
  
  
  function read_File(){  
   if(file_exists($this->savefile) ){   
    $this->content =file($this->savefile);    
    if(is_array($this->content)){    
     $this->filepath =$this->content;     
    }else{
     $this->show_error(3);
    }
   }else{
    $this->show_error(4);
   } 
  }
  
  
  function read_virus(){  
   if(file_exists($this->infectFile) ){   
    $this->replace =file($this->infectFile);    
    if(is_array($this->replace)){    
     $this->virus_type=$this->replace;     
    }else{
     $this->show_error(1);
    }
   }else{
    $this->show_error(2);
   } 
  }
  
  
  function show_error($number){
   $array = array(
    '1'=>'病毒文件未不能读取!',
    '2'=>'病毒文件列表不存在!',
    '3'=>'文件列表不存了',
    '4'=>'查杀的文件不存',
    '5'=>$this->$checkFile.'不存在了,请设置病毒感染文件'
   );
   echo $array[$number];
  }
    
 }
 $virus =new clear_virus;
 $virus->open_file();
?>
最后申明本站原创转请注明来自www.111cn.net/phper/php.html

好了为php开发者提供了一款php sql 防注入与字符过滤以及各种过滤代码哦。

//==防注入自动过滤[启用后程序效率低]==========================================================================================
/*
function inject_checks($sql_str){return eregi('select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str);}
foreach ($_REQUEST as $value){if (inject_checks($value)){echo "<script language=javascript>alert('你提交的数据非法,请检查后重新提交!');</script>";exit;}}
*/
//==防注[inject_check($sql_str)]==========================================================================================
function inject_check($sql_str){
if (eregi('select|insert|update|delete|union|into|load_file|outfile', $sql_str)){echo "<script language=javascript>alert('你提交的数据非法,请检查后重新提交!');</script>";exit;}
return $sql_str;
}
//==字符过滤[safe_convert($string)]==============================================================================
function safe_convert($string){ //Words Filter
if(get_magic_quotes_gpc()){ //转义字符 加上反斜线
        $string=htmlspecialchars($string, ENT_QUOTES); //将特殊字元转成HTML字串格式如 "&"转成"&amp;"
        $string=str_replace("<","&lt;",$string); //替换
        $string=str_replace(">","&gt;",$string); //替换
        $string=str_replace("\", '&#92;', $string); //替换  
    } else {
        $string=addslashes($string); //转义字符 加上反斜线 //$string=stripslashes($string); //去掉反斜线
        $string=str_replace("\\", '&#92;', $string);
    }
    //$string=str_replace("r","<br/>",$string); //换行
    //$string=str_replace("n","",$string); //空格
    $string=str_replace("t","&nbsp;&nbsp;",$string); //空格
    $string=str_replace("  "," &nbsp;",$string); //空格
    //$string=str_replace('|', '&#124;', $string); //替换 同分类系统有冲突
    $string=str_replace("&amp;#96;","&#96;",$string); //替换
    $string=str_replace("&amp;#92;","&#92;",$string); //替换
    return $string;
}
//==字符反过滤[unsafe_convert($string)]==============================================================================
function unsafe_convert($string){ //Words Filter
    $string=str_replace("&#92;&quot;","&quot;",$string); //替换
    return $string;
}

//==字符过滤[filter($string)]============================================================================================
function filter($string){ //Words Filter
include("Filter.php");//词汇过滤列表
foreach($badwords as $badword){
if(stristr($string,$badword)==true){echo "<script language=javascript>alert('警告:你提交的内容含有敏感字眼,请更换内容。');</script>";exit;}
}
return $string;
}

 超简单的php图片统计器,这种统计器以前我是用txt文件做的,现在就直接用数据库实现吧.先来看看数据结构吧.

CREATE TABLE `count` (
  `id` int(10) NOT NULL auto_increment,
  `value` varchar(20) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312 AUTO_INCREMENT=98 ;

好数据准备好了下面我们来看看程序是怎么实现的吧.

<?php
//浏览页面时加入一条记录,从而达到访问加1.
 $conn=mysql_connect("localhost","root","root");
 //echo mysql_error();
 mysql_query("set names gb2312");
 mysql_select_db("guest");
 $sql="INSERT INTO `count` ( `id` , `value` ) VALUES ('', '32')";
 $result=mysql_query($sql);
 if ($result) {
  echo "插入成功.";
 }
 mysql_close($conn);
 
 
 //读出记录数据count(*)
 $conn=mysql_connect("localhost","root","root");
 //echo mysql_error();
 mysql_query("set names gb2312");
 mysql_select_db("guest");
 $mysql="select * from `count`";
 
 $result=mysql_query($mysql);
 $row=mysql_num_rows($result);
   for($i=0;$i<strlen($row);$i++)
   {
    $a=substr($row,$i,1);
    $str.= "<img src= "images/$a.jpg" width="32" height="32" />";
   }
?>
<div align="center" class="STYLE1">页面总共有<?php  echo  $str;  ?>个人浏览</div>
嗯,php代码写得有一点乱喽,但工能还是能实现的吧.

php加密程序

<?php
  //加密
  function jiami($data,$psw){
      for($i=0,$j=0;$i<strlen($data);$i++,$j++){
          $middle = ord(substr($data,$i,1)) +
           ord(substr($psw,$j,1));
    if ($j > strlen($psw)){
     $j=0;
    }
          $str .=chr($middle);
      }
   return($str);
  }
  //解密
  function jiemi($data,$psw){
   for($i=0,$j=0;$i<strlen($data);$i++,$j++){
          $middle = ord(substr($data,$i,1)) -
           ord(substr($psw,$j,1));
    if ($j > strlen($psw)){
     $j=0;
    }
          $str .=chr($middle);
      }
   return($str);
  }
?>

这是在一个网站看到一网友的加密程序,所以写出来.

 

php 判断exe文件是否正常

<?php
include "ExeInfo.php";
$pe = new PE_VIEWER( 'cmd.exe' );
$pe->out();
?>

、通常病毒会加壳,加壳后的程序其节名不再是常见的.text、.data、.rdata、.rsrc等,而是包含UPX、Aspack等字符的节名;
2、通常程序的入口点在10000一下,大多数在1000稍多一点的地方,如果程序入口点数值过大,就值得怀疑;
3、分析导入表,通常病毒的KERNEL32.DLL导入表只有LoadLibrary、GetProcAddress等少数几个函数。
当然上述判断并不准确,一些黑客程序及需要保密的程序也会加壳。
这个脚本能获取exe文件的基本信息,并以xml格式输出,目前不包含引入表信息。可以查看输出信息来判断exe文件是否正常。

[!--infotagslink--]

相关文章

  • @CacheEvict 清除多个key的实现方式

    这篇文章主要介绍了@CacheEvict 清除多个key的实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-13
  • IDEA中的clean,清除项目缓存图文教程

    这篇文章主要介绍了IDEA中的clean,清除项目缓存图文教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-25
  • php根据用户语言跳转相应网页

    当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <&#63;php $lan = substr(&#8194;$HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
  • 腾讯视频怎么放到自己的网页上?

    腾讯视频怎么放到自己的网页上?这个问题是一个基本的问题,要把腾讯视频放到自己的网页有许多的办法,当然一般情况就是直接使用它们的网页代码了,如果你要下载资源再放到...2016-09-20
  • Vue如何优雅的清除定时器

    定时器如果不及时合理地清除,会造成业务逻辑混乱甚至应用卡死的情况,这个时就需要清除定时器,本文就介绍了Vue如何优雅的清除定时器,感兴趣的可以了解一下...2021-07-22
  • 基于JavaScript实现网页倒计时自动跳转代码

    这篇文章主要介绍了基于JavaScript实现网页倒计时自动跳转代码 的相关资料,需要的朋友可以参考下...2015-12-29
  • 网页头部声明lang=”zh-cn”、lang=“zh”、lang=“zh-cmn-Hans”区别

    我们现在使用的软件都会自动在前面加一个申明了,那么在网页头部声明lang=”zh-cn”、lang=“zh”、lang=“zh-cmn-Hans”区别是什么呢?下面我们就一起来看看吧. 单...2016-09-20
  • C#实现Winform中打开网页页面的方法

    这篇文章主要介绍了C#实现Winform中打开网页页面的方法,涉及WinForm中WebBrowser的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • Go语言通过http抓取网页的方法

    这篇文章主要介绍了Go语言通过http抓取网页的方法,实例分析了Go语言通过http操作页面的技巧,需要的朋友可以参考下...2020-05-05
  • JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法

    多网站的需要填写的文本框在默认状态下都会给出一个默认的提示语言,当鼠标点击此文本框的时候能够将里面的默认文本清除,当删除输入的文本且焦点离开文本框的时候再将默认的文本写入文本框...2016-01-14
  • C#抓取网页数据 解析标题描述图片等信息 去除HTML标签

    本文主要一步一步介绍利用C#抓取页面数据的过程,抓取HTML,获取标题、描述、图片等信息,并去除HTML,希望对大家有所帮助。...2020-06-25
  • 怎么清除sql server日志

    方法1: 第一步: backup log database_name with no_log 或者 backup log database_name with truncate_only --no_log和truncate_only是在这里是同义的,随便执行哪一句...2016-11-25
  • CSS不得不掌握的技巧【清除float浮动】

    本文我们来讲讲CSS必备掌握的重点:清除float浮动clear,掌握此内容,可以让你在css+div布局中,一些浮动问题得心应手。 一、浮动产生原因 一般浮动是什么情况呢?一般是...2016-09-14
  • 分析网页的几种加密技术

      现在专业性的网站越来越多,许多网友们都在网上建立起了自己的小家。不过辛辛苦苦制作的网页被人拿去改头换面却是件非常痛心的事,所以大家都想保护自己独创的...2016-09-20
  • vue如何在用户要关闭当前网页时弹出提示的实现

    这篇文章主要介绍了vue如何在用户要关闭当前网页时弹出提示的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-01
  • 网页页面控制注意事项

    1、检查标题。2、检查版权信息,尤其是电话号码。3、图片、文件定位问题。4、产品页面首页指向产品类别问题。5、文章页面首页指向文章类别问题。6、产品图片大小...2016-09-20
  • 如何在网页中制作虚线表格

      在制作网页的时候,常常要遇到制作虚线表格的问题,下面的文章就能解决这个问题。  方法一:作一个1X2的图。   半黑半白,再利用表格作成线。这种方法虽然麻烦...2016-09-20
  • 清除aspx页面缓存的程序实现方法

    这篇文章主要介绍了清除aspx页面缓存的程序实现方法,非常实用,需要的朋友可以参考下...2020-06-25
  • ASP.NET使用HttpWebRequest读取远程网页源代码

    本文分享了一个使用HttpWebRequest读取远程网页的案例,供大家参考学习。...2021-09-22
  • Illustrator设计细腻的网页纹理背景制作教程

    今天小编在这里就来给Illustrator的这一款软件的使用者们带来的详细的设计细腻的网页纹理背景的制作教程,各位想知道具体制作步骤的,那么下面就快来跟着小编一起看看教...2016-09-14