Мануал по созданию нулла OKay CMS и Simpla CMS

vadim

Administrator
Команда форума
18 Май 2015
1,556
863
Итак вообщем мануал по нуллению актуальных версии Okay CMS - для Simpla CMS принцип тот же (есть небольшие различия в админке)

Устанавливаем Okay CMS получаем тестовый ключ и чистим
Либо распаковываем архив из дистрибутива, делаем необходимые манипуляции и пакуем все назад с тем же именем.

index.php - удаляем нафиг следующий код, для отключения проверки лицензии во фронтенде
Код:
$p=13; $g=3; $x=5; $r = ''; $s = $x;
$bs = explode(' ', $view->config->license);
foreach($bs as $bl){
    for($i=0, $m=''; $i<strlen($bl)&&isset($bl[$i+1]); $i+=2){
        $a = base_convert($bl[$i], 36, 10)-($i/2+$s)%27;
        $b = base_convert($bl[$i+1], 36, 10)-($i/2+$s)%24;
        $m .= ($b * (pow($a,$p-$x-5) )) % $p;}
    $m = base_convert($m, 10, 16); $s+=$x;
    for ($a=0; $a<strlen($m); $a+=2) $r .= @chr(hexdec($m{$a}.$m{($a+1)}));}

@list($l->domains, $l->expiration, $l->comment) = explode('#', $r, 3);

$l->domains = explode(',', $l->domains);

$h = getenv("HTTP_HOST");
if(substr($h, 0, 4) == 'www.') {
    $h = substr($h, 4);
}
if((!in_array($h, $l->domains) || (strtotime($l->expiration)<time() && $l->expiration!='*'))) {
    print "<div style='text-align:center; font-size:22px; height:100px;'>Лицензия недействительна<br><a href='http://okay-cms.com'>Скрипт интернет-магазина Okay</a></div>";
}
backend/IndexAdmin.php удаляем код для отключения проверки в бекенде
Код:
// удаляем из массивов в 2ух местах
'LicenseAdmin' => 'license'

// удаляем целиком конструкцию
        if ($module != 'AuthAdmin') {
            $p=13; $g=3; $x=5; $r = ''; $s = $x;
            $bs = explode(' ', $this->config->license);
            foreach($bs as $bl){
                for($i=0, $m=''; $i<strlen($bl)&&isset($bl[$i+1]); $i+=2){
                    $a = base_convert($bl[$i], 36, 10)-($i/2+$s)%27;
                    $b = base_convert($bl[$i+1], 36, 10)-($i/2+$s)%24;
                    $m .= ($b * (pow($a,$p-$x-5) )) % $p;}
                $m = base_convert($m, 10, 16); $s+=$x;
                for ($a=0; $a<strlen($m); $a+=2) $r .= @chr(hexdec($m{$a}.$m{($a+1)}));}

            @list($l->domains, $l->expiration, $l->comment) = explode('#', $r, 3);

            $l->domains = explode(',', $l->domains);
            $h = getenv("HTTP_HOST");
            if(substr($h, 0, 4) == 'www.') $h = substr($h, 4);
            if((!in_array($h, $l->domains) || (strtotime($l->expiration)<time() && $l->expiration!='*')) && $module!='LicenseAdmin') {
                header('location: '.$this->config->root_url.'/backend/index.php?module=LicenseAdmin');
            } else {
                $l->valid = true;
                $this->design->assign('license', $l);
            }

            $this->design->assign('license', $l);
        }
backend/ProductsAdmin.php в модуле управления товарами
Код:
// удаляем вызов бесполезной функции

$this->smarty_func();

