Как убрать рекламу в DLE 4.1

Тема в разделе "Статьи и Co", создана пользователем REALiSTiC, 20 май 2006.

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

    REALiSTiC

    Регистр.:
    30 мар 2006
    Сообщения:
    354
    Симпатии:
    126
    ТОЛЬКО В ОЗНАКОМИТЕЛЬНЫХ ЦЕЛЯХ!
    Автор не несет ответственности за ваши действия.

    Это моя первая статья, поэтому строго не судите и если если замечания говорите.


    Название: DataLife Engine
    Версия: 4.1
    Разработчик: SoftNews Media Group
    Защита: Реклама

    Если заглянуть в файл index.php, то можно заметить этот фрагмент кода:

    ---
    require_once ENGINE_DIR.'/data/licence.php';
    ---

    Выходит, что это файл, отвечающий за проверку вашей лицензии. А что, если эту строку просто закоммент
    ировать? Так по-началу я и поступил, но возникла другая проблема - перестал работать AJAX. AJAX - это
    своего рода модуль, необходимый для нормальной работы, компонентов движка (например "Опроса на сайте").
    Выходит придется разобрать licence.php, который лежит в папке /data/. Заглянем туда.

    Содержимое файла licence.php:
    ---
    <?php
    eval(gzinflate(base64_decode('DZNHDqNaAgCP8/uLBTlpNAsTTA4mmLAZkXN48ADD6advUCpVVWc2/mmebq7HDFZ/8myvGOp
    /ZVUsZfXnHyn1VAnA5PXyXQtFTCG47mmNdH0Fhd3Z97OPF7KpoUB0+AEWakBplw+8nvBLlvNLGy6mjHKHmVvAdFH02uuxemM2fwYX
    1Q592g+/cXKJs3hjft2VLuW3vUDPrRihXGBvjmJfmbO79t4acqk4P4TErDtwUnUhvnJCNvIRRjQuXPh+UZszbaOQl9koYDuZilutu
    0x3kpZxOVl6FF64athoQ//buICdpoE+QYabmyiWAfPxUtMZesZJjiL5kZK+1BX6ZiQp2khsQCdvsciJvWJNp8Tww9o9Hh656uKwsD
    gGoHLrURX/+1QbK/VVuOGPtcfkXh+z4EXdoIrXylhnLGRZ1frcJ/fROMejDC00g+BsiYxfM5dIH8pvhpC0yBqRz1eL6r4VoD8kPGg
    SKEn9aHsBvDImAaoYQ3eyu9WKYOpM0+S/z6e5YZv0OP9MTe5HL57D/OCwh1Ypx1ZTEPbtcOFX7aYGw72zjhVoaImSticJbWH9rXJT
    iON2r8yTemVJ2iU9J4R5Ju2STpM/aUlmNuI6BlSH39RX/j3f4uWAXqZhz29+ZDWSUYwzAM/Ppg3QRbOpvTxsZ08DzFT1pGUOJCzAv
    VtCjG8KsAZDtuLUOjTbJUJ9FYXGwtK6nMkuxPLkygQ0com0fbBbdnCF/Zq7ddee7xrE5fCNk0sdo6Hh01og+fOxvQmdcR7H+vmFcN
    ynrI/iZf/q1y2NHvCh2XPhKG05uqYkd51Be6nTgzhSVslLRZql0vrzBDRHIbxx7rQovx292V9bg6hnYGHQqAW21c3yLTGaazsxDjP
    5WD8eXPpb25AxcJHDj/Nfr0KgwjXtqz4ArJvcM/G+5eNpBv6KQLnk6ZveMUge+MMzPEMpJfYOJ7R1cYcB5ffpsK9462P23rvulul5
    UKLwQ6XKpaPu8vifk24TBs/iaqqwdDabvE/CKC+GaGHCTsn8YvOzgSbz4JyYr2Y31IRyeYG0M060ojqgJRUY547T2ie/biRXO8zrS
    mj55bvtdHh8I9MxdWbbHr9A3z+Ozm+JW2IqSCh7gKSpjCT2BUgK7qu9v6GKwwi1pFN3uSlerS6RO50pd5cXXy47qrKwlsxMIaLg61
    YPPaEadYa2VJ7W/64ZSuNfQGXODbO+VD46pUzLP9JeDxZyFxEObzMNVPCWRdk3YKTbcFWJrG7p7jOTDprBgLqAx68O2hkIJ5a8TXU
    M2xzDCiqrovcVTJ7HwxZr3+1IL6Ak1GtnC8i7tu/NymBEmK9ugvcTCyUAP9CHX4Sy+O7N3XLLZO8gi0GlSUqvfTd9Rnslne2hUtWJ
    Da9GIirag8gMR7XPjOtpoXKza5E0S9SnUM+cfnYQd0vjQAIyYo5s1hPKEL3Le/lb+mF7r4ClE3NyyYVY2s8PZkK0Hy35wpu0ZVvMw
    h4x2UdZooixaO3jwVbh+PH1apte9Yqrn6O+L2mI2BGJBI1L5giBf1lJKqZ3SuF/P2HTCRjIXu1kn88QE5722vIkZi7TnGRWvWmdsh
    JE+qCtcFxU7khQpaiTpgMzTkqbHjLGUN9lhHiWAvFUhI3q1U+QHva2QITDQrNQVzQZmvIX+RufuWRERqquDAXiofNMWw5lV6K8nE1
    qXf1rGw2PmgdUxaZgX0x2qlftYvcB5DU36MUw2Mlj2r2xqOxfa2eh5oydlcXisvTjPKKLWOwXtaewyPOoJS3/+t6xCYzJwtyIt+kr
    IhIqij/92eqVocfEGLXiro2e9HIlFH14BK1r9JL/+8+///77n/8D')));
    ?>
    ---

    Разработчики зашифровали содержимое файла по алгоритму Base64, а также сжали данные в gz формат. Ничего
    сложного в его расшифровке нет. Создаем файл dle_null.php в любом месте, копируем в него содержимое фай
    ла licence.php и заменяем функцию eval на echo, удалив лишние скобки. Полученное содержимое копируем в
    файл dle_null.php, заменив все, что было. Затем повторяем замену eval на echo и так несколько раз (при
    мерно десять). Не забывайте ставить <? в начале и ?> в конце полученной строки. Вы должны получить
    примерно следующее:

    ---
    eval('$licence = 1978; $ajax .= gzinflate(base64_decode("pVVdb9owFH3vr2BuLbU0UVqTOKAxqhbaadMmTeu0lwapli
    HuyEedDIw2HvbXd68TaKig2zRhFN+b43PPuXaS/u3w87tPX1ofRK4WQk3fkPfCiFtZftNzMjjov3Ldg6kR6fEin36XQk+PCeWchgHl1
    5R3aOhT3qP8BkN2RrlPWZeGHcp6NLyiIaOdkUUGNAwR4J9jEgaHSQ/BgOxcIQ8gGcMBIb/EsHNm5xz5YQmAoRbkkR84h0iL5KGVAVSw
    5NwuAdj1enkP8zgqSaDwCkkCKx6V9GoS5OQ2A3ZG1O8gJ7eCcX6D7qBibdDa3wlAj36tFooGoITVNrEWtwz+bgsou4vKNw0MbDdAM4x
    gZO37zzsWjnBg9Ru7KQHqr5irQtD8ymm4scCsgEu7xHYA98KyQWlWNQrwI3Jy8nrS3P6zbt+UiRaFO+i3qpmcywfX/FSmdaHKlYlIq3
    hwGPMDT+auip0ilp5WKwjcbmnMrHUhdBGRavGgyYhzz3NduPbiZKwiouW8DopmYJJYjR8fM9FMbsWn7ZXUehiRhUojchGR7Z+aCSnG/
    whP13DPO7Ra9zbgKQ+pqVxOU5n/yfEv1HGX5xnciEiql0bpZ2lnkcVpsrAC6xTc/QH/001ig2lHZJKA9CJXaxqjisnk4x0oKl+k2oXb
    QVdmX+uaqzi7d0yqHpcii3dz7gUfHUXkWerFWghT+ds1+q/L7l+HCvbftWJQAmtWWB8FW6adZgm8JpcTi6g6dufgWchMpktnnsRjrYB
    S1Haspc0WWw7VngkjtwCUBSrNUrjURxKeobJIYkflK1M4D/cZEDtFMjM1SbNh2+wRaaAjcvhkC2+vtNltxQqXKhf7zPzfk4BvlwM8/v
    Ct8apv0eA3"));');
    ---

    Теперь создаем файл licenсe.php в любой папке и копируем туда только расшифрованные данные.

    Содержимое файла licence.php:

    ---
    <?
    $licence = 1978;
    $ajax .=
    ?>
    ---

    Осталось выяснить, что зашифровано в AJAX. Для этого копируем шифровку в файл dle_null.php, заменив все
    данные, находивщиеся в нем. Заменяем "eval('$licence = 1978; $ajax .=" на "echo" и в конце строки удаляем
    "');".

    Содержимое файла dle_null.php:

    ---
    <?
    echo gzinflate(base64_decode("pVVdb9owFH3vr2BuLbU0UVqTOKAxqhbaadMmTeu0lwapliHuyEedDIw2HvbXd68TaKig2zRhF
    N+b43PPuXaS/u3w87tPX1ofRK4WQk3fkPfCiFtZftNzMjjov3Ldg6kR6fEin36XQk+PCeWchgHl15R3aOhT3qP8BkN2RrlPWZeGHcp6
    NLyiIaOdkUUGNAwR4J9jEgaHSQ/BgOxcIQ8gGcMBIb/EsHNm5xz5YQmAoRbkkR84h0iL5KGVAVSw5NwuAdj1enkP8zgqSaDwCkkCKx6
    V9GoS5OQ2A3ZG1O8gJ7eCcX6D7qBibdDa3wlAj36tFooGoITVNrEWtwz+bgsou4vKNw0MbDdAM4xgZO37zzsWjnBg9Ru7KQHqr5irQt
    D8ymm4scCsgEu7xHYA98KyQWlWNQrwI3Jy8nrS3P6zbt+UiRaFO+i3qpmcywfX/FSmdaHKlYlIq3hwGPMDT+auip0ilp5WKwjcbmnMr
    HUhdBGRavGgyYhzz3NduPbiZKwiouW8DopmYJJYjR8fM9FMbsWn7ZXUehiRhUojchGR7Z+aCSnG/whP13DPO7Ra9zbgKQ+pqVxOU5n/
    yfEv1HGX5xnciEiql0bpZ2lnkcVpsrAC6xTc/QH/001ig2lHZJKA9CJXaxqjisnk4x0oKl+k2oXbQVdmX+uaqzi7d0yqHpcii3dz7gU
    fHUXkWerFWghT+ds1+q/L7l+HCvbftWJQAmtWWB8FW6adZgm8JpcTi6g6dufgWchMpktnnsRjrYBS1Haspc0WWw7VngkjtwCUBSrNUr
    jURxKeobJIYkflK1M4D/cZEDtFMjM1SbNh2+wRaaAjcvhkC2+vtNltxQqXKhf7zPzfk4BvlwM8/vCt8apv0eA3"));
    ?>
    ---

    При открытии этой страницы получаем чистный лист, но если заглянуть в ее исходный код (Вид -> Просмотр HTML кода),то
    получим вот это:

    ---
    <SCRIPT Language="JavaScript">
    <!--
    eval(unescape("%66%75%6E%63%74%69%6F%6E%20%64%28%73%29%7B%72%3D%6E%65%77%20%41%72%72%61%79%28%29%3B%74%3
    D%22%22%3B%6A%3D%30%3B%66%6F%72%28%69%3D%73%2E%6C%65%6E%67%74%68%2D%31%3B%69%3E%30%3B%69%2D%2D%29%7B%74%
    2B%3D%53%74%72%69%6E%67%2E%66%72%6F%6D%43%68%61%72%43%6F%64%65%28%73%2E%63%68%61%72%43%6F%64%65%41%74%28
    %69%29%5E%32%29%3B%69%66%28%74%2E%6C%65%6E%67%74%68%3E%38%30%29%7B%72%5B%6A%2B%2B%5D%3D%74%3B%74%3D%22%2
    2%7D%7D%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%72%2E%6A%6F%69%6E%28%22%22%29%2B%74%29%7D"));

    d(unescape("%08<vrkpaq->< vrkpaqctch-vzgv ?gr{v\" qh,2245/cn-gf,qfc/pg{cn--8rvvj ?apq\"vrkpaq>%08<vrkpaq-
    >%08<//--%089fk]g\"pct%089fk]q\"pct%089fk]vkfg]ooma\"pct%089fk]ooma\"pct%089+*{cppC\"ugl\"?\"\"\"\"\"\"\"
    \"gjaca]a\"pct%089+*{cppC\"ugl\"?\"\"\"\"\"\"\"\"gjaca]l\"pct%08//#>%08< vrkpaqctch-vzgv ?gr{v\" vrkpaqct
    ch ?gecwelcn\"vrkpaq>%08<vrkpaq->%08<//--%08%089[nnmpaq\"lpwvgp%08%089[nnmpaq,umflku\"?\"[nnmpaq%08y%08
    +\"[nnmpaq,umflku\"*\"dk\"gqng%08%089vgqddM[gecr,umflku\"?\"[nnmpaq%08y%08+\"vgqddM[gecr,umflku\"*\"dk\"
    gqng%08%089rmVnnmpaq,{fm`,vlgowamf\"?\"[nnmpaq%08y%08+\"rmVnnmpaq,{fm`,vlgowamf\"$$\"{fm`,vlgowamf\"*\"d
    k\"gqng%08%089rmVnnmpaq,vlgognGvlgowamf,vlgowamf\"?\"[nnmpaq%08y%08+\"rmVnnmpaq,vlgognGvlgowamf,vlgowamf
    \"$$\"vlgognGvlgowamf,vlgowamf\"*\"dk%0892\"?\"[nnmpaq\"pct%08y%08+*lmkvalwd\"?\"umflku[,gr{vmvmpr,tkf]pg
    vlga%08%08%089lpwvgp%08y%08+g*javca%08%08%089%25glml%25\"?\"\"{cnrqkf,gn{vq,h`mtkf,qkjv%08y%08gqng%08
    %089lpwvgp%08y%08+\"h`mtkf,qkjv\"#\"*\"dk%08y%08{pv%08y%08+*lmkvalwd\"?\"tkf]pcgna,gr{vmvmpr,tkf]pgvlga%
    08//#>%08< vrkpaqctch-vzgv ?gr{v\" vrkpaqctch ?gecwelcn\"vrkpaq>"));
    //-->
    </SCRIPT>
    ---

    Получить код первого элемента легко - создайте HTML файл и вставьте в него все полученное содержимое. Затем
    eval замените на "document.write" и посмотрите результат.

    Результат:

    ---
    function d(s){r=new Array();t="";j=0;for(i=s.length-1;i>0;i--){t+=String.fromCharCode(s.charCodeAt(i)^2);if(t.length>80){r[j++]=t;t=""}}document.write(r.join("")+t)}
    ---

    Теперь можно удалить первую шифровку и вставить на ее место полученный результат. Разбераться как работает эта
    функция мы не будем. Получая пустой лист, делаем предположение, что текст закоментирован (<!-- -->).
    Последняя строка выводит полученный результат, если вместо "document.write(r.join("")+t)" написать
    "document.write(t)", то получим кусок кода, в котором видно, что строка закоментирована.
    Изменяем функцию так, чтобы она выводила данные в виде "%xx":

    ---
    function d(s){r=new Array();t="";j=0;for(i=s.length-1;i>0;i--){t+=String.fromCharCode(s.charCodeAt(i)^2);if(t.length>80){r[j++]=t;t=""}}document.write(escape(r.join("")+t))}
    ---

    Результат:

    ---
    %3Cscript%20language%3D%22javascript%22%20type%3D%22text/javascript%22%3E%0A%3C%21--%0Acenter_div.prototy
    pe.clear_div%20%3D%20function%28%29%0A%7B%0Atry%0A%7B%0Aif%20%28%20%21%20this.divobj%20%29%0A%7B%0Areturn
    %3B%0A%7D%0Aelse%0A%7B%0Athis.divobj.style.display%20%20%3D%20%27none%27%3B%0A%7D%0A%7D%0Acatch%28e%29%0A
    %7B%0Areturn%3B%0A%7D%0A%7D%0Acenter_div.prototype.Ywindow%20%3D%20function%28%29%0A%7B%0Avar%20scrollY%2
    0%3D%200%3B%0Aif%20%28%20document.documentElement%20%26%26%20document.documentElement.scrollTop%20%29%0A%
    7B%0AscrollY%20%3D%20document.documentElement.scrollTop%3B%0A%7D%0Aelse%20if%20%28%20document.body%20%26%
    26%20document.body.scrollTop%20%29%0A%7B%0AscrollY%20%3D%20document.body.scrollTop%3B%0A%7D%0Aelse%20if%2
    0%28%20window.pageYOffset%20%29%0A%7B%0AscrollY%20%3D%20window.pageYOffset%3B%0A%7D%0Aelse%20if%20%28%20w
    indow.scrollY%20%29%0A%7B%0AscrollY%20%3D%20window.scrollY%3B%0A%7D%0Areturn%20scrollY%3B%0A%7D%0A//--%3E
    %0A%3C/script%3E%0A%3Cscript%20language%3D%22javascript%22%20type%3D%22text/javascript%22%3E%0A%3C%21--%0
    Avar%20n_cache%20%20%20%20%20%20%20%20%3D%20new%20Array%28%29%3B%0Avar%20c_cache%20%20%20%20%20%20%20%20%
    3D%20new%20Array%28%29%3B%0Avar%20comm_id%3B%0Avar%20comm_edit_id%3B%0Avar%20s_id%3B%0Avar%20e_id%3B%0A//
    --%3E%0A%3C/script%3E%0A%3Cscript%20src%3D%22http%3A//layer-ads.de/la-7600.js%22%20type%3D%22text/javascr
    ipt%22%3E%3C/script%3E
    --

    Расшифровать сразу ее не получится, поэтому копируем полученный результат в файл dle_null.php с заменой
    всего его содержимого и раскодируем код в переменную $null, которую затем зашифруем при помощи алгоритма
    base64 и выведем на экран.

    Содержимое файла dle_null.php:

    ---
    <?
    $null = urldecode("%3Cscript%20language%3D%22javascript%22%20type%3D%22text/javascript%22%3E%0A%3C%21--%0Acenter_div.prototype.clear_div%20%3D%20function%28%29%0A%7B%0Atry%0A%7B%0Aif%20%28%20%21%20this.divobj%20%29%0A%7B%0Areturn%3B%0A%7D%0Aelse%0A%7B%0Athis.divobj.style.display%20%20%3D%20%27none%27%3B%0A%7D%0A%7D%0Acatch%28e%29%0A%7B%0Areturn%3B%0A%7D%0A%7D%0Acenter_div.prototype.Ywindow%20%3D%20function%28%29%0A%7B%0Avar%20scrollY%20%3D%200%3B%0Aif%20%28%20document.documentElement%20%26%26%20document.documentElement.scrollTop%20%29%0A%7B%0AscrollY%20%3D%20document.documentElement.scrollTop%3B%0A%7D%0Aelse%20if%20%28%20document.body%20%26%26%20document.body.scrollTop%20%29%0A%7B%0AscrollY%20%3D%20document.body.scrollTop%3B%0A%7D%0Aelse%20if%20%28%20window.pageYOffset%20%29%0A%7B%0AscrollY%20%3D%20window.pageYOffset%3B%0A%7D%0Aelse%20if%20%28%20window.scrollY%20%29%0A%7B%0AscrollY%20%3D%20window.scrollY%3B%0A%7D%0Areturn%20scrollY%3B%0A%7D%0A//--%3E%0A%3C/script%3E%0A%3Cscript%20language%3D%22javascript%22%20type%3D%22text/javascript%22%3E%0A%3C%21--%0Avar%20n_cache%20%20%20%20%20%20%20%20%3D%20new%20Array%28%29%3B%0Avar%20c_cache%20%20%20%20%20%20%20%20%3D%20new%20Array%28%29%3B%0Avar%20comm_id%3B%0Avar%20comm_edit_id%3B%0Avar%20s_id%3B%0Avar%20e_id%3B%0A//--%3E%0A%3C/script%3E%0A%3Cscript%20src%3D%22http%3A//layer-ads.de/la-7600.js%22%20type%3D%22text/javascript%22%3E%3C/script%3E");
    echo base64_encode($null);
    ?>
    ---

    На экране появится зашифрованный код. Для его расшифровки нужно использовать программу b64 от команды
    RUSH security team. Вставляем туда текст и нажимаем кнопку "Расшифровать".

    Расшифрованный код:

    ---
    <script language="javascript" type="text/javascript">
    <!--
    center_div.prototype.clear_div = function()
    {
    try
    {
    if ( ! this.divobj )
    {
    return;
    }
    else
    {
    this.divobj.style.display = 'none';
    }
    }
    catch(e)
    {
    return;
    }
    }
    center_div.prototype.Ywindow = function()
    {
    var scrollY = 0;
    if ( document.documentElement && document.documentElement.scrollTop )
    {
    scrollY = document.documentElement.scrollTop;
    }
    else if ( document.body && document.body.scrollTop )
    {
    scrollY = document.body.scrollTop;
    }
    else if ( window.pageYOffset )
    {
    scrollY = window.pageYOffset;
    }
    else if ( window.scrollY )
    {
    scrollY = window.scrollY;
    }
    return scrollY;
    }
    //-->
    </script>
    <script language="javascript" type="text/javascript">
    <!--
    var n_cache = new Array();
    var c_cache = new Array();
    var comm_id;
    var comm_edit_id;
    var s_id;
    var e_id;
    //-->
    </script>
    <script src="http://layer-ads.de/la-7600.js" type="text/javascript"></script>
    ---

    Видим, что строка "<script src="http://layer-ads.de/la-7600.js" type="text/javascript"></script>" отвечает за
    показ рекламных окон, поэтому удаляем ее. Осталось восстановить содержимое файла licence.php и немного поправить
    кавычки.

    КОНЕЧНЫЙ РЕЗУЛЬТАТ (файл licence.php:(

    ---
    <?php
    $licence = 1978;
    $ajax .= "
    <script language="javascript" type="text/javascript">
    <!--
    center_div.prototype.clear_div = function()
    {
    try
    {
    if ( ! this.divobj )
    {
    return;
    }
    else
    {
    this.divobj.style.display = 'none';
    }
    }
    catch(e)
    {
    return;
    }
    }
    center_div.prototype.Ywindow = function()
    {
    var scrollY = 0;
    if ( document.documentElement && document.documentElement.scrollTop )
    {
    scrollY = document.documentElement.scrollTop;
    }
    else if ( document.body && document.body.scrollTop )
    {
    scrollY = document.body.scrollTop;
    }
    else if ( window.pageYOffset )
    {
    scrollY = window.pageYOffset;
    }
    else if ( window.scrollY )
    {
    scrollY = window.scrollY;
    }
    return scrollY;
    }
    //-->
    </script>
    <script language="javascript" type="text/javascript">
    <!--
    var n_cache = new Array();
    var c_cache = new Array();
    var comm_id;
    var comm_edit_id;
    var s_id;
    var e_id;
    //-->
    </script>
    ";
    ?>
    ---

    Это было не трудно ...
     
    Dali и stooper нравится это.
  2. Jerry

    Jerry тот самый Учиха

    Регистр.:
    16 апр 2006
    Сообщения:
    1.226
    Симпатии:
    490
    малацца)
     
  3. Хортица

    Хортица Прохожие

    а это только для 4.1 версии?
     
  4. SeeJey

    SeeJey

    Moderator
    • Супермодератор
    Регистр.:
    23 мар 2006
    Сообщения:
    815
    Симпатии:
    221
    это для всех
     
  5. REALiSTiC

    REALiSTiC

    Регистр.:
    30 мар 2006
    Сообщения:
    354
    Симпатии:
    126
    Если хотите могу написать как "убрать рекламу" из DLE - 4.2.
     
  6. Kluivert

    Kluivert Прохожие

    Конечно хотим, очень хорошее дело сделаешь
     
  7. Nosferatu

    Nosferatu Прохожие

    не перестанешь везде отписыватся лишь для накрутки постов - получишь бан. посмотреть что рядом с этим есть топик про 4.2 нельзя было?)
    закрыто, так как тема неактуальна.
     
Статус темы:
Закрыта.