Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php goto hvVzg; idRaB: define("LB_TEXT_UPDATE_WITH_SQL_DONE", "Application was su..

Decoded Output download

 
 
<?php  
 goto hvVzg; idRaB: define("LB_TEXT_UPDATE_WITH_SQL_DONE", "Application was successfully updated, please import the downloaded SQL file in your database manually."); goto FBhBj; t5E3p: define("LB_TEXT_DOWNLOADING_SQL", "Downloading SQL update..."); goto hlFko; FWFYX: define("LB_TEXT_UPDATE_EXTRACTION_ERROR", "Update zip extraction failed."); goto mY2sw; FBhBj: define("LB_TEXT_UPDATE_WITHOUT_SQL_DONE", "Application was successfully updated, there were no SQL updates."); goto B_4rm; pFxpw: define("LB_TEXT_DOWNLOADING_MAIN", "Downloading main update..."); goto YLA7I; RTF6b: define("LB_TEXT_PREPARING_MAIN_DOWNLOAD", "Preparing to download main update..."); goto vAwh2; XrjFt: define("LB_TEXT_UPDATE_WITH_SQL_IMPORT_DONE", "Application was successfully updated and SQL file was automatically imported."); goto idRaB; UZMxJ: define("LB_TEXT_VERIFIED_RESPONSE", "Verified! Thanks for purchasing."); goto RTF6b; AFFNY: @ini_set("memory_limit", "256M"); goto C1vv8; B_4rm: if (!LB_API_DEBUG) { @ini_set("display_errors", 0); } goto BpCvi; hvVzg: if (count(get_included_files()) == 1) { die("No direct script access allowed"); } goto PVI7C; WzS6F: define("LB_TEXT_UPDATE_WITH_SQL_IMPORT_FAILED", "Application was successfully updated but automatic SQL importing failed, please import the downloaded SQL file in your database manually."); goto XrjFt; vAwh2: define("LB_TEXT_MAIN_UPDATE_SIZE", "Main Update size:"); goto O8246; PVI7C: define("LB_API_DEBUG", false); goto ZtAMz; O8246: define("LB_TEXT_DONT_REFRESH", "(Please do not refresh the page)."); goto pFxpw; mY2sw: define("LB_TEXT_PREPARING_SQL_DOWNLOAD", "Preparing to download SQL update..."); goto zGhyW; YLA7I: define("LB_TEXT_UPDATE_PERIOD_EXPIRED", "Your update period has ended or your license is invalid, please contact support."); goto PTCwm; zGhyW: define("LB_TEXT_SQL_UPDATE_SIZE", "SQL Update size:"); goto t5E3p; eRh90: define("LB_TEXT_MAIN_UPDATE_DONE", "Main update files downloaded and extracted."); goto FWFYX; ZtAMz: define("LB_SHOW_UPDATE_PROGRESS", true); goto NUbyl; jCX0n: define("LB_TEXT_INVALID_RESPONSE", "Server returned an invalid response, please contact support."); goto UZMxJ; PTCwm: define("LB_TEXT_UPDATE_PATH_ERROR", "Folder does not have write permission or the update file path could not be resolved, please contact support."); goto eRh90; BpCvi: if (@ini_get("max_execution_time") !== "0" && @ini_get("max_execution_time") < 600) { @ini_set("max_execution_time", 600); } goto AFFNY; hlFko: define("LB_TEXT_SQL_UPDATE_DONE", "SQL update files downloaded."); goto WzS6F; NUbyl: define("LB_TEXT_CONNECTION_FAILED", "Server is unavailable at the moment, please try again."); goto jCX0n; C1vv8: class LicenseBoxExternalAPI { private $product_id; private $api_url; private $api_key; private $api_language; private $current_version; private $verify_type; private $verification_period; private $current_path; private $root_path; private $license_file; public function __construct() { $this->product_id = "56A8B615"; $this->api_url = "http://sdkshield.sdk/"; $this->api_key = "D50E0D022E80BDB16F7F"; $this->api_language = "english"; $this->current_version = "v1.0.0"; $this->verify_type = "non_envato"; $this->verification_period = 1; $this->current_path = realpath(__DIR__); $this->root_path = realpath($this->current_path . "/.."); $this->license_file = $this->current_path . "/.lic"; } public function check_local_license_exist() { return is_file($this->license_file); } public function get_current_version() { return $this->current_version; } private function call_api($method, $url, $data = null) { $curl = curl_init(); switch ($method) { case "POST": curl_setopt($curl, CURLOPT_POST, 1); if ($data) { curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } break; case "PUT": curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT"); if ($data) { curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } break; default: if ($data) { $url = sprintf("%s?%s", $url, http_build_query($data)); } } $this_server_name = getenv("SERVER_NAME") ?: $_SERVER["SERVER_NAME"] ?: getenv("HTTP_HOST") ?: $_SERVER["HTTP_HOST"]; $this_http_or_https = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" or isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) and $_SERVER["HTTP_X_FORWARDED_PROTO"] === "https") ? "https://" : "http://"; $this_url = $this_http_or_https . $this_server_name . $_SERVER["REQUEST_URI"]; $this_ip = getenv("SERVER_ADDR") ?: $_SERVER["SERVER_ADDR"] ?: $this->get_ip_from_third_party() ?: gethostbyname(gethostname()); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "LB-API-KEY: " . $this->api_key, "LB-URL: " . $this_url, "LB-IP: " . $this_ip, "LB-LANG: " . $this->api_language)); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($curl, CURLOPT_TIMEOUT, 30); $result = curl_exec($curl); if (!$result && !LB_API_DEBUG) { $rs = array("status" => FALSE, "message" => LB_TEXT_CONNECTION_FAILED); return json_encode($rs); } $http_status = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($http_status != 200) { if (LB_API_DEBUG) { $temp_decode = json_decode($result, true); $rs = array("status" => FALSE, "message" => !empty($temp_decode["error"]) ? $temp_decode["error"] : $temp_decode["message"]); return json_encode($rs); } else { $rs = array("status" => FALSE, "message" => LB_TEXT_INVALID_RESPONSE); return json_encode($rs); } } curl_close($curl); return $result; } public function check_connection() { $get_data = $this->call_api("POST", $this->api_url . "api/check_connection_ext"); $response = json_decode($get_data, true); return $response; } public function get_latest_version() { $data_array = array("product_id" => $this->product_id); $get_data = $this->call_api("POST", $this->api_url . "api/latest_version", json_encode($data_array)); $response = json_decode($get_data, true); return $response; } public function activate_license($license, $client, $create_lic = true) { $data_array = array("product_id" => $this->product_id, "license_code" => $license, "client_name" => $client, "verify_type" => $this->verify_type); $get_data = $this->call_api("POST", $this->api_url . "api/activate_license", json_encode($data_array)); $response = json_decode($get_data, true); if (!empty($create_lic)) { if ($response["status"]) { $licfile = trim($response["lic_response"]); file_put_contents($this->license_file, $licfile, LOCK_EX); } else { @chmod($this->license_file, 511); if (is_writeable($this->license_file)) { unlink($this->license_file); } } } return $response; } public function verify_license($time_based_check = false, $license = false, $client = false) { if (!empty($license) && !empty($client)) { $data_array = array("product_id" => $this->product_id, "license_file" => null, "license_code" => $license, "client_name" => $client); } else { if (is_file($this->license_file)) { $data_array = array("product_id" => $this->product_id, "license_file" => file_get_contents($this->license_file), "license_code" => null, "client_name" => null); } else { $data_array = array(); } } $res = array("status" => TRUE, "message" => LB_TEXT_VERIFIED_RESPONSE); if ($time_based_check && $this->verification_period > 0) { ob_start(); if (session_status() == PHP_SESSION_NONE) { session_start(); } $type = (int) $this->verification_period; $today = date("d-m-Y"); if (empty($_SESSION["52b7817af25d2e8"])) { $_SESSION["52b7817af25d2e8"] = "00-00-0000"; } if ($type == 1) { $type_text = "1 day"; } elseif ($type == 3) { $type_text = "3 days"; } elseif ($type == 7) { $type_text = "1 week"; } elseif ($type == 30) { $type_text = "1 month"; } elseif ($type == 90) { $type_text = "3 months"; } elseif ($type == 365) { $type_text = "1 year"; } else { $type_text = $type . " days"; } if (strtotime($today) >= strtotime($_SESSION["52b7817af25d2e8"])) { $get_data = $this->call_api("POST", $this->api_url . "api/verify_license", json_encode($data_array)); $res = json_decode($get_data, true); if ($res["status"] == true) { $tomo = date("d-m-Y", strtotime($today . " + " . $type_text)); $_SESSION["52b7817af25d2e8"] = $tomo; } } ob_end_clean(); } else { $get_data = $this->call_api("POST", $this->api_url . "api/verify_license", json_encode($data_array)); $res = json_decode($get_data, true); } return $res; } public function deactivate_license($license = false, $client = false) { if (!empty($license) && !empty($client)) { $data_array = array("product_id" => $this->product_id, "license_file" => null, "license_code" => $license, "client_name" => $client); } else { if (is_file($this->license_file)) { $data_array = array("product_id" => $this->product_id, "license_file" => file_get_contents($this->license_file), "license_code" => null, "client_name" => null); } else { $data_array = array(); } } $get_data = $this->call_api("POST", $this->api_url . "api/deactivate_license", json_encode($data_array)); $response = json_decode($get_data, true); if ($response["status"]) { @chmod($this->license_file, 511); if (is_writeable($this->license_file)) { unlink($this->license_file); } } return $response; } public function check_update() { $data_array = array("product_id" => $this->product_id, "current_version" => $this->current_version); $get_data = $this->call_api("POST", $this->api_url . "api/check_update", json_encode($data_array)); $response = json_decode($get_data, true); return $response; } public function download_update($update_id, $type, $version, $license = false, $client = false, $db_for_import = false) { if (!empty($license) && !empty($client)) { $data_array = array("license_file" => null, "license_code" => $license, "client_name" => $client); } else { if (is_file($this->license_file)) { $data_array = array("license_file" => file_get_contents($this->license_file), "license_code" => null, "client_name" => null); } else { $data_array = array(); } } ob_end_flush(); ob_implicit_flush(true); $version = str_replace(".", "_", $version); ob_start(); $source_size = $this->api_url . "api/get_update_size/main/" . $update_id; echo LB_TEXT_PREPARING_MAIN_DOWNLOAD . "<br>"; if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 1;</script>"; } ob_flush(); echo LB_TEXT_MAIN_UPDATE_SIZE . " " . $this->get_remote_filesize($source_size) . " " . LB_TEXT_DONT_REFRESH . "<br>"; if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 5;</script>"; } ob_flush(); $temp_progress = ''; $ch = curl_init(); $source = $this->api_url . "api/download_update/main/" . $update_id; curl_setopt($ch, CURLOPT_URL, $source); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_array); $this_server_name = getenv("SERVER_NAME") ?: $_SERVER["SERVER_NAME"] ?: getenv("HTTP_HOST") ?: $_SERVER["HTTP_HOST"]; $this_http_or_https = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" or isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) and $_SERVER["HTTP_X_FORWARDED_PROTO"] === "https") ? "https://" : "http://"; $this_url = $this_http_or_https . $this_server_name . $_SERVER["REQUEST_URI"]; $this_ip = getenv("SERVER_ADDR") ?: $_SERVER["SERVER_ADDR"] ?: $this->get_ip_from_third_party() ?: gethostbyname(gethostname()); curl_setopt($ch, CURLOPT_HTTPHEADER, array("LB-API-KEY: " . $this->api_key, "LB-URL: " . $this_url, "LB-IP: " . $this_ip, "LB-LANG: " . $this->api_language)); if (LB_SHOW_UPDATE_PROGRESS) { curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, array($this, "progress")); } if (LB_SHOW_UPDATE_PROGRESS) { curl_setopt($ch, CURLOPT_NOPROGRESS, false); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); echo LB_TEXT_DOWNLOADING_MAIN . "<br>"; if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 10;</script>"; } ob_flush(); $data = curl_exec($ch); $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($http_status != 200) { if ($http_status == 401) { curl_close($ch); die("<br>" . LB_TEXT_UPDATE_PERIOD_EXPIRED); } else { curl_close($ch); die("<br>" . LB_TEXT_INVALID_RESPONSE); } } curl_close($ch); $destination = $this->root_path . "/update_main_" . $version . ".zip"; $file = fopen($destination, "w+"); if (!$file) { die("<br>" . LB_TEXT_UPDATE_PATH_ERROR); } fputs($file, $data); fclose($file); if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 65;</script>"; } ob_flush(); $zip = new ZipArchive(); $res = $zip->open($destination); if ($res === TRUE) { $zip->extractTo($this->root_path . "/"); $zip->close(); unlink($destination); echo LB_TEXT_MAIN_UPDATE_DONE . "<br><br>"; if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 75;</script>"; } ob_flush(); } else { echo LB_TEXT_UPDATE_EXTRACTION_ERROR . "<br><br>"; ob_flush(); } if ($type == true) { $source_size = $this->api_url . "api/get_update_size/sql/" . $update_id; echo LB_TEXT_PREPARING_SQL_DOWNLOAD . "<br>"; ob_flush(); echo LB_TEXT_SQL_UPDATE_SIZE . " " . $this->get_remote_filesize($source_size) . " " . LB_TEXT_DONT_REFRESH . "<br>"; if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 85;</script>"; } ob_flush(); $temp_progress = ''; $ch = curl_init(); $source = $this->api_url . "api/download_update/sql/" . $update_id; curl_setopt($ch, CURLOPT_URL, $source); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_array); $this_server_name = getenv("SERVER_NAME") ?: $_SERVER["SERVER_NAME"] ?: getenv("HTTP_HOST") ?: $_SERVER["HTTP_HOST"]; $this_http_or_https = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" or isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) and $_SERVER["HTTP_X_FORWARDED_PROTO"] === "https") ? "https://" : "http://"; $this_url = $this_http_or_https . $this_server_name . $_SERVER["REQUEST_URI"]; $this_ip = getenv("SERVER_ADDR") ?: $_SERVER["SERVER_ADDR"] ?: $this->get_ip_from_third_party() ?: gethostbyname(gethostname()); curl_setopt($ch, CURLOPT_HTTPHEADER, array("LB-API-KEY: " . $this->api_key, "LB-URL: " . $this_url, "LB-IP: " . $this_ip, "LB-LANG: " . $this->api_language)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); echo LB_TEXT_DOWNLOADING_SQL . "<br>"; if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 90;</script>"; } ob_flush(); $data = curl_exec($ch); $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($http_status != 200) { curl_close($ch); die(LB_TEXT_INVALID_RESPONSE); } curl_close($ch); $destination = $this->root_path . "/update_sql_" . $version . ".sql"; $file = fopen($destination, "w+"); if (!$file) { die(LB_TEXT_UPDATE_PATH_ERROR); } fputs($file, $data); fclose($file); echo LB_TEXT_SQL_UPDATE_DONE . "<br><br>"; if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 95;</script>"; } ob_flush(); if (is_array($db_for_import)) { if (!empty($db_for_import["db_host"]) && !empty($db_for_import["db_user"]) && !empty($db_for_import["db_name"])) { $db_host = strip_tags(trim($db_for_import["db_host"])); $db_user = strip_tags(trim($db_for_import["db_user"])); $db_pass = strip_tags(trim($db_for_import["db_pass"])); $db_name = strip_tags(trim($db_for_import["db_name"])); $con = @mysqli_connect($db_host, $db_user, $db_pass, $db_name); if (mysqli_connect_errno()) { echo LB_TEXT_UPDATE_WITH_SQL_IMPORT_FAILED; } else { $templine = ''; $lines = file($destination); foreach ($lines as $line) { if (substr($line, 0, 2) == "--" || $line == '') { continue; } $templine .= $line; $query = false; if (substr(trim($line), -1, 1) == ";") { $query = mysqli_query($con, $templine); $templine = ''; } } @chmod($destination, 511); if (is_writeable($destination)) { unlink($destination); } echo LB_TEXT_UPDATE_WITH_SQL_IMPORT_DONE; } } else { echo LB_TEXT_UPDATE_WITH_SQL_IMPORT_FAILED; } } else { echo LB_TEXT_UPDATE_WITH_SQL_DONE; } if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 100;</script>"; } ob_flush(); } else { if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 100;</script>"; } echo LB_TEXT_UPDATE_WITHOUT_SQL_DONE; ob_flush(); } ob_end_flush(); } private function progress($resource, $download_size, $downloaded, $upload_size, $uploaded) { static $prev = 0; if ($download_size == 0) { $progress = 0; } else { $progress = round($downloaded * 100 / $download_size); } if ($progress != $prev && $progress == 25) { $prev = $progress; echo "<script>document.getElementById('prog').value = 22.5;</script>"; ob_flush(); } if ($progress != $prev && $progress == 50) { $prev = $progress; echo "<script>document.getElementById('prog').value = 35;</script>"; ob_flush(); } if ($progress != $prev && $progress == 75) { $prev = $progress; echo "<script>document.getElementById('prog').value = 47.5;</script>"; ob_flush(); } if ($progress != $prev && $progress == 100) { $prev = $progress; echo "<script>document.getElementById('prog').value = 60;</script>"; ob_flush(); } } private function get_ip_from_third_party() { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://ipecho.net/plain"); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($curl, CURLOPT_TIMEOUT, 10); $response = curl_exec($curl); curl_close($curl); return $response; } private function get_remote_filesize($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_HEADER, TRUE); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_NOBODY, TRUE); $this_server_name = getenv("SERVER_NAME") ?: $_SERVER["SERVER_NAME"] ?: getenv("HTTP_HOST") ?: $_SERVER["HTTP_HOST"]; $this_http_or_https = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" or isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) and $_SERVER["HTTP_X_FORWARDED_PROTO"] === "https") ? "https://" : "http://"; $this_url = $this_http_or_https . $this_server_name . $_SERVER["REQUEST_URI"]; $this_ip = getenv("SERVER_ADDR") ?: $_SERVER["SERVER_ADDR"] ?: $this->get_ip_from_third_party() ?: gethostbyname(gethostname()); curl_setopt($curl, CURLOPT_HTTPHEADER, array("LB-API-KEY: " . $this->api_key, "LB-URL: " . $this_url, "LB-IP: " . $this_ip, "LB-LANG: " . $this->api_language)); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30); $result = curl_exec($curl); $filesize = curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD); if ($filesize) { switch ($filesize) { case $filesize < 1024: $size = $filesize . " B"; break; case $filesize < 1048576: $size = round($filesize / 1024, 2) . " KB"; break; case $filesize < 1073741824: $size = round($filesize / 1048576, 2) . " MB"; break; case $filesize < 1099511627776: $size = round($filesize / 1073741824, 2) . " GB"; break; } return $size; } } } ?> 
 

