Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Помогите сделать скрипт... (https://forum.antichat.xyz/showthread.php?t=52520)

Iceangel_ 01.11.2007 08:28

Помогите сделать скрипт...
 
Помогите сделать скрипт, чтобы он открывал файл php, заменял функцию eval(она стоит в самом начале) на echo , выполнял полученный скрипт, и если в результате находил в коде eval(gzinflate(base64_decode())), то повторял процедуру.
З.Ы. Буду очень благодарен, любой помощи...
З.ы.Ы Если кому надо, могу за помощь +6 поставить... ;-)


Более подробно:
Имеется php скрипт, в котором есть одна команда eval(gzinflate(base64_decode('Здесь длинный-длинный код')));
Мне нужно узнать php код который выполняется.
Я пробовал подставлять вместо eval echo, в результате
таже самая функция , только декодируется уже другой код, и так я 4 раза пробовал декодировать вручную этот текст, поэтому нужно сделать цикл, который меняет евал на екхо, запускает полученный скрипт, в результате собирает со страницы то, что вывела екхо(там снова будет eval(gzinflate(base64_decode('Здесь длинный-длинный код'))); ), и так столько раз, пока не выявится исходный текст скрипта.

.::Gh0st::. 01.11.2007 09:27

для начала создаем файл script.php, над которым будут проводиться операции
PHP код:

<?
eval("\$str = \"$str\";");
?>

затем код оперирущего скрипта
PHP код:

<?
$filename 
"script.php";

$rh fopen($filename"r");
    
$filedata fread($rhfilesize($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::. 16.11.2007 12:54

итак, в одной строке было зашифрован код рст шелла от електа. код шелла во вложениях.

код моего скрипта:
PHP код:

<?
$filename 
"1.txt";
$rh fopen($filename"r");
$filedata fread($rhfilesize($filename));

while(
preg_match("/eval\(gzinflate\(base64_decode\('(.*)'\)\)\);/i"$filedata) === 1
{    
    
$rh fopen($filename"r");
    
$filedata fread($rhfilesize($filename));
    
        if (
preg_match("/eval\(gzinflate\(base64_decode\('(.*)'\)\)\);/i"$filedata))
        {
            
$params preg_split("/eval\(|\);/i"$filedata);
            
            
ob_start();
            eval(
"echo $params[1];");
            
$newstr ob_get_contents();
            
ob_end_clean();
            
            
$wh fopen($filename"w");
            
fwrite($wh$newstr);
            
fclose($wh);        
        }    
    
fclose($rh);
}
?>


Iceangel_ 16.11.2007 14:42

Огромное спасибо за оказанную помощь, в жизнь не забуду... =)


Время: 02:30