array('timeout' => 2))));
if (strstr($locale, "CountryName")) { // A freegeoip.net oldal mar nem elerheto
$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())
);
Database::getInstance()->insert(JMLADATBAZIS . '.a_hibak', $rec, 'ss');
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, $isTwTw) = explode($separator, $decoded);
elseif ($numdata >= 6)
list($empty, $pwd, $compID, $build, $ctrID, $telepitesikod, $osdata, $usGCMan, $usGCType, $usGCDriverVer, $npID, $partnerID) = explode($separator, $decoded);
else
list($empty, $pwd, $compID, $build, $ctrID, $telepitesikod) = explode($separator, $decoded);
crm_hardlock::InsertLog($pwd);
// Biztositsuk, hogy ez mindenkepp bool tipusu legyen
$isTwTw = $isTwTw == 'true';
$personalMessageLink = '';
$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;
}*/
// A crackelt programok ne menjenek bele a debug_table-be
/*$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 = Codegen::IsValidPassword($pwd);
if ($validPassword) {
$ver8and9 = crm_hardlock::GetVer8And9FromPassword($pwd);
$softwareKey = Codegen::IsSoftwareKey($pwd); // Software kulcs 2019
if (crm_hardlock::IsProgramExpiredByFixDate($pwd)) {
// A lejart programok ne menjenek be a debug_table-be
/*$message = "Tip error: expired program by IsProgramExpiredByFixDate || password: ".$pwd;
crm_hardlock::AddToDebugTable($message);*/
return;
}
} else {
$ver8and9 = 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 = Codegen::IsValidTimeCode($telepitesikod);
if ($validTelepitesikod || ($validPassword && !$softwareKey)) //- hardware kulcseseten az isid a passwordbol generalhato
$isid = ($softwareKey ? crm_hardlock::GetIsidFromTimeCode($telepitesikod) : substr($pwd, 0, 2) . $ver8and9);
else {
$telepitesikod = "";
$isid = "";
}
if (!$validPassword && 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 && $ver8and9 > 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, '');
$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 hlID FROM `" . CRMADATBAZIS . "`.`nonprofit` WHERE computer_id = ? AND partnerID = ? AND verID = ?";
Database::getInstance()->query($queryStr, array('isi', $compid, $partnerID, $ver8and9));
$res = Database::getInstance()->fetchNext();
$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;
$fizetve = $time + $interval * 86400;
if ($isTwTw) { // Az engedelyezett napok szamat konvertalni kell TWTW eseten
$interval = Codegen::GetDayInterval(crm_hardlock::getTwTwRootTimeString(), date('Y-m-d', $fizetve));
}
$type = crm_hardlock::GetTypeFromPassword($pwd);
$ver = crm_hardlock::GetVersion(array('verPassword8and9' => $ver8and9));
//ba nincs ehhez a gephez meg non-profit program regisztralva
if (empty($res)) {
$hlNum = crm_hardlock::GetTheFirstNotUsedHlNumFromInterval($rangeMin, $rangeMax);
$pass = Codegen::GeneratePassword($hlNum, 0, $type, $ver['verCode']);
$aktKod = Codegen::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,
'nUserType' => 2
),
$newsletter,
'sssisssi'
);
//ba regisztraljuk hozza a non-profit programot
crm_hardlock::AddNonprofit(
array(
'isid' => $isid,
'verid' => $ver8and9,
'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
),
'sisissssssi'
);
//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'
),
'siiisissiis'
);
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', $fizetve), // 90 vagy 30 nap
'prFizetve' => date('Y-m-d', $fizetve),
'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.
'twtw' => $isTwTw ? 1 : 0
),
'iiisssssssisiiii'
);
$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['hlID'];
$query = "SELECT prPass FROM `" . CRMADATBAZIS . "`.`h_programs` WHERE prHlNum = ?";
Database::getInstance()->query($query, array('s', $hlNum));
$programQuery = Database::getInstance()->fetchNext();
$pwd = $programQuery['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' => $ver8and9,
'usCompID' => $compID,
'usCtrID' => $ctrID,
'usBuild' => $build,
'usCtrName' => $ctrname,
'usIP' => $user_IP,
'usOSData' => $osdata,
'usISID' => $isid,
'usInditasokSzama' => 1
);
$query = "SELECT hlLan, hlCtrID, hlStat, hlUser FROM `" . CRMADATBAZIS . "`.`hardlock` WHERE hlNum = ?";
Database::getInstance()->query($query, array('s', $hlNum));
$hardlock = Database::getInstance()->fetchNext();
$isLanProgram = !empty($hardlock) && $hardlock['hlLan'] > 0;
// A szarmazasi orszag beallitasa
if ($softwareKey) {
if (!empty($hardlock)) { // Azok a programok, amik regisztrálódnak a CRM-ben 2019
if (isset($hardlock['hlCtrID'])) $stats['usHlCtrID'] = $hardlock['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 ($ver8and9 > 29 && (!$trialProgram || $trialSpecialEditionProgram)) {
if (!$trialSpecialEditionProgram) {
$binding = array('s', $pwd);
$query = "SELECT * FROM `" . CRMADATBAZIS . "`.`h_programs` WHERE prPass = ?";
if ($softwareKey && $isLanProgram) { //- szoftveres lan kulcsnal mindig telepitesenkent egyedi az aktivalo kod
$query .= " AND prActCode LIKE ?";
$binding = array('ss', $pwd, "%-{$isid}-%");
}
Database::getInstance()->query($query, $binding);
$prgrm = Database::getInstance()->fetchNext();
if (empty($prgrm) && $softwareKey && $isLanProgram) { //- a lan-os valtozatnal na nem volt telepitve lehet, hogy nem volt talalat
$query = "SELECT * FROM `" . CRMADATBAZIS . "`.`h_programs` WHERE prPass = ? AND (prActCode = '' OR prActCode IS NULL)";
Database::getInstance()->query($query, array('s', $pwd));
$prgrm = Database::getInstance()->fetchNext();
}
}
if ($softwareKey) { //- a telepitesi datum frissitese
if ($validTelepitesikod) //- telepitesi datum tarolasanak elokeszitese
$installDate = crm_hardlock::GetInstallationDateFromInstallationCode($telepitesikod, $isTwTw);
else
$installDate = time();
} else {
if (empty($prgrm)) $installDate = time(); //- todo ez gigantikus hiba, jelezni kell, ha ilyen elofordul
else $installDate = $prgrm['prSellDate'];
}
$stats['usTelepitesiDatum'] = $installDate;
if (!empty($prgrm)) $jelenlegi_aktivalokod = $prgrm['prActCode'];
else $jelenlegi_aktivalokod = '';
//- idokod generalasa
if ($isTwTw) $aktivalokod = crm_hardlock::GetOrGenerateTimeCodeTWTW($pwd, $isid, $telepitesikod, $npID);
else $aktivalokod = crm_hardlock::GetOrGenerateTimeCode($pwd, $isid, $telepitesikod, $npID);
// A userstats2013 tablaba megkeresi az utolso bejegyzest és amennyiben valtozatlan, updateli az inditasok szamat, különben uj bejegyzést hoz letre
if (!$trialSpecialEditionProgram) {
$usstatid = crm_hardlock::UpdateInstallationDate($pwd, $compID, $build, $aktivalokod, $user_IP, $installDate, $stats);
} else {
// Nem irjuk vissza a generalt kodot
$usstatid = crm_hardlock::UpdateInstallationDate($pwd, $compID, $build, $jelenlegi_aktivalokod, $user_IP, $installDate, $stats);
}
$virtualization = ($hardlock['hlStat'] == '2' ? "false" : "true"); // letiltott kulcs visszajelzése a programnak
$valasz = ($aktivalokod != "") ? $aktivalokod : "(( nem kapott valaszt ))";
if (($valasz == "(( nem kapott valaszt ))" && substr($pwd, 0, 2) != 39) || strpos($valasz, 'error') !== false) {
$query = "SELECT id FROM `" . CRMADATBAZIS . "`.`hibajelento` WHERE pwd = ? ORDER BY datum DESC";
Database::getInstance()->query($query, array('s', $pwd));
$res = Database::getInstance()->fetchNext();
if (!empty($res)) {
Database::getInstance()->update(
CRMADATBAZIS . ".hibajelento",
array(
'error' => $valasz,
'datum' => date('Y-m-d H:i:s', time())
),
array('id' => $res['id']),
'ssi'
);
} else {
$query = Database::getInstance()->insert(
CRMADATBAZIS . ".hibajelento",
array(
"error" => $valasz,
"datum" => date('Y-m-d H:i:s', time()),
"pwd" => $pwd
),
'sss'
);
}
}
}
if ($trialProgram && substr($pwd, 0, 2) == '96' && substr($pwd, 2, 4) != '0001' && substr($pwd, 2, 4) != '0002')
crm_hardlock::AddToDebugTable('Unknown trial code (' . $ver8and9 . ')', $pwd);
if ($trialProgram && $ver8and9 == 37 && $build == 371) $virtualization = 'false'; // a 2020-as program 371-es buildjenek a trial programjai nem jartak le, ezert le lettek tiltva
/*if ($trialProgram && $ver8and9 == 37 && $build < 397 && $build > 100)
crm_hardlock::AddToDebugTable('Old trial 2020 build ('.$build.')', $pwd);*/
$query = "SELECT prID, prLogFilter FROM `" . CRMADATBAZIS . "`.`h_programs` WHERE prPass = ?";
Database::getInstance()->query($query, array('s', $pwd));
$programs = Database::getInstance()->fetchNext();
if ($ver8and9 == 37 && $build == 257) { // A listaban megadott vagy ismeretlen sorozatszamok letiltasa a 20-as verzio, 257-es buildnel
$disabledPrograms = array(
'3900818370905571', '3900918370787595', '3900928370377805', '3927288372916698', '3927618370940811', '3927818370587932', '3935548370737107', '3935548370737107',
'4317638370978599',
//- Febr. 17-en leallitott programok 12:07
'3944107370431359', '3902268370018090', '3900598370731017', '3958088370568762', '3972278370582604',
'3971618370953291', '3969098372372780', '3967778370942522', '3965826370794868', '3980518370165197',
'3979978372152989', '3979156370468368', '3975678370016038', '3986628370454716', '3985648370487415',
'3984778370420511', '3983916370785889', '3981746370800383', '3988768370350372', '3988328379279434',
'3988146370680554', '3987726370647018', '3987298370563850',
//- Febr. 24-en leallitott programok 9:27
'9968618370957233', '9939518370957951', '9988778370193564', '9936978370437452', '9914298370034321',
);
if (in_array($pwd, $disabledPrograms) || empty($programs))
$virtualization = 'false';
if (!empty($programs)) { // Akik felhasznalok, azokat iranyitsuk at az oldalra
if ($user_lang_db == 'hun')
$personalMessageLink = 'https://www.archline.hu/build-257?lang=';
elseif ($user_lang_db == 'ita')
$personalMessageLink = 'https://www.archlinexp.com/build-257-italy?lang=';
if ($personalMessageLink != '') {
crm_hardlock::AddToDebugTable('A felhasznalo uzenetet kapott 257-es frissitesrol', $pwd);
}
}
}
// Tavoli logolasi parameterek beallitasa
$logfilter = 0;
if ($validPassword && !$crackedProgram && !$trialProgram) $logfilter = $programs['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 && !$trialProgram) crm_hardlock::AddHardlockComputer($hlNum, $compid, $ver8and9);
// Kulcsok tesztelese
if ($softwareKey && !$crackedProgram && !$trialProgram) {
$valasz = crm_hardlock::sCheckPassword($pwd);
if (!empty($valasz)) {
$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, $pwd);
}
}
// Modul es reaktivalo kodok kiiratasa
if (!$crackedProgram && !$trialProgram) {
// Modul kodok osszegyujtese
$moduleList = "";
if (!empty($programs)) {
$query = "SELECT mdCode FROM `" . CRMADATBAZIS . "`.`p_modules` WHERE mdPrID = ?";
Database::getInstance()->query($query, array('i', $programs['prID']));
$modules = Database::getInstance()->fetchAssoc();
foreach ($modules as $module) {
if (!empty($moduleList)) $moduleList .= ";";
$moduleList .= $module['mdCode'];
}
}
// Reaktivalokodok kuldese
if ($virtualization == "true" && $reactivationCounter > 0) {
$reactivationCounter--;
$modulIsid = substr($pwd, 0, 2) . $ver8and9;
if ($reactivationCounter > 4) $reactivationCounter = 4; // 5-nel tobb nem lehet
for ($i = 0; $i <= $reactivationCounter; $i++) {
$modulID = 35 + $i;
$reactivationCode = Codegen::GenerateTimeCode($pwd, $modulIsid, $modulID);
if (!empty($moduleList)) $moduleList .= ";";
$moduleList .= $reactivationCode;
}
}
}
if ($softwareKey) {
$utst = time();
(int)$convertedDay = crm_hardlock::ConvertDay(date('w'));
$tid = (int)($utst / $convertedDay);
$query = "SELECT * FROM `" . CRMADATBAZIS . "`.`p_serial_isid` WHERE serial = ? AND isid = ? AND aktiv = ?";
Database::getInstance()->query($query, array('ssi', $pwd, $isid, 1));
$p_serial_isid = 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 . '' : '') . '
' . ((isset($personalMessageLink) && $personalMessageLink) ? '' . $personalMessageLink . '' : '') . '
';