<?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');?>