// так же удаляем всю функцию
    private function smarty_func(){
        if (file_exists('backend/LicenseAdmin.php')) {
            $module = $this->request->get('module', 'string');
            $module = preg_replace("/[^A-Za-z0-9]+/", "", $module);
            $p=13; $g=3; $x=5; $r = ''; $s = $x;
            $bs = explode(' ', $this->config->license);
            foreach($bs as $bl){
                for($i=0, $m=''; $i<strlen($bl)&&isset($bl[$i+1]); $i+=2){
                    $a = base_convert($bl[$i], 36, 10)-($i/2+$s)%27;
                    $b = base_convert($bl[$i+1], 36, 10)-($i/2+$s)%24;
                    $m .= ($b * (pow($a,$p-$x-5) )) % $p;}
                $m = base_convert($m, 10, 16); $s+=$x;
                for ($a=0; $a<strlen($m); $a+=2) $r .= @chr(hexdec($m{$a}.$m{($a+1)}));}

            @list($l->domains, $l->expiration, $l->comment) = explode('#', $r, 3);

            $l->domains = explode(',', $l->domains);
            $h = getenv("HTTP_HOST");
            if(substr($h, 0, 4) == 'www.') $h = substr($h, 4);
            if((!in_array($h, $l->domains) || (strtotime($l->expiration)<time() && $l->expiration!='*')) && $module!='LicenseAdmin') {
                header('location: '.$this->config->root_url.'/backend/index.php?module=LicenseAdmin');
            } else {
                $l->valid = true;
                $this->design->assign('license', $l);
            }

            $this->design->assign('license', $l);
        }
        else{
            die('<a href="http://okay-cms.com">OkayCMS</a>');
        }
    }
backend/design/html/left.tpl в шаблоне админки
Код:
// код
<div id="okay_logo">
     <a href='index.php?module=LicenseAdmin'><img src="design/images/logo.png" alt="OkayCMS"/></a>
</div>

// заменяем на любое по вкусу

<div id="okay_logo">
     <a href='index.php?module=SettingsAdmin'><img src="design/images/logo.png" alt="OkayCMS"/></a>
</div>


// и удаляем в низу
<div class="license_info">
{if in_array('license', $manager->permissions)}
    {if $license->valid}
        <span><a href='index.php?module=LicenseAdmin'>Лицензия</a> действительна {if $license->expiration != '*'}до {$license->expiration}{/if} для домен{$license->domains|count|plural:'а':'ов'} {foreach $license->domains as $d}{$d}{if [email protected]}, {/if}{/foreach}.</span>
 
    {else}
        <span><a href='index.php?module=LicenseAdmin'>Лицензия</a> недействительна.</span>
    {/if}
{/if}
</div>
backend/design/css/left.tpl - подчищаем таблицу стиле админки
Код:
.license_info {
    margin: 10px 0;
    line-height: 1.3;
    color: #243541;
    font-size: 12px;
}
api/Managers.php - удаляем
Код:
'license',
backend/design/html/manager.tpl - в шаблоне редактирования прав доступа к модулям админки, удаляем
Код:
'license'    =>'Управление лицензией',
Удаляем файлы backend/LicenseAdmin.php , backend/design/html/license.tpl - они нам более не понадобятся
и каталог backend/files/license/ - он изначально был не нужен

После проделанного, что при наличии у вас нормального редактора (рекомендую Notepad++ для Windows или Coda для Mac) займет не более 5 минут, чистим лицензию из конфига config/config.php удаляем лицензию
Код:
license = y7cfgr9qvv idwptlsxfs qikmoyrnpt putxvrtpx1 vovyvpddnv w9uqox9hwk fzmnlrjzmf nrwqopmvqt wnyylrmurw zdvxrdud9y az79on8kzn 9eyzenailo hzpxisjlmp ouzpwjlbs5 mhp6qqwpyf yttd8j9vrv gosllkhncz onmutmrsmr qzjby2ozs8 vpt7
и проверяем что все работает

Так же можно удалить лицензионный ключ из базы (где он изнально был не нужен) - открываем нашу базу в phpMyAdmin
Код:
DELETE FROM s_settings WHERE name = 'license'
Вроде бы ничего не забыл - если что - пишите - исправлю
 
Сверху