- Автор темы
- #1
Часть 1. Чистка установщика.
Удалить из файла install/models/ModelStep_2.php код:
также удалить функцию get_license.
Также из файла install/source/ok_clean.sql можно сразу удалить настройку стучалки:
и базу техподдержки:
Из файла design/html/step_1.php можно удалить следующий код:
проверяет согласие
checkbox для этой проверки и ссылка на лицензионное соглашение
код проверки
Из файлов lanuage/*/step_1.php удалить пункты i_agree и license_link.
Далее можно выполнить установку.
Часть 2. Удаление проверки лицензии.
Вся проверка лицензии в OkayCMS находится в файле vendor/okaycms/license/src/OkayLicense/License.php
Для деобфускации можно сначала попробовать использовать программу для прив
Деобфусцированный файл версии 1.3.1 (подходит для 3.8.1) можно найти здесь Для просмотра ссылки Войдиили Зарегистрируйся
Удалить функции (названия из примера выше, в каждой версии обфусцированные названия меняются) :
Удалить код:
LicenseAdmin, конфиг для получения лицензии
получение запроса, изменение ответа
для получения ключа из конфига
тип лицензии
запрос/ответ
тип ответа, для блокировки в случае ошибки с лицензией
белый список модулей
В функции getHtml удалить:
выход, если модуль не в белом списке
вывод ошибки лицензии и перенаправление на страницу для изменения ключа
В функции startModule удалить:
блокировка, если модуль не в белом списке
проверку по белому списку модулей
убрать, код в фигурных скобках оставить (сами скобки нужно удалить).
В функции check удалить:
переменную о действительности лицензии
класс конфига для получения лицензии из него
запрос/ответ
проверка лицензии, стучалка
Код, возвращающий состояние лицензии
заменить на
Для того, чтобы скрипт начал работать, в файле Okay/Core/Database.php необходимо убрать код (встречается два раза) :
переворачивание текста
в файле Okay/Core/Response.php нужно убрать код (также встречается два раза) :
проверка кода ответа
После этих изменений скрипт начинает работать, однако некоторые функции всё ещё необходимо удалить.
Из этих двух файлов можно вообще убрать license, также нужно сделать это в файле Okay/Core/config/services.php для Database и Response
Часть 3. Удаление ненужных функций.
Необходимо избавиться от функций лицензии и техподдержки.
Удалить файлы:
Удалить из файла backend/Controllers/IndexAdmin.php код:
Заменить код
на
Удалить из файла Okay/Core/config/routes.php код:
Удалить из файла Okay/Core/ManagerMenu.php код:
Удалить из файла Okay/Core/Managers.php код:
Удалить из файла Okay/Core/config/services.php код:
Удалить из файла backend/design/html/index.tpl код:
Удалить из файлов языков backend/lang/ все строки, в которых встречается "license" или "support", а также index_valid и index_not_valid.
Удалить из файлов backend/design/css/media.css и backend/design/css/okay.css весь код, в котором встречается "support" или "techsupport". Иногда встречается в списке с другими названиями, нужно удалить только лишний пункт.
Удалить из файлов config/config.php и config/config.local.php (если он есть) лицензионный ключ.
Удаление стучалки Google Tag Manager.
Из файла backend/Helpers/BackendSettingsHelper.php удалить код:
Из файла backend/design/html/index.tpl удалить код:
В файле backend/design/html/settings_general.tpl перенести код
на строку после кода
Далее удалить код
OkayCMS Pro 3.8.1 Nulled, нуллилась по мануалу.
Удалены стучалки (в установщике и в админке) и функция техподдержки, но рекомендуется после установки заменить слова "Okay" и "okay" (с учётом регистра) на любые другие.
Для просмотра ссылки Войдиили Зарегистрируйся
Удалить из файла install/models/ModelStep_2.php код:
Код:
$conf .= "license = ".$this->get_license()."\r\n \r\n";
Также из файла install/source/ok_clean.sql можно сразу удалить настройку стучалки:
Код:
(156, 'gather_enabled', '1'),
Код:
DROP TABLE IF EXISTS `ok_support_info`;
CREATE TABLE `ok_support_info` (
`id` tinyint(1) NOT NULL AUTO_INCREMENT,
`temp_key` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`temp_time` timestamp NULL DEFAULT NULL,
`new_messages` int(11) NOT NULL DEFAULT 0,
`balance` int(11) NOT NULL DEFAULT 0,
`private_key` varchar(2048) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`public_key` varchar(2048) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`okay_public_key` varchar(2048) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`is_auto` tinyint(1) NOT NULL DEFAULT 1,
`accesses` varchar(2048) COLLATE utf8mb4_unicode_ci DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `ok_support_info` (`id`, `temp_key`, `temp_time`, `new_messages`, `balance`, `private_key`, `public_key`, `okay_public_key`, `is_auto`, `accesses`) VALUES
(1, '45a342413c12d8efbf137575a39d42bd', '2020-06-03 14:13:49', 0, 0, NULL, NULL, NULL, 0, '');
Из файла design/html/step_1.php можно удалить следующий код:
проверяет согласие
Код:
onsubmit="return check()"
checkbox для этой проверки и ссылка на лицензионное соглашение
Код:
<input id="i_agree" type="checkbox" required>
<label for="i_agree"><?=$lang->i_agree?></label>
<a href="https://okay-cms.com/license-okaycms" target="_blank"><?=$lang->license_link?></a>
код проверки
Код:
<script>
function check(){
if(document.getElementById('i_agree').checked === false) {
return false;
}
}
</script>
Из файлов lanuage/*/step_1.php удалить пункты i_agree и license_link.
Далее можно выполнить установку.
Часть 2. Удаление проверки лицензии.
Вся проверка лицензии в OkayCMS находится в файле vendor/okaycms/license/src/OkayLicense/License.php
Для деобфускации можно сначала попробовать использовать программу для прив
Деобфусцированный файл версии 1.3.1 (подходит для 3.8.1) можно найти здесь Для просмотра ссылки Войди
Удалить функции (названия из примера выше, в каждой версии обфусцированные названия меняются) :
- name (переворачивает текст),
- getLicenseDomains (возвращает список доменов из лицензии),
- getLicenseExpiration (возвращает дату истечения лицензии),
- checkModule (возвращает разрешение или запрет на использование модуля),
- getLicenseType (возвращает тип лицензии),
- checkForErrors (возвращает одну ошибку при проверке лицензии, если она есть),
- checkDomains (проверяет соответствие лицензии домену),
- error (выводит ошибку, блокирует работу скрипта),
- validate (проверяет лицензионный ключ),
- setResponseType (устанавливает код ответа, который проверяется в функции __destruct),
- __destruct (выводит сообщение о том, что лицензия недействительна)
- checkExpiration (проверяет срок действия лицензии).
Удалить код:
LicenseAdmin, конфиг для получения лицензии
Код:
use Okay\Admin\Controllers\LicenseAdmin;
use Okay\Core\Config;
получение запроса, изменение ответа
Код:
use Okay\Core\Request;
use Okay\Core\Response;
для получения ключа из конфига
Код:
private static $config;
тип лицензии
Код:
private static $validLicense = false;
private static $licenseType;
запрос/ответ
Код:
private static $response;
private static $request;
тип ответа, для блокировки в случае ошибки с лицензией
Код:
private $responseType;
белый список модулей
Код:
private static $freeModules = array(
'LigPay',
'Rozetka'
);
В функции getHtml удалить:
выход, если модуль не в белом списке
Код:
if ($design->isUseModuleDir() && !self::checkModule(self::getVendor($design->getModuleTemplatesDir()) , self::getName($design->getModuleTemplatesDir())))
{
return '';
}
вывод ошибки лицензии и перенаправление на страницу для изменения ключа
Код:
if (self::$validLicense === false && $template == 'index.tpl' && strpos($design->getDefaultTemplatesDir() , 'backend/design/html') !== false)
{
$h = self::$request::getDomainWithProtocol();
$rootUrl = self::$request::getRootUrl();
if (!in_array(self::$request->get('controller') , array(
'LicenseAdmin',
'AuthAdmin'
)))
{
$html .= strtr('<script>$(function() {alert("Current lisense is wrong for domain \"$domain\"");})</script>' , array(
'$domain' => $rootUrl
));
}
if (!in_array(self::$request->get('controller') , array(
'',
'LicenseAdmin',
'AuthAdmin'
)))
{
self::$response->redirectTo("{$rootUrl}/backend/index.php?controller=LicenseAdmin");
}
}
В функции startModule удалить:
блокировка, если модуль не в белом списке
Код:
if (self::checkModule($vendor, $module_name) === false)
{
foreach ($routes as &$route)
{
$route['mock'] = true;
}
}
проверку по белому списку модулей
Код:
if (self::checkModule($vendor, $module_name) === true)
В функции check удалить:
переменную о действительности лицензии
Код:
self::$validLicense = false;
класс конфига для получения лицензии из него
Код:
self::$config = $SL->getService(Config::class);
запрос/ответ
Код:
self::$response = $SL->getService(Response::class);
self::$request = $SL->getService(Request::class);
проверка лицензии, стучалка
Код:
$licenseText = $this->validate(self::$config->license);
if (self::checkForErrors() && $this->checkExpiration())
{
$this->checkDomains($licenseText->nl['domains']);
}
self::$response->addHeader('X-Powered-CMS: OkayCMS' . ' ' . self::$config->version . ' ' . $licenseText->nl['version_type']);
Код, возвращающий состояние лицензии
Код:
return self::$validLicense;
Код:
return true;
переворачивание текста
Код:
if (isset($row->name)) {
preg_match_all('/./us', $row->name, $ar);$row->name = implode(array_reverse($ar[0]));
$this->license->name($row->name);
}
в файле Okay/Core/Response.php нужно убрать код (также встречается два раза) :
проверка кода ответа
Код:
$this->license->setResponseType($this->type);
Из этих двух файлов можно вообще убрать license, также нужно сделать это в файле Okay/Core/config/services.php для Database и Response
Часть 3. Удаление ненужных функций.
Необходимо избавиться от функций лицензии и техподдержки.
Удалить файлы:
- backend/Controllers/LicenseAdmin.php,
- backend/Controllers/SupportAdmin.php,
- backend/Controllers/TopicAdmin.php,
- Okay/Core/Support.php,
- Okay/Entities/SupportInfoEntity.php,
- Okay/Controllers/SupportController.php,
- backend/design/html/support.tpl,
- backend/design/html/topic.tpl,
- backend/design/html/license.tpl
Удалить из файла backend/Controllers/IndexAdmin.php код:
Код:
use Okay\Core\Support;
Код:
use Okay\Entities\SupportInfoEntity;
Код:
/**
* @var SupportInfoEntity
*/
protected $supportInfoEntity;
/**
* @var Support
*/
protected $support;
Код:
Support $support,
SupportInfoEntity $supportInfoEntity,
Код:
$this->support = $support;
$this->supportInfoEntity = $supportInfoEntity;
Код:
$supportInfo = $supportInfoEntity->getInfo();
$this->design->assign('support_info', $supportInfo);
Код:
$isNotLocalServer = !in_array($_SERVER['REMOTE_ADDR'], ['127.0.0.1', '0:0:0:0:0:0:0:1']);
if (empty($supportInfo->public_key) && !empty($supportInfo->is_auto) && $isNotLocalServer) {
$supportInfoEntity->updateInfo(['is_auto' => 0]);
if ($support->getNewKeys() !== false) {
$this->response->addHeader("Refresh:0");
$this->response->sendHeaders();
exit();
}
}
Заменить код
Код:
$design->assign('is_valid_license', $license->check());
Код:
$license->check();
Код:
'support' => [
'slug' => '/support.php',
'params' => [
'controller' => 'SupportController',
'method' => 'checkDomain',
],
],
Удалить из файла Okay/Core/ManagerMenu.php код:
Код:
/**
* Массив системных контроллеров, которые в меню не выводятся, но на них отдельные разрешения
*
* @var array
*/
private $systemControllers = [
'left_support' => ['SupportAdmin', 'TopicAdmin'],
'left_license_title' => ['LicenseAdmin'],
];
Удалить из файла Okay/Core/Managers.php код:
Код:
'license',
Код:
'support',
Код:
'LicenseAdmin' => 'license',
Код:
'SupportAdmin' => 'support',
'TopicAdmin' => 'support',
Код:
Support::class => [
'class' => Support::class,
'arguments' => [
new SR(Config::class),
new SR(Settings::class),
new SR(EntityFactory::class),
],
],
Код:
{*Техподдержка*}
<div class="admin_techsupport">
<div class="techsupport_inner">
<a {if $support_info->public_key} data-hint="{$support_info->balance|balance}"{else} data-hint="Not active" {/if} class="hint-bottom-middle-t-info-s-small-mobile hint-anim" href="index.php?controller=SupportAdmin">
<span class="quickview_hidden">{$btr->index_support|escape}</span>
{include file='svg_icon.tpl' svgId='techsupport'}
{if $support_info->public_key}
<span class="counter">{$support_info->new_messages}</span>
{/if}
</a>
<div class="techsupport_toggle hidden-md-up">
{if $support_info->public_key}
<span>{$support_info->balance|balance}</span>
{else}
<span>Not active</span>
{/if}
</div>
</div>
</div>
Код:
<div class="float-md-right">
{if $is_valid_license}
<a href='index.php?controller=LicenseAdmin' class="text_success">{$btr->index_valid|escape} </a>
{else}
<a href='index.php?controller=LicenseAdmin' class="text_warning">{$btr->index_not_valid|escape}</a>
{/if},
{if $support_info->public_key}
<a class="text_success" href="index.php?controller=SupportAdmin">{$btr->index_support_active|escape} ({$support_info->new_messages})</a>
{else}
<a href="index.php?controller=SupportAdmin">
<span class="text_warning">{$btr->index_support_not_active|escape}</span>
</a>
{/if}
</div>
Удалить из файлов языков backend/lang/ все строки, в которых встречается "license" или "support", а также index_valid и index_not_valid.
Удалить из файлов backend/design/css/media.css и backend/design/css/okay.css весь код, в котором встречается "support" или "techsupport". Иногда встречается в списке с другими названиями, нужно удалить только лишний пункт.
Удалить из файлов config/config.php и config/config.local.php (если он есть) лицензионный ключ.
Удаление стучалки Google Tag Manager.
Из файла backend/Helpers/BackendSettingsHelper.php удалить код:
Код:
$this->settings->set('gather_enabled', $this->request->post('gather_enabled', 'boolean'));
Из файла backend/design/html/index.tpl удалить код:
Код:
<!-- Google Tag Manager -->
{if $settings->gather_enabled}
{literal}
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-P6T2LJP');
</script>
{/literal}
{/if}
<!-- End Google Tag Manager -->
Код:
<!-- Google Tag Manager (noscript) -->
{if $settings->gather_enabled}
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-P6T2LJP" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
{/if}
<!-- End Google Tag Manager (noscript) -->
В файле backend/design/html/settings_general.tpl перенести код
Код:
<div class="row">
<div class="col-lg-12 col-md-12 ">
<button type="submit" class="btn btn_small btn_blue float-md-right">
{include file='svg_icon.tpl' svgId='checked'}
<span>{$btr->general_apply|escape}</span>
</button>
</div>
на строку после кода
Код:
{get_design_block block="settings_general_recaptcha"}
Далее удалить код
Код:
<div class="row">
<div class="col-lg-12 col-md-12">
<div class="boxed fn_toggle_wrap min_height_210px">
<div class="heading_box">
{$btr->settings_general_gathering_data}
<div class="toggle_arrow_wrap fn_toggle_card text-primary">
<a class="btn-minimize" href="javascript:;" ><i class="fa fn_icon_arrow fa-angle-down"></i></a>
</div>
</div>
<div class="toggle_body_wrap on fn_card">
<div class="permission_block">
<div class="permission_boxes row">
<div class="col-xl-12 col-lg-12 col-md-12">
<div class="permission_box ">
<span title="{$btr->settings_general_gather_enabled}">{$btr->settings_general_gather_enabled}</span>
<label class="switch switch-default">
<input class="switch-input" name="gather_enabled" value='1' type="checkbox" {if $settings->gather_enabled}checked=""{/if}/>
<span class="switch-label"></span>
<span class="switch-handle"></span>
</label>
</div>
</div>
</div>
</div>
<div class="col-xs-12 clearfix"></div>
</div>
</div>
</div>
</div>
OkayCMS Pro 3.8.1 Nulled, нуллилась по мануалу.
Удалены стучалки (в установщике и в админке) и функция техподдержки, но рекомендуется после установки заменить слова "Okay" и "okay" (с учётом регистра) на любые другие.
Для просмотра ссылки Войди
Последнее редактирование модератором: