Berezagrad
Житель
- Регистрация
- 01.05.19
- Сообщения
- 472
- Реакции
- 676
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
это ты о чем:?Удалось отвязать все модули от дэмки ниже скрипт работает так:
Сканирует папку модулей на наличие демок, после для каждого из них вычисляет и устанавливает новые контрольные строки.
Первая контрольная строка идет в файл, вторая в БД
Даже если модуль не сможет установить контрольные строки сам (такое тоже может быть, слишком много условий) их вполне можно установить ручками просто скопировав и вставив в БД/файл контрольные строки.
Скрипт положить в любое место и запускать.
Обновление скрипта от 17.06.2015г. - переписана функция поиска в массиве, теперь меньше ошибок при поиске ключа для кодировки строки с датой.
Обновление скрипта от 9.10.2015 - исключен модуль abtest
Скрытый контент. Для просмотра информации необходимо провести 360 дней на форуме. Или повысить права платно.
Ищем файл bitrix/modules/ваш_модуль/install/index.php
Открываем его. Главное не испугаться!
находим переменную которая встречается 2 раза - выглядит как-то так $_1234857676 = round(0+7+7); и еще в одном месте if(!$_1425074507){ $_1234857676= round(0+7+7);
Сумма в скобках должна совпадать с отведенным ДЕМО ПЕРИОДОМ 0+7+7 = 14
И меняем сие значение на к примеру $_1234857676 = 3000; (ВНИМАНИЕ!!!!! Оно встречается два раза в файле.)
После этого можно устанавливать модуль.
Итог действа: мы увеличиваем демо срок и не паримся, остаются обновления модуля.
З.Ы Если была не удачная попытка и срок остался темже, ну не угадали вы переменную, то начинаем сначало для этого -
Нужно снести файл user_date_bsm.php чаще всего ложится в папку bitrix/modules/ваш_модуль/admin/
и в таблице b_option
MODULE_ID: имя_модуля
NAME: ~bsm_stop_date
VALUE: BQJ1DWcFUVB6UldRVyIDJkpVUg==
1. Проверка ограничений демо версии вшита в код в нескольких файлах системы, код этот обфуксирован.
2. Проверка ограничени также выполняется каждый раз при проверке обновлений ядра/удстановленных решений из маркетплейса и при установке самих решений.
3. Также при этом выполняется отправка данных о сайте (домен, количество сайтов, установленные модули, пользователей и т.п.) и проверка на соответствие их с лицензией.
Файлы для анализа:
/bitrix/modules/main/include.php - обфуксирован, проверка ограничений демо
/bitrix/modules/main/include/prolog_after.php - обфуксирован, проверка ограничений демо
/bitrix/modules/main/tools.php - обфуксирован, проверка ограничений демо
/bitrix/modules/main/classes/general/update_client.php - обфуксирован, отправляет данные о сайте домен, количество сайтов, пользователей и т.п.) при проверке обновлений ядра, проверка ограничений демо.
/bitrix/modules/main/classes/general/update_client_partner.php - не обфуксирован, отправляет данные о сайте (домен, количество сайтов, пользователей и т.п.) при проверке обновлений установленных решений из маркетплейса.
Деобфуксация кода на примере include.php:
1)копируем файл "/bitrix/modules/main/include.php" в отдельный каталог (не забудьте дать права на запись этому каталогу), например "/decode/include.php", создаем пустой файл "/decode/decode.php";
2) из файла include.php копируем весь текст до подстроки "?><?php require_once($GLOBALS[" в файл "/decode/decode.php";
3) Добавляем в конец файла "/decode/decode.php" следующий код:
Код:
function forArr1($pockets) {
return $GLOBALS['array1'][$pockets[1]];
}
function forArr2($pockets) {
return $GLOBALS['array2'][$pockets[1]];
}
function forArr3($pockets) {
return '"'.func1($pockets[1]).'"';
}
$fileTxt = file_get_contents("include.php");
$newstr = preg_replace_callback("#array1\[(\d+)\]#s", "forArr1", $fileTxt);
$newstr2 = preg_replace_callback("#array2\[(\d+)\]#s", "forArr2", $newstr);
$newstr3 = preg_replace_callback("#func1.(\d+).#s", "forArr3", $newstr2);
//уберем математические конструкции вида min(a, b, c)
preg_match_all("/min\([\d\s\,\.\+]*\)/s", $newstr3, $array_min);
foreach ($array_min[0] as $value) {
eval('$r = '.$value.';');
$newstr3 = str_replace($value, $r, $newstr3);
}
//уберем математические конструкции вида round(a + b + c)
preg_match_all("/round\([\d\s\,\.\+]*\)/s", $newstr3, $array_round);
foreach ($array_round[0] as $value) {
eval('$r = '.$value.';');
$newstr3 = str_replace($value, $r, $newstr3);
}
//уберем математические конструкции вида (a + b * c)
preg_match_all("/\([\d\s\.\+\-\/\*]*\)/s", $newstr3, $array_math);
foreach ($array_math[0] as $value) {
if ($value <> '()'){
eval('$r = '.$value.';');
$newstr3 = str_replace($value, $r, $newstr3);
}
}
//уберем символы переноса строки:
$newstr3 = str_replace(array("\r","\n"),"",$newstr3);
file_put_contents("include-decode.php", $newstr3);
4) В файле "/decode/decode.php" заменяем первую глобальную переменную $GLOBALS['_____1057733139'] на $GLOBALS['array1'], вторую на $GLOBALS['array2'], функцию вида function ___1867810104( на func1;
5) В файле "/decode/include.php" заменяем соответственно все вхождения глобальной первой переменной вида "$GLOBALS['_____1057733139']" на array1 (внимание! без знака доллара $), второй - на array2, имя функции вида "___1867810104" в func1, сохраняем;
6) запускаем скрипт http://my-site.com/decode/decode.php, получаем декодированный include-decode.php, к сожалению сейчас декодирует не качественно (переносы строк, кавычки и некоторые симолы при декодировании) и если подменить оринальный файл то повалятся ошибки, но код уже можно анализировать.
7) форматируем код php:
http://phpbeautifier.com/beautify.php
П.С.
По хорошему бы хотелось сделать или автоматический деобфуксатор или автопатчер по типу такого как в Updater сделано.
Идей много:
1. патчер который накладывает патчи скрывающие инфу о сайте при апдейте.
2. прокси, проксирующий запросы на сервер обновлений битрикса, который вносит изменений в эти запросы.
4. автоматический деобфуксатор.
5. патчер который снимает проверки на ограничения битрикса.
6. скрипт автоматического получения и обновления демо-ключа.
яснопонятно )человек просил ему хайд открыть)) вот там это написано