
01.11.2007, 09:27
|
|
Гарант Форума
Регистрация: 22.01.2005
Сообщений: 267
Провел на форуме: 1982081
Репутация:
1067
|
|
для начала создаем файл script.php, над которым будут проводиться операции
PHP код:
<?
eval("\$str = \"$str\";");
?>
затем код оперирущего скрипта
PHP код:
<?
$filename = "script.php";
$rh = fopen($filename, "r");
$filedata = fread($rh, filesize($filename));
if (preg_match("/eval\(.*\);/i", $filedata))
{
$backup = preg_split("/eval\(.*\);/i", $filedata);
$params = preg_split("/eval\(|\);/i", $filedata);
$data = $backup[0]."echo ".$params[1].";".$backup[1];
$wh = fopen($filename, "w");
fwrite($wh, $data);
fclose($wh);
}
fclose($rh);
// execution
$fullpath = realpath("./");
passthru("php $fullpath/script.php");
?>
пока что не реализовано (потому как не понял, что ты имел ввиду)
и если в результате находил в коде eval(gzinflate(base64_decode())), то повторял процедуру.
запускается скрипт, ищет eval() - пока что при условии что он один (если предполагается что их несколько - скажи - переделаю). далее бэкапится все до eval() и после. внутри eval() выдирается все, что было между скобок. затем открываем файл заного, вставляем все, что было до eval(), вставляем echo и все что было между скобок в eval() и все что после eval. работоспособность проверил, но только при учете что eval() в скрипте один, если несколько, надо сделать построчное чтение из файла и немного изменить обработку. затем скрипт запускается из командной строки командой
php full/path/to/file/script.php
Последний раз редактировалось .::Gh0st::.; 01.11.2007 в 09:30..
|
|
|