Did this file decode correctly?

Original Code



<?php 
 goto hvVzg; idRaB: define("LB_TEXT_UPDATE_WITH_SQL_DONE", "Application was successfully updated, please import the downloaded SQL file in your database manually."); goto FBhBj; t5E3p: define("LB_TEXT_DOWNLOADING_SQL", "Downloading SQL update..."); goto hlFko; FWFYX: define("LB_TEXT_UPDATE_EXTRACTION_ERROR", "Update zip extraction failed."); goto mY2sw; FBhBj: define("LB_TEXT_UPDATE_WITHOUT_SQL_DONE", "Application was successfully updated, there were no SQL updates."); goto B_4rm; pFxpw: define("LB_TEXT_DOWNLOADING_MAIN", "Downloading main update..."); goto YLA7I; RTF6b: define("LB_TEXT_PREPARING_MAIN_DOWNLOAD", "Preparing to download main update..."); goto vAwh2; XrjFt: define("LB_TEXT_UPDATE_WITH_SQL_IMPORT_DONE", "Application was successfully updated and SQL file was automatically imported."); goto idRaB; UZMxJ: define("LB_TEXT_VERIFIED_RESPONSE", "Verified! Thanks for purchasing."); goto RTF6b; AFFNY: @ini_set("memory_limit", "256M"); goto C1vv8; B_4rm: if (!LB_API_DEBUG) { @ini_set("display_errors", 0); } goto BpCvi; hvVzg: if (count(get_included_files()) == 1) { die("No direct script access allowed"); } goto PVI7C; WzS6F: define("LB_TEXT_UPDATE_WITH_SQL_IMPORT_FAILED", "Application was successfully updated but automatic SQL importing failed, please import the downloaded SQL file in your database manually."); goto XrjFt; vAwh2: define("LB_TEXT_MAIN_UPDATE_SIZE", "Main Update size:"); goto O8246; PVI7C: define("LB_API_DEBUG", false); goto ZtAMz; O8246: define("LB_TEXT_DONT_REFRESH", "(Please do not refresh the page)."); goto pFxpw; mY2sw: define("LB_TEXT_PREPARING_SQL_DOWNLOAD", "Preparing to download SQL update..."); goto zGhyW; YLA7I: define("LB_TEXT_UPDATE_PERIOD_EXPIRED", "Your update period has ended or your license is invalid, please contact support."); goto PTCwm; zGhyW: define("LB_TEXT_SQL_UPDATE_SIZE", "SQL Update size:"); goto t5E3p; eRh90: define("LB_TEXT_MAIN_UPDATE_DONE", "Main update files downloaded and extracted."); goto FWFYX; ZtAMz: define("LB_SHOW_UPDATE_PROGRESS", true); goto NUbyl; jCX0n: define("LB_TEXT_INVALID_RESPONSE", "Server returned an invalid response, please contact support."); goto UZMxJ; PTCwm: define("LB_TEXT_UPDATE_PATH_ERROR", "Folder does not have write permission or the update file path could not be resolved, please contact support."); goto eRh90; BpCvi: if (@ini_get("max_execution_time") !== "0" && @ini_get("max_execution_time") < 600) { @ini_set("max_execution_time", 600); } goto AFFNY; hlFko: define("LB_TEXT_SQL_UPDATE_DONE", "SQL update files downloaded."); goto WzS6F; NUbyl: define("LB_TEXT_CONNECTION_FAILED", "Server is unavailable at the moment, please try again."); goto jCX0n; C1vv8: class LicenseBoxExternalAPI { private $product_id; private $api_url; private $api_key; private $api_language; private $current_version; private $verify_type; private $verification_period; private $current_path; private $root_path; private $license_file; public function __construct() { $this->product_id = "56A8B615"; $this->api_url = "http://sdkshield.sdk/"; $this->api_key = "D50E0D022E80BDB16F7F"; $this->api_language = "english"; $this->current_version = "v1.0.0"; $this->verify_type = "non_envato"; $this->verification_period = 1; $this->current_path = realpath(__DIR__); $this->root_path = realpath($this->current_path . "/.."); $this->license_file = $this->current_path . "/.lic"; } public function check_local_license_exist() { return is_file($this->license_file); } public function get_current_version() { return $this->current_version; } private function call_api($method, $url, $data = null) { $curl = curl_init(); switch ($method) { case "POST": curl_setopt($curl, CURLOPT_POST, 1); if ($data) { curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } break; case "PUT": curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT"); if ($data) { curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } break; default: if ($data) { $url = sprintf("%s?%s", $url, http_build_query($data)); } } $this_server_name = getenv("SERVER_NAME") ?: $_SERVER["SERVER_NAME"] ?: getenv("HTTP_HOST") ?: $_SERVER["HTTP_HOST"]; $this_http_or_https = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" or isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) and $_SERVER["HTTP_X_FORWARDED_PROTO"] === "https") ? "https://" : "http://"; $this_url = $this_http_or_https . $this_server_name . $_SERVER["REQUEST_URI"]; $this_ip = getenv("SERVER_ADDR") ?: $_SERVER["SERVER_ADDR"] ?: $this->get_ip_from_third_party() ?: gethostbyname(gethostname()); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "LB-API-KEY: " . $this->api_key, "LB-URL: " . $this_url, "LB-IP: " . $this_ip, "LB-LANG: " . $this->api_language)); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($curl, CURLOPT_TIMEOUT, 30); $result = curl_exec($curl); if (!$result && !LB_API_DEBUG) { $rs = array("status" => FALSE, "message" => LB_TEXT_CONNECTION_FAILED); return json_encode($rs); } $http_status = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($http_status != 200) { if (LB_API_DEBUG) { $temp_decode = json_decode($result, true); $rs = array("status" => FALSE, "message" => !empty($temp_decode["error"]) ? $temp_decode["error"] : $temp_decode["message"]); return json_encode($rs); } else { $rs = array("status" => FALSE, "message" => LB_TEXT_INVALID_RESPONSE); return json_encode($rs); } } curl_close($curl); return $result; } public function check_connection() { $get_data = $this->call_api("POST", $this->api_url . "api/check_connection_ext"); $response = json_decode($get_data, true); return $response; } public function get_latest_version() { $data_array = array("product_id" => $this->product_id); $get_data = $this->call_api("POST", $this->api_url . "api/latest_version", json_encode($data_array)); $response = json_decode($get_data, true); return $response; } public function activate_license($license, $client, $create_lic = true) { $data_array = array("product_id" => $this->product_id, "license_code" => $license, "client_name" => $client, "verify_type" => $this->verify_type); $get_data = $this->call_api("POST", $this->api_url . "api/activate_license", json_encode($data_array)); $response = json_decode($get_data, true); if (!empty($create_lic)) { if ($response["status"]) { $licfile = trim($response["lic_response"]); file_put_contents($this->license_file, $licfile, LOCK_EX); } else { @chmod($this->license_file, 511); if (is_writeable($this->license_file)) { unlink($this->license_file); } } } return $response; } public function verify_license($time_based_check = false, $license = false, $client = false) { if (!empty($license) && !empty($client)) { $data_array = array("product_id" => $this->product_id, "license_file" => null, "license_code" => $license, "client_name" => $client); } else { if (is_file($this->license_file)) { $data_array = array("product_id" => $this->product_id, "license_file" => file_get_contents($this->license_file), "license_code" => null, "client_name" => null); } else { $data_array = array(); } } $res = array("status" => TRUE, "message" => LB_TEXT_VERIFIED_RESPONSE); if ($time_based_check && $this->verification_period > 0) { ob_start(); if (session_status() == PHP_SESSION_NONE) { session_start(); } $type = (int) $this->verification_period; $today = date("d-m-Y"); if (empty($_SESSION["52b7817af25d2e8"])) { $_SESSION["52b7817af25d2e8"] = "00-00-0000"; } if ($type == 1) { $type_text = "1 day"; } elseif ($type == 3) { $type_text = "3 days"; } elseif ($type == 7) { $type_text = "1 week"; } elseif ($type == 30) { $type_text = "1 month"; } elseif ($type == 90) { $type_text = "3 months"; } elseif ($type == 365) { $type_text = "1 year"; } else { $type_text = $type . " days"; } if (strtotime($today) >= strtotime($_SESSION["52b7817af25d2e8"])) { $get_data = $this->call_api("POST", $this->api_url . "api/verify_license", json_encode($data_array)); $res = json_decode($get_data, true); if ($res["status"] == true) { $tomo = date("d-m-Y", strtotime($today . " + " . $type_text)); $_SESSION["52b7817af25d2e8"] = $tomo; } } ob_end_clean(); } else { $get_data = $this->call_api("POST", $this->api_url . "api/verify_license", json_encode($data_array)); $res = json_decode($get_data, true); } return $res; } public function deactivate_license($license = false, $client = false) { if (!empty($license) && !empty($client)) { $data_array = array("product_id" => $this->product_id, "license_file" => null, "license_code" => $license, "client_name" => $client); } else { if (is_file($this->license_file)) { $data_array = array("product_id" => $this->product_id, "license_file" => file_get_contents($this->license_file), "license_code" => null, "client_name" => null); } else { $data_array = array(); } } $get_data = $this->call_api("POST", $this->api_url . "api/deactivate_license", json_encode($data_array)); $response = json_decode($get_data, true); if ($response["status"]) { @chmod($this->license_file, 511); if (is_writeable($this->license_file)) { unlink($this->license_file); } } return $response; } public function check_update() { $data_array = array("product_id" => $this->product_id, "current_version" => $this->current_version); $get_data = $this->call_api("POST", $this->api_url . "api/check_update", json_encode($data_array)); $response = json_decode($get_data, true); return $response; } public function download_update($update_id, $type, $version, $license = false, $client = false, $db_for_import = false) { if (!empty($license) && !empty($client)) { $data_array = array("license_file" => null, "license_code" => $license, "client_name" => $client); } else { if (is_file($this->license_file)) { $data_array = array("license_file" => file_get_contents($this->license_file), "license_code" => null, "client_name" => null); } else { $data_array = array(); } } ob_end_flush(); ob_implicit_flush(true); $version = str_replace(".", "_", $version); ob_start(); $source_size = $this->api_url . "api/get_update_size/main/" . $update_id; echo LB_TEXT_PREPARING_MAIN_DOWNLOAD . "<br>"; if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 1;</script>"; } ob_flush(); echo LB_TEXT_MAIN_UPDATE_SIZE . " " . $this->get_remote_filesize($source_size) . " " . LB_TEXT_DONT_REFRESH . "<br>"; if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 5;</script>"; } ob_flush(); $temp_progress = ''; $ch = curl_init(); $source = $this->api_url . "api/download_update/main/" . $update_id; curl_setopt($ch, CURLOPT_URL, $source); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_array); $this_server_name = getenv("SERVER_NAME") ?: $_SERVER["SERVER_NAME"] ?: getenv("HTTP_HOST") ?: $_SERVER["HTTP_HOST"]; $this_http_or_https = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" or isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) and $_SERVER["HTTP_X_FORWARDED_PROTO"] === "https") ? "https://" : "http://"; $this_url = $this_http_or_https . $this_server_name . $_SERVER["REQUEST_URI"]; $this_ip = getenv("SERVER_ADDR") ?: $_SERVER["SERVER_ADDR"] ?: $this->get_ip_from_third_party() ?: gethostbyname(gethostname()); curl_setopt($ch, CURLOPT_HTTPHEADER, array("LB-API-KEY: " . $this->api_key, "LB-URL: " . $this_url, "LB-IP: " . $this_ip, "LB-LANG: " . $this->api_language)); if (LB_SHOW_UPDATE_PROGRESS) { curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, array($this, "progress")); } if (LB_SHOW_UPDATE_PROGRESS) { curl_setopt($ch, CURLOPT_NOPROGRESS, false); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); echo LB_TEXT_DOWNLOADING_MAIN . "<br>"; if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 10;</script>"; } ob_flush(); $data = curl_exec($ch); $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($http_status != 200) { if ($http_status == 401) { curl_close($ch); die("<br>" . LB_TEXT_UPDATE_PERIOD_EXPIRED); } else { curl_close($ch); die("<br>" . LB_TEXT_INVALID_RESPONSE); } } curl_close($ch); $destination = $this->root_path . "/update_main_" . $version . ".zip"; $file = fopen($destination, "w+"); if (!$file) { die("<br>" . LB_TEXT_UPDATE_PATH_ERROR); } fputs($file, $data); fclose($file); if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 65;</script>"; } ob_flush(); $zip = new ZipArchive(); $res = $zip->open($destination); if ($res === TRUE) { $zip->extractTo($this->root_path . "/"); $zip->close(); unlink($destination); echo LB_TEXT_MAIN_UPDATE_DONE . "<br><br>"; if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 75;</script>"; } ob_flush(); } else { echo LB_TEXT_UPDATE_EXTRACTION_ERROR . "<br><br>"; ob_flush(); } if ($type == true) { $source_size = $this->api_url . "api/get_update_size/sql/" . $update_id; echo LB_TEXT_PREPARING_SQL_DOWNLOAD . "<br>"; ob_flush(); echo LB_TEXT_SQL_UPDATE_SIZE . " " . $this->get_remote_filesize($source_size) . " " . LB_TEXT_DONT_REFRESH . "<br>"; if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 85;</script>"; } ob_flush(); $temp_progress = ''; $ch = curl_init(); $source = $this->api_url . "api/download_update/sql/" . $update_id; curl_setopt($ch, CURLOPT_URL, $source); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_array); $this_server_name = getenv("SERVER_NAME") ?: $_SERVER["SERVER_NAME"] ?: getenv("HTTP_HOST") ?: $_SERVER["HTTP_HOST"]; $this_http_or_https = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" or isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) and $_SERVER["HTTP_X_FORWARDED_PROTO"] === "https") ? "https://" : "http://"; $this_url = $this_http_or_https . $this_server_name . $_SERVER["REQUEST_URI"]; $this_ip = getenv("SERVER_ADDR") ?: $_SERVER["SERVER_ADDR"] ?: $this->get_ip_from_third_party() ?: gethostbyname(gethostname()); curl_setopt($ch, CURLOPT_HTTPHEADER, array("LB-API-KEY: " . $this->api_key, "LB-URL: " . $this_url, "LB-IP: " . $this_ip, "LB-LANG: " . $this->api_language)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); echo LB_TEXT_DOWNLOADING_SQL . "<br>"; if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 90;</script>"; } ob_flush(); $data = curl_exec($ch); $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($http_status != 200) { curl_close($ch); die(LB_TEXT_INVALID_RESPONSE); } curl_close($ch); $destination = $this->root_path . "/update_sql_" . $version . ".sql"; $file = fopen($destination, "w+"); if (!$file) { die(LB_TEXT_UPDATE_PATH_ERROR); } fputs($file, $data); fclose($file); echo LB_TEXT_SQL_UPDATE_DONE . "<br><br>"; if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 95;</script>"; } ob_flush(); if (is_array($db_for_import)) { if (!empty($db_for_import["db_host"]) && !empty($db_for_import["db_user"]) && !empty($db_for_import["db_name"])) { $db_host = strip_tags(trim($db_for_import["db_host"])); $db_user = strip_tags(trim($db_for_import["db_user"])); $db_pass = strip_tags(trim($db_for_import["db_pass"])); $db_name = strip_tags(trim($db_for_import["db_name"])); $con = @mysqli_connect($db_host, $db_user, $db_pass, $db_name); if (mysqli_connect_errno()) { echo LB_TEXT_UPDATE_WITH_SQL_IMPORT_FAILED; } else { $templine = ''; $lines = file($destination); foreach ($lines as $line) { if (substr($line, 0, 2) == "--" || $line == '') { continue; } $templine .= $line; $query = false; if (substr(trim($line), -1, 1) == ";") { $query = mysqli_query($con, $templine); $templine = ''; } } @chmod($destination, 511); if (is_writeable($destination)) { unlink($destination); } echo LB_TEXT_UPDATE_WITH_SQL_IMPORT_DONE; } } else { echo LB_TEXT_UPDATE_WITH_SQL_IMPORT_FAILED; } } else { echo LB_TEXT_UPDATE_WITH_SQL_DONE; } if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 100;</script>"; } ob_flush(); } else { if (LB_SHOW_UPDATE_PROGRESS) { echo "<script>document.getElementById('prog').value = 100;</script>"; } echo LB_TEXT_UPDATE_WITHOUT_SQL_DONE; ob_flush(); } ob_end_flush(); } private function progress($resource, $download_size, $downloaded, $upload_size, $uploaded) { static $prev = 0; if ($download_size == 0) { $progress = 0; } else { $progress = round($downloaded * 100 / $download_size); } if ($progress != $prev && $progress == 25) { $prev = $progress; echo "<script>document.getElementById('prog').value = 22.5;</script>"; ob_flush(); } if ($progress != $prev && $progress == 50) { $prev = $progress; echo "<script>document.getElementById('prog').value = 35;</script>"; ob_flush(); } if ($progress != $prev && $progress == 75) { $prev = $progress; echo "<script>document.getElementById('prog').value = 47.5;</script>"; ob_flush(); } if ($progress != $prev && $progress == 100) { $prev = $progress; echo "<script>document.getElementById('prog').value = 60;</script>"; ob_flush(); } } private function get_ip_from_third_party() { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://ipecho.net/plain"); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($curl, CURLOPT_TIMEOUT, 10); $response = curl_exec($curl); curl_close($curl); return $response; } private function get_remote_filesize($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_HEADER, TRUE); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_NOBODY, TRUE); $this_server_name = getenv("SERVER_NAME") ?: $_SERVER["SERVER_NAME"] ?: getenv("HTTP_HOST") ?: $_SERVER["HTTP_HOST"]; $this_http_or_https = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" or isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) and $_SERVER["HTTP_X_FORWARDED_PROTO"] === "https") ? "https://" : "http://"; $this_url = $this_http_or_https . $this_server_name . $_SERVER["REQUEST_URI"]; $this_ip = getenv("SERVER_ADDR") ?: $_SERVER["SERVER_ADDR"] ?: $this->get_ip_from_third_party() ?: gethostbyname(gethostname()); curl_setopt($curl, CURLOPT_HTTPHEADER, array("LB-API-KEY: " . $this->api_key, "LB-URL: " . $this_url, "LB-IP: " . $this_ip, "LB-LANG: " . $this->api_language)); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30); $result = curl_exec($curl); $filesize = curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD); if ($filesize) { switch ($filesize) { case $filesize < 1024: $size = $filesize . " B"; break; case $filesize < 1048576: $size = round($filesize / 1024, 2) . " KB"; break; case $filesize < 1073741824: $size = round($filesize / 1048576, 2) . " MB"; break; case $filesize < 1099511627776: $size = round($filesize / 1073741824, 2) . " GB"; break; } return $size; } } } ?>

Function Calls

None

Variables

None

Stats

MD5 609b2305f49737663570cad9a6a41397
Eval Count 0
Decode Time 61 ms