Есть возможность сделать из триала полноценый модуль

  • Автор темы Автор темы maxisoft
  • Дата начала Дата начала

maxisoft

Разрушитель (V)
Сообщения
57
Реакции
42
Баллы
599
Всем привет после долгих мучении закончил систему которая позволят сделать из триала полноценный модуль с полностью исходным кодом, сразу скажу обновлять не будет автоматом :) чтобы не писали потом почему модуль не обновляется. Обновление проверяется на ключ. Для этого чуть позже будет системый модуль для найтивного обновления и работы с модулями, не отдельным скриптом а прямо в админке, сейчас наважу красоту . Если кому то нужен модуль могу для тестов сделать парочку.
 
У аспро это в основном шаблоны, которые не имеют локальных демо а установлены только на серверах аспро.
 
Эка невидаль! Уже сто лет в обед в паблике скрипт который перебирает все модули и продливает их триал на нужную дату, хули там делать то...

PHP:
<?require($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php');?>
<?
global $DB;
//Дата истечения демки
$d ='23062035';

//Добывание ключа для шифрования из модуля
$handle = @opendir($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules");
while (false !== ($dir = readdir($handle)))
   {
     //ищим демо модули
     $dirStr = $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$dir;
     if (is_dir($dirStr) && $dir!="." && $dir!=".." && $dir!="main" && count(file($dirStr.'/include.php'))<3){
     //ищим ключи для кодировки значений
     $file = file_get_contents($dirStr.'/install/index.php');
     preg_match('/function.*?=array(\(.*?)\)/is',$file, $matches);
     $array =explode(',', substr($matches[1],1,strlen($matches[1])-1));
     //$y=0;
     foreach($array as $value){
       //echo $y.'='.base64_decode($value).'----'.strlen(base64_decode($value)).'<br>';
       eval('$array1[] = base64_decode('.$value.');');
       //$y++;
     }
     for ($m =0; $m<count($array1);$m++)
     {
      
       if(strlen($array1[$m]) == 7 & $array1[$m-3] == 'DOCUMENT_ROOT' & $array1[$m-2] == '/' & $array1[$m-1] == '/') break;
     }
     $key = $array1[$m];
     //получаем строки ключи для шифровки по XOR
     echo "----------<b>START ".$dir."</b>----------";
     $key1 =strrev($array1[$m+21]).sprintf("%s%s",$array1[$m],$array1[$m+23]);
     $key2 =substr($array1[$m+59].$array1[$m+38],0,-5).$array1[$m+60];
     $f_str1 = get_enc_str($d,$key1,1);
     $f_str2 = get_enc_str($d,$key2,0);
     echo "----------<b>END ".$dir."</b>----------<br><br>";
     //Пишем в БД
     $connection = Bitrix\Main\Application::getConnection();
     $sqlHelper = $connection->getSqlHelper();
     $connection->query("UPDATE b_option SET VALUE = '".$f_str2."' WHERE MODULE_ID = '".$dir."' AND NAME = '~bsm_stop_date'");
    

     //Пишем в файл
     $fileSt = '<'.'?'.'define("'.str_replace(".","_",$dir).'_TEMPORARY_CACHE", "'.$f_str1.'");'.'?'.'>';
     file_put_contents($dirStr."/admin/user_date_bsm.php", $fileSt);   
     if(is_object($GLOBALS["CACHE_MANAGER"])) $GLOBALS["CACHE_MANAGER"]->Clean("b_option");
     unset($array1);
     }
}
closedir($handle);

// Функция оборачивает строки дат в по ключу по XOR для вставки в файл и в БД
function get_enc_str($d, $key, $k) {
   if($k)$d_code = 'ET'.$d[1].$d[7].'IS'.$d[2].$d[5].'X'.$d[0].'IR'.$d[4].'T'.$d[6].'I'.$d[3].'B';
   else $d_code = 'a'.$d[0]."B".$d[3]."Ra".$d[2].$d[6]."Ka".$d[4]."d".$d[7]."A".$d[1]."Bra".$d[5];
   $lHash= strlen($key);
   $n= 0;
   for($i= 0; $i<strlen($d_code); $i++){
     $secureStr .= chr(ord($d_code[$i])^ ord($key[$n]));
     if($n==$lHash-1) $n=0;
     else $n++;
   }
   $secureStr = base64_encode($secureStr);
   echo '<br>'.$d_code.' <b>XOR</b> '.$key.'<br><br>****----Строка для записи----****<br>'.$secureStr.'<br>';
   return $secureStr;
}

?>
<?require($_SERVER['DOCUMENT_ROOT'].'/bitrix/footer.php');?>
 
Всем привет после долгих мучении закончил систему которая позволят сделать из триала полноценный модуль с полностью исходным кодом, сразу скажу обновлять не будет автоматом
Немного не понял когда отвечал, вы написали автоматический деобфуксатор кода для битрикса? Если да то было бы интересно посмотреть, вручную деобфуксировать закодиованные файлы не проблема, но это занимает время, я както тоже пытался ускорить процесс путем написания скрипта деобфуксации, но он только частично автоматизировал эту работу.
 
Немного не понял когда отвечал, вы написали автоматический деобфуксатор кода для битрикса? Если да то было бы интересно посмотреть, вручную деобфуксировать закодиованные файлы не проблема, но это занимает время, я както тоже пытался ускорить процесс путем написания скрипта деобфуксации, но он только частично автоматизировал эту работу.
Да у меня есть скрипт который делает обфускацию кода, после чего использует AI для восстановление форматирования, и логически осмысмленных имен переменненых.
 
Эка невидаль! Уже сто лет в обед в паблике скрипт который перебирает все модули и продливает их триал на нужную дату, хули там делать то...

PHP:
<?require($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php');?>
<?
global $DB;
//Дата истечения демки
$d ='23062035';

//Добывание ключа для шифрования из модуля
$handle = @opendir($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules");
while (false !== ($dir = readdir($handle)))
   {
     //ищим демо модули
     $dirStr = $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$dir;
     if (is_dir($dirStr) && $dir!="." && $dir!=".." && $dir!="main" && count(file($dirStr.'/include.php'))<3){
     //ищим ключи для кодировки значений
     $file = file_get_contents($dirStr.'/install/index.php');
     preg_match('/function.*?=array(\(.*?)\)/is',$file, $matches);
     $array =explode(',', substr($matches[1],1,strlen($matches[1])-1));
     //$y=0;
     foreach($array as $value){
       //echo $y.'='.base64_decode($value).'----'.strlen(base64_decode($value)).'<br>';
       eval('$array1[] = base64_decode('.$value.');');
       //$y++;
     }
     for ($m =0; $m<count($array1);$m++)
     {
     
       if(strlen($array1[$m]) == 7 & $array1[$m-3] == 'DOCUMENT_ROOT' & $array1[$m-2] == '/' & $array1[$m-1] == '/') break;
     }
     $key = $array1[$m];
     //получаем строки ключи для шифровки по XOR
     echo "----------<b>START ".$dir."</b>----------";
     $key1 =strrev($array1[$m+21]).sprintf("%s%s",$array1[$m],$array1[$m+23]);
     $key2 =substr($array1[$m+59].$array1[$m+38],0,-5).$array1[$m+60];
     $f_str1 = get_enc_str($d,$key1,1);
     $f_str2 = get_enc_str($d,$key2,0);
     echo "----------<b>END ".$dir."</b>----------<br><br>";
     //Пишем в БД
     $connection = Bitrix\Main\Application::getConnection();
     $sqlHelper = $connection->getSqlHelper();
     $connection->query("UPDATE b_option SET VALUE = '".$f_str2."' WHERE MODULE_ID = '".$dir."' AND NAME = '~bsm_stop_date'");
   

     //Пишем в файл
     $fileSt = '<'.'?'.'define("'.str_replace(".","_",$dir).'_TEMPORARY_CACHE", "'.$f_str1.'");'.'?'.'>';
     file_put_contents($dirStr."/admin/user_date_bsm.php", $fileSt);  
     if(is_object($GLOBALS["CACHE_MANAGER"])) $GLOBALS["CACHE_MANAGER"]->Clean("b_option");
     unset($array1);
     }
}
closedir($handle);

// Функция оборачивает строки дат в по ключу по XOR для вставки в файл и в БД
function get_enc_str($d, $key, $k) {
   if($k)$d_code = 'ET'.$d[1].$d[7].'IS'.$d[2].$d[5].'X'.$d[0].'IR'.$d[4].'T'.$d[6].'I'.$d[3].'B';
   else $d_code = 'a'.$d[0]."B".$d[3]."Ra".$d[2].$d[6]."Ka".$d[4]."d".$d[7]."A".$d[1]."Bra".$d[5];
   $lHash= strlen($key);
   $n= 0;
   for($i= 0; $i<strlen($d_code); $i++){
     $secureStr .= chr(ord($d_code[$i])^ ord($key[$n]));
     if($n==$lHash-1) $n=0;
     else $n++;
   }
   $secureStr = base64_encode($secureStr);
   echo '<br>'.$d_code.' <b>XOR</b> '.$key.'<br><br>****----Строка для записи----****<br>'.$secureStr.'<br>';
   return $secureStr;
}

?>
<?require($_SERVER['DOCUMENT_ROOT'].'/bitrix/footer.php');?>
Скрипт хороший, но предпочитаю чистый код без демо проверок :)
 
Скрипт хороший, но предпочитаю чистый код без демо проверок :)
для большинства модулей пофигу, там только проверка даты истечения демо с которой справляется скрипт изменения срока демо, хотя некоторые издатели ставят свои стучалки, но деобфуксатором их не убрать надо анализировать код.
Я сейчас хочу сделать патч для битрикса чтоб можно было с сорцов перейти на демку и обновиляться с вечной демкой (генерируя новые демо ключи).
 
Последнее редактирование:
Назад
Верх