array('timeout'=>2)) ) ); $tomb = json_decode(json_encode(simplexml_load_string($locale)),TRUE); $ctrname=$tomb["CountryName"]; $temp=explode(".", gethostbyaddr($user_IP)); if(!isset($ctrname) || $ctrname=='') $ctrname = 'unknown'; if(!isset($user_ssID) || $user_ssID==''){ $rec=array( 'hiba'=>"Tips.php: unknown tips data\n", 'datum'=>date('Y-m-d H:i:s',time())); crm_database::getInstance()->insert('a_hibak',$rec); return; //- ha nincs meg a kodolt stream, akkor semmilyen infor } $str_decoded = base64_decode($user_ssID); //decode the session string sscanf(substr($str_decoded,0,4),'%04x',$keyDec); $encoded = str_split(substr($str_decoded,4),4); $decoded = ''; foreach($encoded as $e) { sscanf($e,'%04x',$temp); if(strlen(substr(sprintf('%x',$temp^$keyDec),2))>0) { $decoded .= chr(hexdec(substr(sprintf('%04x',$temp^$keyDec),2))); $decoded .= chr(hexdec(substr(sprintf('%04x',$temp^$keyDec),0,2))); } else { $decoded .= chr(hexdec(substr(sprintf('%04x',$temp^$keyDec),2))); } } $pos = strpos($decoded, '#'); //ba 2018.07.04. atterunk a # separatorra. Ezidaig nem fordulhatott elo benne ilyen jel if($pos === false) $separator = '_'; else $separator = '#'; $numdata = substr_count($decoded, $separator); //ba most már kapunk adatot az oprendszerrol is $osdata = ''; $reactivationCounter = 0; if( $numdata >= 11 ) list($empty, $pwd, $compID, $build, $ctrID, $telepitesikod, $osdata, $usGCMan, $usGCType, $usGCDriverVer, $npID, $partnerID, $name, $email, $company, $phone, $newsletter, $reactivationCounter) = split($separator, $decoded); elseif( $numdata >= 6 ) list($empty, $pwd, $compID, $build, $ctrID, $telepitesikod, $osdata, $usGCMan, $usGCType, $usGCDriverVer, $npID, $partnerID) = split($separator, $decoded); else list($empty, $pwd, $compID, $build, $ctrID, $telepitesikod) = split($separator, $decoded); $crackedProgram = strpos($osdata, ".gray.") !== false ? true : false; if($crackedProgram){ //- 2018-as proragramoktol(nehany 2018-as build nem fut ide be) /*$crackedProgramDeactivated = false; if(crm_hardlock::IsCalledFromMyIP()){ header('Content-Type: text/xml; charset=utf-8'); header('Content-Disposition: inline; filename=response.xml'); print '<'.'?'.'xml version="1.0" encoding="UTF-8" standalone="yes"'.'?'.'> /public/support/tips/en/ '.$validTelepitesikod.' true 0 false '; $crackedProgramDeactivated = true; }*/ $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"; $message = "Crack: ".$decoded." || url: ".$actual_link; crm_hardlock::AddToDebugTable($message); return; // A crackelt programokat nem taroljuk } $validPassword = crm_hardlock::IsValidPassword($pwd); if($validPassword){ $verid=crm_hardlock::GetVeridFromPassword($pwd); $softwareKey = crm_hardlock::IsSoftwareKey($pwd); // Software kulcs 2019 if(crm_hardlock::IsProgramExpiredByFixDate($pwd)) { $message = "Tip error: expired program by IsProgramExpiredByFixDate || password: ".$pwd; crm_hardlock::AddToDebugTable($message); return; } } else { $verid = 0; $softwareKey = false; $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"; $message = "Tip error: invalid password || password: ".$pwd." || url: ".$actual_link; crm_hardlock::AddToDebugTable($message); return; } $validTelepitesikod = crm_hardlock::IsValidTimeCode($telepitesikod); if($validTelepitesikod || ($validPassword && $softwareKey == false) ) //- hardware kulcseseten az isid a passwordbol generalhato $isid=($softwareKey ? crm_hardlock::GetIsidFromTimeCode($telepitesikod) : substr($pwd,0,2).$verid); else { $telepitesikod = ""; $isid = ""; } if($validPassword == false && substr($decoded,0,2) == "##"){ //- 2018-as proragramoktol(nehany 2018-as build nem fut ide be) $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"; $message = "Tip error: missing password || url: ".$actual_link; crm_hardlock::AddToDebugTable($message); } if($validPassword && $validTelepitesikod == false && $verid > 35){ //- csak a 2019-es programokat es ujabbakat vizsgalunk, a regbbiekben elofordulhatnak hibas idokodok $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"; $message = "Tip error: invalid timecode ".$decoded." || url: ".$actual_link; crm_hardlock::AddToDebugTable($message); } if(isset($npID)) $compid = crm_hardlock::AddOrUpdateComputer($npID, ''); // $comp_name = base64_decode($comp_name); // Ez meg nem jon be! $isNamirialAutoCreate = isset($npID) && $npID>'' && isset($partnerID) && $partnerID=='2nt' /*-&& isset($telepitesikod) && $telepitesikod>''-*/ && $validPassword; $isBimLadderAutoCreate = isset($npID) && $npID>'' && isset($partnerID) && $partnerID=='kbl' /*-&& isset($telepitesikod) && $telepitesikod>''-*/ && $validPassword; /******************************************************************************* *NAMIRIAL vagy BIMLADDER automata kulcskiadás és program létrehozás ******************************************************************************/ if ($isNamirialAutoCreate || $isBimLadderAutoCreate) { $queryStr = "SELECT * FROM `".CRMADATBAZIS."`.`nonprofit` WHERE computer_id='".$compid."' AND partnerID = '".$partnerID."' AND verID =".$verid." LIMIT 1;"; crm_database::getInstance()->query($queryStr); $res=crm_database::getInstance()->fetchAssoc(); $rangeMin = $isNamirialAutoCreate ? 940001 : 920001; $rangeMax = $isNamirialAutoCreate ? 949999 : 929999; $interval = $isNamirialAutoCreate ? 90 : 30; $country_id = $isNamirialAutoCreate ? 39 : 82; $topic_id = $isNamirialAutoCreate ? 366 : 368; $info = $isNamirialAutoCreate ? 'Namirial nonprofit kulcs aktiválás' : 'BIMLadder nonprofit kulcs aktiválás'; $contact = $isNamirialAutoCreate ? 8 : 9; $type=crm_hardlock::GetTypeFromPassword($pwd); $ver=crm_hardlock::GetVersion(array('verPassword8and9'=>$verid)); //ba nincs ehhez a gephez meg non-profit program regisztralva if (empty($res)) { $hlNum=crm_hardlock::GetTheFirstNotUsedHlNumFromInterval($rangeMin,$rangeMax); $pass=crm_hardlock::GeneratePassword($hlNum,0,$type,$ver['verCode']); $aktKod=crm_hardlock::GenerateTimeCode($pass,$isid,$interval); // Ha nincs benne a user a CRM-be, akkor hozza adjuk $userID=crm_users::addUser(array( 'strName'=>$name, 'strEMail'=>$email, 'strTel'=>$phone, 'nCtrID'=>$country_id, 'old_db'=>'clusers_eng', 'dateInsert'=>$time, 'strCompany'=>$company ), $newsletter); //ba regisztraljuk hozza a non-profit programot crm_hardlock::AddNonprofit(array( 'isid'=>$isid, 'verid'=>$verid, 'hlID'=>$hlNum, 'nUserID'=>$userID, 'add_datetime'=>date('Y-m-d H:i:s',$time), 'expire_datetime'=>date('Y-m-d H:i:s', strtotime('+90 day', $time)), 'activation_datetime'=>date('Y-m-d H:i:s',$time), 'old_db'=>'clusers_eng', 'partnerID'=>$partnerID, 'enabled'=>'Y', 'computer_id'=>$compid )); //Namirial vagy BIMLADDER non-profit kod aktivalas beszurasa crm -> u_history tablaba crm_users::AddUserHistory(array( 'nUserID'=>$userID, 'nTopicID'=>$topic_id, 'dateEvent'=>date('Y-m-d H:i:s',$time), 'strPlace'=>'', 'strInfo'=>$info, 'nManagerID'=>36, 'insertDate'=>date('Y-m-d H:i:s',$time) )); crm_hardlock::AddHardlock(array( 'hlNum'=>$hlNum, 'hlCtrID'=>$country_id, 'hlLan'=>0, 'hlStat'=>1, 'hlDateIssue'=>date('Y-m-d',$time), 'hlManID'=>36, 'hlTime'=>date('Y-m-d H:i:s',$time), 'hlUser'=>$userID, 'hlDealer'=>62103, 'bUjithato'=>1, 'old_db'=>'clusers_eng' )); crm_hardlock::AddProgram(array( 'prTypeID'=>$type, 'prVerID'=>$ver['verID'], 'prLan'=>0, 'prPass'=>trim($pass), 'prSellDate'=>date('Y-m-d',$time), 'prActDate'=>date('Y-m-d',$time+$interval*86400), // 90 vagy 30 nap 'prFizetve'=>date('Y-m-d',$time+$interval*86400), 'prActCode'=>trim($aktKod), 'prTime'=>date('Y-m-d H:i:s',$time), 'prLastMod'=>date('Y-m-d H:i:s',$time), 'prContact'=>$contact, // Non-profit 'prHlNum'=>$hlNum, // 99xxxx 'prManID'=>36, // web 'prStat'=>0, 'prHiType'=>1 // 1 Rendelés | 2 Tipus Valtas | 3 Frissites | 4 Auto Friss. )); $pwd = $pass; //ba 2018.07.02. mostantol az uj jelszava a usernek a most generalt, 94-es lesz, nem pedig a 93-as! } else { //ba ehhez a gephez mar volt non-profit regisztracio, keressuk ki a sorozatszamot neki $hlNum = $res[0]['hlID']; crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prHlNum='{$hlNum}' limit 1"); $programQuery=crm_database::getInstance()->fetchAssoc(); $pwd = $programQuery[0]['prPass']; } } //- if ($isNamirialAutoCreate || $isBimLadderAutoCreate) vege $hlNum = crm_hardlock::GetHlnumFromPassword($pwd); //insert stats to the userstats table $stats = array( 'usLang' => $user_lang_db, 'usDate' => time(), 'usPwd' => $pwd, 'usVer'=>$verid, 'usCompID' => $compID, 'usCtrID' => $ctrID, 'usBuild' => $build, 'usCtrName' => $ctrname, 'usIP' => $user_IP, 'usOSData' => $osdata, 'usISID' => $isid, 'usInditasokSzama' => 1 ); crm_database::getInstance()->query("SELECT hlLan, hlCtrID FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlNum='".$hlNum."'"); $hardlock = crm_database::getInstance()->fetchAssoc(); $isLanProgram = empty($hardlock) == false && $hardlock[0]['hlLan'] > 0; // A szarmazasi orszag beallitasa if($softwareKey) { $liveKey = crm_hardlock::IsLiveKey($pwd); // Live kulcs 2019 if(empty($hardlock) == false && ($liveKey || in_array(substr($pwd,0,2), array('99','98','95'))) ) { // Azok a programok, amik regisztrálódnak a CRM-ben 2019 $hl=$hardlock[0]; if(isset($hl['hlCtrID'])) $stats['usHlCtrID'] = $hl['hlCtrID']; } } else { $stats['usHlCtrID'] = substr($pwd,0,2); } $trialProgram = crm_hardlock::IsTrialKey($pwd); $trialSpecialEditionProgram = $trialProgram ? crm_hardlock::IsSpecialEditionTrial($pwd) : false; // Kereskedelmi valtozatok lekezelese (a statisztika miatt bekerulnek a Namirial es a BIMLadder programok is) if($verid>29 && ($trialProgram == false || $trialSpecialEditionProgram)) { if($trialSpecialEditionProgram == false) { $query = "SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prPass='".$pwd."'"; if($softwareKey && $isLanProgram) //- szoftveres lan kulcsnal mindig telepitesenkent egyedi az aktivalo kod $query .= " AND prActCode LIKE '%-".$isid."-%'"; $query .= ";"; crm_database::getInstance()->query($query); $prgrm=crm_database::getInstance()->fetchAssoc(); if(empty($prgrm) && $softwareKey && $isLanProgram) { //- a lan-os valtozatnal na nem volt telepitve lehet, hogy nem volt talalat crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE prPass='".$pwd."' and (prActCode = '' or prActCode is null) LIMIT 1;"); $prgrm=crm_database::getInstance()->fetchAssoc(); } } if($softwareKey) { //- a telepitesi datum frissitese if($validTelepitesikod) { //- telepitesi datum tarolasanak elokeszitese $telepitesota_eltelt_napok_szama = crm_hardlock::GetDayFromTimeCode($telepitesikod); $date = new DateTime(date("Y-m-d")); $date->modify('-'.$telepitesota_eltelt_napok_szama.' day'); $installDate = $date->format('Y-m-d'); } else $installDate = time(); } else { if(empty($prgrm)) { $installDate = time(); //- todo ez gigantikus hiba, jelezni kell, ha ilyen elofordul } else $installDate = $prgrm[0]['prSellDate']; } $stats['usTelepitesiDatum'] = $installDate; if(empty($prgrm) == false) $jelenlegi_aktivalokod = $prgrm[0]['prActCode']; else $jelenlegi_aktivalokod = ''; // A userstats2013 tablaba megkeresi az utolso bejegyzest és amennyiben valtozatlan, updateli az inditasok szamat, különben uj bejegyzést hoz letre if($trialSpecialEditionProgram == false) { //- idokod generalasa $aktivalokod = crm_hardlock::GetOrGenerateTimeCode($pwd,$isid,$telepitesikod); $usstatid = crm_hardlock::UpdateInstallationDate($pwd, $compID, $build, $aktivalokod, $user_IP, $installDate, $stats); // Nonprofit regisztracio beirasa a user-hez crm_database::getInstance()->query("SELECT hlStat,hlUser FROM `".CRMADATBAZIS."`.`hardlock` WHERE hlNum='".$hlNum."'"); $res=crm_database::getInstance()->fetchAssoc(); $kulcs=$res[0]; if (in_array((int)substr($pwd,0,3),array(995,996,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989)) && (int)$kulcs['hlUser']>0) { // nonprofitos program első indítása // TODO: Megakasztotta a programinditasokat!!! 2019.08.28. SQL HIBA /*crm_database::getInstance()->query("SELECT COUNT(*) AS `darab` FROM `".CRMADATBAZIS."`.`h_aktivalas_infok` WHERE kulcs='".$hlNum."';"); $tmp=crm_database::getInstance()->fetchAssoc(); $darab=(int)$tmp[0]['darab'];*/ crm_database::getInstance()->query("SELECT COUNT(*) AS `darab` FROM `".CRMADATBAZIS."`.`u_history` WHERE `nUserID`=".(int)$kulcs['hlUser']." AND nTopicID IN (314,315);"); $tmp=crm_database::getInstance()->fetchAssoc(); $esem=(int)$tmp[0]['darab']; crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`users` WHERE nUserID='".(int)$kulcs['hlUser']."';"); $usr=crm_database::getInstance()->fetchAssoc(); $usr=$usr[0]; if (!empty($usr) && (/*$darab==0 ||*/ $esem==0)) { crm_database::getInstance()->insert("`".CRMADATBAZIS."`.`u_history`",array( 'nUserID'=>(int)$kulcs['hlUser'], 'nTopicID'=>($usr['old_db']=='clusers' ? 314 : 315), 'dateEvent'=>date('Y-m-d'), 'strPlace'=>'web', 'strInfo'=>($usr['old_db']=='clusers' ? 'Non-profit kód regisztráció' : 'Non-profit code registration').': '.$hlNum, 'nManagerID'=>36, 'insertDate'=>date('Y-m-d H:i:s') )); } } } else $usstatid = crm_hardlock::UpdateInstallationDate($pwd, $compID, $build, $jelenlegi_aktivalokod, $user_IP, $installDate, $stats); $virtualization = ($kulcs['hlStat']=='2' ? "false" : "true"); // letiltott kulcs visszajelzése a programnak $valasz = ($aktivalokod!="") ? $aktivalokod : "(( nem kapott valaszt ))"; // TODO: Megakasztotta a programinditasokat!!! 2019.08.28. SQL HIBA /*crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_aktivalas_infok` WHERE leiras LIKE 'programinditas -pw: ".$pwd."%' ORDER BY datum desc LIMIT 1;"); $res=crm_database::getInstance()->fetchAssoc(); if(empty($res) == false) crm_database::getInstance()->query("UPDATE `".CRMADATBAZIS."`.`h_aktivalas_infok` SET leiras='programinditas - pw: {$pwd}, build: {$build}, isid: {$isid}, időkód: {$telepitesikod}, valasz: ".$valasz."', datum='". time()."' WHERE id=".$res[0]['id']." LIMIT 1"); else crm_hardlock::_Hibajelento("tips",substr($pwd,0,6),"programinditas - pw: {$pwd}, build: {$build}, isid: {$isid}, időkód: {$telepitesikod}, valasz: ".$valasz,(isset($arrGCData)?$arrGCData:array()),(isset($usstatid)?$usstatid:NULL));*/ } // Tavoli logolasi parameterek beallitasa $logfilter=0; if ($validPassword && $crackedProgram == false && $trialProgram == false) { crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`h_programs` WHERE `prPass`='".$pwd."' LIMIT 1;"); $res=crm_database::getInstance()->fetchAssoc(); $logfilter=$res[0]['prLogFilter']; } // Ha a verid >= 36, akkor beinsertalja a hardlockot és a computer id-t a hardlock_computers tablaba, ha meg nincs benne if($softwareKey && $crackedProgram == false && $trialProgram == false) crm_hardlock::AddHardlockComputer($hlNum, $compid, $verid); // Kulcsok tesztelese if($softwareKey && $crackedProgram == false && $trialProgram == false) { $valasz = crm_hardlock::sCheckPassword($pwd); if(empty($valasz) == false) { $actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"; $message = "Checked Password || Serial: ".$pwd." || Valasz: ".$valasz." || url: ".$actual_link; crm_hardlock::AddToDebugTable($message); } } // Modul es reaktivalo kodok kiiratasa if($crackedProgram == false && $trialProgram == false) { // Modul kodok osszegyujtese crm_database::getInstance()->query("SELECT prID FROM `".CRMADATBAZIS."`.`h_programs` WHERE `prPass`='".$pwd."' LIMIT 1;"); $programs = crm_database::getInstance()->fetchAssoc(); $moduleList = ""; if(empty($programs) == false) { $prID = $programs[0]['prID']; crm_database::getInstance()->query("SELECT mdCode FROM `".CRMADATBAZIS."`.`p_modules` WHERE `mdPrID`='".$prID."'"); $modules = crm_database::getInstance()->fetchAssoc(); foreach ($modules as $module) { if(empty($moduleList) == false) $moduleList .= ";"; $moduleList .= $module['mdCode']; } } // Reaktivalokodok kuldese if($virtualization == "true" && $reactivationCounter > 0) { $reactivationCounter--; $modulIsid = substr($pwd, 0,2).$verid; if($reactivationCounter > 4) // 5-nel tobb nem lehet $reactivationCounter = 4; for($i=0; $i<=$reactivationCounter; $i++) { $modulID = 35+$i; $reactivationCode = crm_hardlock::GenerateTimeCode($pwd, $modulIsid, $modulID); if(empty($moduleList) == false) $moduleList .= ";"; $moduleList .= $reactivationCode; } } } if(crm_hardlock::IsCalledFromMyIP() && $softwareKey) { $utst = time(); (int)$convertedDay = crm_hardlock::ConvertDay(date('w')); $tid = (int)($utst / $convertedDay); crm_database::getInstance()->query("SELECT * FROM `".CRMADATBAZIS."`.`p_serial_isid` WHERE serial='".$pwd."' AND isid='".$isid."' AND aktiv = 1"); $p_serial_isid=crm_database::getInstance()->fetchAssoc(); if(empty($p_serial_isid)) $regenr = crm_hardlock::No($utst, 39); else $regenr = crm_hardlock::Yes($utst, 39); } header('Content-Type: text/xml; charset=utf-8'); header('Content-Disposition: inline; filename=response.xml'); print '<'.'?'.'xml version="1.0" encoding="UTF-8" standalone="yes"'.'?'.'> /public/support/tips/en/ '.((isset($aktivalokod) && $aktivalokod) ? ''.$aktivalokod.'' : '').' '.((isset($virtualization) && $virtualization) ? ''.$virtualization.'' : '').' '.((isset($usstatid) && (int)$usstatid>0) ? ''.(int)$usstatid.'' : '').' '.$logfilter.' '.((empty($moduleList) == false) ? ''.$moduleList.'' : '').' '.($hlNum=='360006' ? 'true' : 'false').' '.((isset($regenr) && (int)$regenr>0) ? ''.(int)$regenr.'' : '').' '.((isset($tid) && (int)$tid>0) ? ''.(int)$tid.'' : '').' '; ?>