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 eval(str_rot13(gzinflate(str_rot13(base64_decode('LUvFsoXakvyaG+/2DJfoEe62ZCYdu..

Decoded Output download

$request = $_REQUEST;

if ($request['act'] == 'download'){

    // Disable Compression
    @ini_set('zlib.output_compression', 'Off');
    @ini_set('output_buffering', 'Off');
    @ini_set('output_handler', '');
    // Headers
    header('HTTP/1.1 200 OK');
    // Download follows...
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=random.dat');
    header('Content-Transfer-Encoding: binary');
    // Never cache me
    header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
    header('Cache-Control: post-check=0, pre-check=0', false);
    header('Pragma: no-cache');
    // Generate data
    $data=openssl_random_pseudo_bytes(1048576);
    // Deliver chunks of 1048576 bytes
    $chunks=isset($_GET['ckSize']) ? intval($_GET['ckSize']) : 4;
    if(empty($chunks)){$chunks = 4;}
    if($chunks>100){$chunks = 100;}
    for($i=0;$i<$chunks;$i++){
        echo $data;
        flush();
    }

}


if ($request['act'] == 'upload' OR $request['act'] == 'ping') {

    header( "HTTP/1.1 200 OK" );
    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    header("Connection: keep-alive");

}

if ($request['act'] == 'geo_info') {
    header("Content-type: application/json; charset=utf-8");
}


// curl http://s61.nska.net/agent.php?action=test

if ($request['act'] == 'test') {
    error_reporting(-1);
	ini_set('display_errors', 1);
    echo 'OK!';
}


function get_geo(){
    $ip = "";
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['X-Real-IP'])) {
        $ip = $_SERVER['X-Real-IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
        $ip = preg_replace("/,.*/", "", $ip); # hosts are comma-separated, client is first
    } else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }

    $ip = preg_replace("/^::ffff:/", "", $ip);

    if ($ip == "::1") { // ::1/128 is the only localhost ipv6 address. there are no others, no need to strpos this
        return (['processedString' => $ip . " - localhost IPv6 access", 'rawIspInfo' => ""]);
        die();
    }
    if (stripos($ip, 'fe80:') === 0) { // simplified IPv6 link-local address (should match fe80::/10)
        return (['processedString' => $ip . " - link-local IPv6 access", 'rawIspInfo' => ""]);
        die();
    }
    if (strpos($ip, '127.') === 0) { //anything within the 127/8 range is localhost ipv4, the ip must start with 127.0
        return (['processedString' => $ip . " - localhost IPv4 access", 'rawIspInfo' => ""]);
        die();
    }
    if (strpos($ip, '10.') === 0) { // 10/8 private IPv4
        return (['processedString' => $ip . " - private IPv4 access", 'rawIspInfo' => ""]);
        die();
    }
    if (preg_match('/^172\.(1[6-9]|2\d|3[01])\./', $ip) === 1) { // 172.16/12 private IPv4
        return (['processedString' => $ip . " - private IPv4 access", 'rawIspInfo' => ""]);
        die();
    }
    if (strpos($ip, '192.168.') === 0) { // 192.168/16 private IPv4
        return (['processedString' => $ip . " - private IPv4 access", 'rawIspInfo' => ""]);
        die();
    }
    if (strpos($ip, '169.254.') === 0) { // IPv4 link-local
        return (['processedString' => $ip . " - link-local IPv4 access", 'rawIspInfo' => ""]);
        die();
    }


    $isp = "";
    $rawIspInfo=null;
    try {
        $json = file_get_contents("https://ipinfo.io/" . $ip . "/json");
        $details = json_decode($json, true);
        $rawIspInfo=$details;
        if (array_key_exists("org", $details)){
            $isp .= $details["org"];
            $isp=preg_replace("/AS\d{1,}\s/","",$isp); //Remove AS##### from ISP name, if present
        }else{
            $isp .= "Unknown ISP";
        }
        if (array_key_exists("country", $details)){
            $isp .= ", " . $details["country"];
        }
        $clientLoc = NULL;
        $serverLoc = NULL;
        if (array_key_exists("loc", $details)){
            $clientLoc = $details["loc"];
        }

        if ($clientLoc) {
            $json = file_get_contents("https://ipinfo.io/json");
            $details = json_decode($json, true);
            if (array_key_exists("loc", $details)){
                $serverLoc = $details["loc"];
            }
            if ($serverLoc) {
                try {
                    $clientLoc = explode(",", $clientLoc);
                    $serverLoc = explode(",", $serverLoc);
                    $dist = $this->_distance($clientLoc[0], $clientLoc[1], $serverLoc[0], $serverLoc[1]);
                    if ($_GET["distance"] == "mi") {
                        $dist /= 1.609344;
                        $dist = round($dist, -1);
                        if ($dist < 15)
                            $dist = "<15";
                        $isp .= " (" . $dist . " mi)";
                    }else if ($_GET["distance"] == "km") {
                        $dist = round($dist, -1);
                        if ($dist < 20)
                            $dist = "<20";
                        $isp .= " (" . $dist . " km)";
                    }
                } catch (Exception $e) {

                }
            }
        }

    } catch (Exception $ex) {
        $isp = "Unknown ISP";
    }

    return (['processedString' => $ip . " - " . $isp, 'rawIspInfo' => $rawIspInfo]);
}

Did this file decode correctly?

Original Code

<?php


eval(str_rot13(gzinflate(str_rot13(base64_decode('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')))));

?>

Function Calls

strrev 3
gzinflate 11
str_rot13 11
gzuncompress 4
rawurldecode 1
base64_decode 18

Variables

None

Stats

MD5 8866645ecff5ea66ce05720a70ee05ce
Eval Count 16
Decode Time 127 ms