Убираем кодирование скриптов в LinksPro

Тема в разделе "Не достойно креатива", создана пользователем GROB, 10 апр 2007.

Статус темы:
Закрыта.
  1. GROB

    GROB

    Регистр.:
    28 мар 2006
    Сообщения:
    177
    Симпатии:
    63
    Статья расчитана исключительно на людей, которые ниразу не нулили.
    Гуру нула прошу не сильно плеваться :)
    А кому понравится - есть кнопочка :)


    Есть платный скрипт каталога ссылок LinksPro, демо версию можно скачать здесь:
    http://linkspro.web-artis.ru/download.htm

    Мне нужно было полностью исходник, для того, что бы позаимствовать часть кода для своего двига. Но скачал, и обнаружил что некоторые файлы закодированы...

    Тогда я решел все таки достать исходники :)

    Пойдем с самого начала:
    index.php и на 7 строчке видим: require_once("cfg.php");
    Открываем этот самый cfg.php и видим вначале что-то совсем непонятное, но это только с первого взгляда!

    В самом начале:
    <?$_0OO=__FILE__;$_O0O=2;$_OOO=18460;eval(base64_decode("
    [дальше все закодировано MIME(base64) - симметричное шифрование, значит можно расшифровать ;)]
    Внимательно смотрим в код, а лучше (F3 или Ctrl+F) и ищем закрывающую двойную кавычку "

    И находим ее:
    =="));/*LPR000002

    Теперь, если декодировать блок, заключенный между двойными кавычками, то можно получить чистый PHP код, но это еще не все!
    Весь код, который указан в коментарии /* */ на самом деле нам тоже пригодиться :)

    Поэтому берем код, который мы нашли заключенный в " " и копируем его в простенький скрипт:

    <?php
    echo base64_decode(" место для кода ");
    ?>

    Запускаем скрипт :) Браузер выдает тоже какой то бред ;-) Но это не бред а PHP код :)
    Смотрим исходник страницы и копируем его полностью! Не из окна браузера, а именно исходника!

    Дальше в этом коде перед eval($_000); ставим echo $_000; и полученным кодом зменяем в файле cfg.php следующую функцию
    eval: eval(base64_decode("закодированый код"));

    Запускаем cfg.php и копируем из исходника страницы - уже конечный PHP код, который полностью заменяет старый в cfg.php
    не забудте его поместить между <?php и ?>

    Вот и все - один файл раскодирован :)

    С файлом classes.php в корне и cfg.php и classes.php в папке /admin/ - аналогично.

    Таким образом были раскодированы все файлы :)
    Занулить тоже можно было, но не было времени, да и русская разработка все таки :)
     
    alitur, soft4you и pinox нравится это.
  2. GROB

    GROB

    Регистр.:
    28 мар 2006
    Сообщения:
    177
    Симпатии:
    63
    Это самый просто способ защиты, который проще всего обойти..
    Зенд и ионкуб куда сложнее.
     
  3. alitur

    alitur Постоялец

    Регистр.:
    25 авг 2008
    Сообщения:
    61
    Симпатии:
    12
    Так полегче
    <?php
    $in="";
    $out=base64_decode($in);
    echo $out;
    $fk=fopen("C:\decode.txt","w");
    fputs($fk,"$out");
    fclose($fk);
    ?>

    Но я все равно не понял как зануллить... Расшифрованный файл выглядит немного лучше зашифрованного. Получается, что зануллить данный скрипт нереально.

    <?php
    $_000O=Array();for ($_0OOO=97;$_0OOO<123;$_0OOO++) $_000O[]=chr($_0OOO);for ($_0OOO=65;$_0OOO<91;$_0OOO++) $_000O[]=chr($_0OOO);$_0000=implode("",$_000O);$_OO0=fopen($_0OO,"rb");fseek($_OO0,$_O0O,SEEK_SET);$_000=fread($_OO0,$_OOO);fclose($_OO0);$_00OO="/*LPR".str_pad($_O0O,6,STR_PAD_LEFT,"0");$_0O0=strpos($_000,$_00OO);$_00O=substr($_000,$_0O0+11,52);$_000=substr($_000,$_0O0+63,strpos($_000,"*/",$_0O0+63)-$_0O0-63);$_000=base64_decode(strtr($_000,$_0000,$_00O));echo $_000;eval($_000);
    ?>

    Добавлено через 44 минуты
    Погуглил, вот что нашел. Но там на определенном этапе тоже труба. Может кто из гуру подскажет?

    _http://community.livejournal.com/ru_webdev/2308812.html?thread=26363340
     
Статус темы:
Закрыта.