- Друг форума
- Программист
- Автор темы
- Администратор
- Модер.
- Команда форума
- #1
Последнее редактирование:
Удалось отвязать все модули от дэмки ниже скрипт работает так:
Сканирует папку модулей на наличие демок, после для каждого из них вычисляет и устанавливает новые контрольные строки.
Первая контрольная строка идет в файл, вторая в БД
Даже если модуль не сможет установить контрольные строки сам (такое тоже может быть, слишком много условий) их вполне можно установить ручками просто скопировав и вставив в БД/файл контрольные строки.
Скрипт положить в любое место и запускать.
Обновление скрипта от 17.06.2015г. - переписана функция поиска в массиве, теперь меньше ошибок при поиске ключа для кодировки строки с датой.
Обновление скрипта от 9.10.2015 - исключен модуль abtest
Ищем файл 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 - не обфуксирован, отправляет данные о сайте (домен, количество сайтов, пользователей и т.п.) при проверке обновлений установленных решений из маркетплейса.
6) запускаем скрипт my-site.com/decode/decode.php, получаем декодированный include-decode.php, к сожалению сейчас декодирует не качественно (переносы строк, кавычки и некоторые симолы при декодировании) и если подменить оринальный файл то повалятся ошибки, но код уже можно анализировать.
7) форматируем код php:
П.С.
По хорошему бы хотелось сделать или автоматический деобфуксатор или автопатчер по типу такого как в Updater сделано.
Идей много:
Сканирует папку модулей на наличие демок, после для каждого из них вычисляет и устанавливает новые контрольные строки.
Первая контрольная строка идет в файл, вторая в БД
Даже если модуль не сможет установить контрольные строки сам (такое тоже может быть, слишком много условий) их вполне можно установить ручками просто скопировав и вставив в БД/файл контрольные строки.
Скрипт положить в любое место и запускать.
Обновление скрипта от 17.06.2015г. - переписана функция поиска в массиве, теперь меньше ошибок при поиске ключа для кодировки строки с датой.
Обновление скрипта от 9.10.2015 - исключен модуль abtest
Ищем файл 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 - не обфуксирован, отправляет данные о сайте (домен, количество сайтов, пользователей и т.п.) при проверке обновлений установленных решений из маркетплейса.
Код:
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) запускаем скрипт my-site.com/decode/decode.php, получаем декодированный include-decode.php, к сожалению сейчас декодирует не качественно (переносы строк, кавычки и некоторые симолы при декодировании) и если подменить оринальный файл то повалятся ошибки, но код уже можно анализировать.
7) форматируем код php:
Для просмотра ссылки Вы должны войти или зарегистрироваться.
П.С.
По хорошему бы хотелось сделать или автоматический деобфуксатор или автопатчер по типу такого как в Updater сделано.
Идей много:
- Патчер который накладывает патчи скрывающие инфу о сайте при апдейте.
- Прокси, проксирующий запросы на сервер обновлений битрикса, который вносит изменений в эти запросы.
- Автоматический деобфуксатор.
- Патчер который снимает проверки на ограничения битрикса.
- Скрипт автоматического получения и обновления демо-ключа.
Последнее редактирование: