За последние 24 часа нас посетил 16261 программист и 1726 роботов. Сейчас ищет 751 программист ...

Как получить данные, закодированные в .gz

Тема в разделе "PHP для новичков", создана пользователем Созидатель, 16 янв 2008.

  1. Созидатель

    Созидатель Активный пользователь

    С нами с:
    30 июн 2007
    Сообщения:
    25
    Симпатии:
    0
    Адрес:
    Россия, Шахты
    Есть такой код:
    PHP:
    1. eval(gzinflate(base64_decode('__string__')));
    Он выдаёт в php файле некоторый код, который исполняется.
    Я так понимаю, что вот это часть:
    PHP:
    1. base64_decode('__string__')
    - и есть содержание .gz файла? (Ну, __string__ - некоторая закодированная строка)
    А потом эта строчка декодируется как .gz ресурс ( gzinflate() ), а после выводится на исполнение ( eval() ).

    Так вот, можно ли получить этот исполняемый код?
    Пытался просто print'ануть всю эту гадость в браузер - нет эффекта.
    записать в файл, прочитать gzopen() вывести gzpassthru() - не помогает.
    Помогите, если можете. Plz?
     
  2. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
  3. Созидатель

    Созидатель Активный пользователь

    С нами с:
    30 июн 2007
    Сообщения:
    25
    Симпатии:
    0
    Адрес:
    Россия, Шахты
    Не, я так пробовал. Выдаёт следующее:
    HTML:
    1. ?><? eval(gzinflate(base64_decode('____________String____________'))); ?><?
    (Только вот это: ____________String____________ уже не то , что мы передаём, т.е. не __string__)

    ***
    Возникло подозрение, что строка исполнения упакована несколько раз в такую обвёртку, ну что-то типа:
    PHP:
    1.  
    2. $true_string = 'string';
    3.  
    4. $string='?><? eval(gzinflate(base64_decode(' . base64_encode($true_string) . '))); ?><?';
    5. $string='?><? eval(gzinflate(base64_decode(' . base64_encode($string) . '))); ?><?';
    6. ....................................................................
    И в конце концов получаем __string__
    Можно понять сколько раз проделана эта операция и как достать чистый php-код?
    (Могу, если интересно, выложить __string__)
     
  4. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
  5. Созидатель

    Созидатель Активный пользователь

    С нами с:
    30 июн 2007
    Сообщения:
    25
    Симпатии:
    0
    Адрес:
    Россия, Шахты
    Я так пробовал. (см. пост выше) Точнее не совсем так, просто юзаю Денвер, поэтому нет указанной вами функции, делал так:
    PHP:
    1. $handle = fopen('code.php', 'a');
    2. fwrite($handle, gzinflate(base64_decode(__string__)));
    3. fclose($handle);
    Пишет (внутри файла) следующее:
    PHP:
    1. ?><? eval(gzinflate(base64_decode('____________String____________'))); ?><?
    Думаю, так использована многослойная обвёртка. Думаю, как разобрать это в цикле....
     
  6. Созидатель

    Созидатель Активный пользователь

    С нами с:
    30 июн 2007
    Сообщения:
    25
    Симпатии:
    0
    Адрес:
    Россия, Шахты
    Всё, я его поборол! (Надо же было кому-то так поиздеваться!!!)
    Всё было, как я и думал. Прогнал обратную развёртку и получил исходный код на 35 шаге цикла (Тут-то он и сдался!)
    PHP:
    1.  
    2. <?
    3. print '<pre>';
    4.  
    5. $count_chars_begin = strlen("?><? eval(gzinflate(base64_decode('"); // 35
    6. $count_chars_end   = strlen("'))); ?><?");                          // 10
    7.  
    8. $string            = gzinflate(base64_decode(__string__));
    9.  
    10.  
    11. for ($i=0; $i<35; $i++) {
    12.      echo ('#'.$i.' '.htmlspecialchars($string).'<br>');
    13.      $string       =  gzinflate(base64_decode(substr($string, $count_chars_begin, -$count_chars_end)));
    14. }
    15.  
    16. ?>
    Всем спасибо за содействие.
     
  7. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Чужие исходники воруем, чтоли?
     
  8. Созидатель

    Созидатель Активный пользователь

    С нами с:
    30 июн 2007
    Сообщения:
    25
    Симпатии:
    0
    Адрес:
    Россия, Шахты
    PHP:
    1. // Защита от нубов!
    2. // Ничего интересного под base64 нет :-)
    3.  
    Скорее уж спортивный интерес для самоутверждения. Теперь могу смело сказать - что не такой уж я нуб... )