!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

E:\xampp\xampp\php\PEAR\Zend\Tool\Framework\Provider\   drwxrwxrwx
Free 4.95 GB of 239.26 GB (2.07%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Signature.php (11.51 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * 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 license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Tool
 * @subpackage Framework
 * @copyright  Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: Signature.php 18951 2009-11-12 16:26:19Z alexander $
 */

/**
 * @see Zend_Reflection_Class
 */
require_once 'Zend/Reflection/Class.php';

/**
 * @see Zend_Tool_Framework_Registry
 */
require_once 'Zend/Tool/Framework/Registry/EnabledInterface.php';

/**
 * @see Zend_Tool_Framework_Action_Base
 */
require_once 'Zend/Tool/Framework/Action/Base.php';

/**
 * The purpose of Zend_Tool_Framework_Provider_Signature is to derive
 * callable signatures from the provided provider.
 *
 * @category   Zend
 * @package    Zend_Tool
 * @copyright  Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Tool_Framework_Provider_Signature implements Zend_Tool_Framework_Registry_EnabledInterface
{

    
/**
     * @var Zend_Tool_Framework_Registry
     */
    
protected $_registry null;

    
/**
     * @var Zend_Tool_Framework_Provider_Interface
     */
    
protected $_provider null;

    
/**
     * @var string
     */
    
protected $_name null;

    
/**
     * @var array
     */
    
protected $_specialties = array();

    
/**
     * @var array
     */
    
protected $_actionableMethods = array();

    
/**
     * @var unknown_type
     */
    
protected $_actions = array();

    
/**
     * @var Zend_Reflection_Class
     */
    
protected $_providerReflection null;

    
/**
     * @var bool
     */
    
protected $_isProcessed false;

    
/**
     * Constructor
     *
     * @param Zend_Tool_Framework_Provider_Interface $provider
     */
    
public function __construct(Zend_Tool_Framework_Provider_Interface $provider)
    {
        
$this->_provider $provider;
        
$this->_providerReflection = new Zend_Reflection_Class($provider);
    }

    
/**
     * setRegistry()
     *
     * @param Zend_Tool_Framework_Registry_Interface $registry
     * @return Zend_Tool_Framework_Provider_Signature
     */
    
public function setRegistry(Zend_Tool_Framework_Registry_Interface $registry)
    {
        
$this->_registry $registry;
        return 
$this;
    }

    public function 
process()
    {
        if (
$this->_isProcessed) {
            return;
        }

        
$this->_process();
    }

    
/**
     * getName() of the provider
     *
     * @return unknown
     */
    
public function getName()
    {
        return 
$this->_name;
    }

    
/**
     * Get the provider for this signature
     *
     * @return Zend_Tool_Framework_Provider_Interface
     */
    
public function getProvider()
    {
        return 
$this->_provider;
    }

    
/**
     * getProviderReflection()
     *
     * @return Zend_Reflection_Class
     */
    
public function getProviderReflection()
    {
        return 
$this->_providerReflection;
    }

    
/**
     * getSpecialities()
     *
     * @return array
     */
    
public function getSpecialties()
    {
        return 
$this->_specialties;
    }

    
/**
     * getActions()
     *
     * @return array Array of Actions
     */
    
public function getActions()
    {
        return 
$this->_actions;
    }

    
/**
     * getActionableMethods()
     *
     * @return array
     */
    
public function getActionableMethods()
    {
        return 
$this->_actionableMethods;
    }

    
/**
     * getActionableMethod() - Get an actionable method by name, this will return an array of
     * useful information about what can be exectued on this provider
     *
     * @param string $methodName
     * @return array
     */
    
public function getActionableMethod($methodName)
    {
        if (isset(
$this->_actionableMethods[$methodName])) {
            return 
$this->_actionableMethods[$methodName];
        }

        return 
false;
    }

    
/**
     * getActionableMethodByActionName() - Get an actionable method by its action name, this
     * will return an array of useful information about what can be exectued on this provider
     *
     * @param string $actionName
     * @return array
     */
    
public function getActionableMethodByActionName($actionName)
    {
        foreach (
$this->_actionableMethods as $actionableMethod) {
            if (
$actionName == $actionableMethod['actionName']) {
                return 
$actionableMethod;
            }
        }

        return 
false;
    }

    
/**
     * _process() is called at construction time and is what will build the signature information
     * for determining what is actionable
     *
     */
    
protected function _process()
    {
        
$this->_isProcessed true;
        
$this->_processName();
        
$this->_processSpecialties();
        
$this->_processActionableMethods();
    }

    
/**
     * _processName();
     *
     */
    
protected function _processName()
    {
        if (
method_exists($this->_provider'getName')) {
            
$this->_name $this->_provider->getName();
        }

        if (
$this->_name == null) {
            
$className get_class($this->_provider);
            
$name substr($classNamestrrpos($className'_')+1);
            
$name preg_replace('#(Provider|Manifest)$#'''$name);
            
$this->_name $name;
        }
    }

    
/**
     * _processSpecialties() - Break out the specialty names for this provider
     *
     */
    
protected function _processSpecialties()
    {
        
$specialties = array();

        if (
$this->_providerReflection->hasMethod('getSpecialties')) {
            
$specialties $this->_provider->getSpecialties();
            if (!
is_array($specialties)) {
                require_once 
'Zend/Tool/Framework/Provider/Exception.php';
                throw new 
Zend_Tool_Framework_Provider_Exception(
                    
'Provider ' get_class($this->_provider) . ' must return an array for method getSpecialties().'
                    
);
            }
        } else {
            
$defaultProperties $this->_providerReflection->getDefaultProperties();
            
$specialties = (isset($defaultProperties['_specialties'])) ? $defaultProperties['_specialties'] : array();
            if (!
is_array($specialties)) {
                require_once 
'Zend/Tool/Framework/Provider/Exception.php';
                throw new 
Zend_Tool_Framework_Provider_Exception(
                    
'Provider ' get_class($this->_provider) . '\'s property $_specialties must be an array.'
                    
);
            }
        }

        
$this->_specialties array_merge(array('_Global'), $specialties);

    }

    
/**
     * _processActionableMethods() - process all methods that can be called on this provider.
     *
     */
    
protected function _processActionableMethods()
    {

        
$specialtyRegex '#(.*)(' implode('|'$this->_specialties) . ')$#i';


        
$methods $this->_providerReflection->getMethods();

        
$actionableMethods = array();
        foreach (
$methods as $method) {

            
$methodName $method->getName();

            
/**
             * the following will determine what methods are actually actionable
             * public, non-static, non-underscore prefixed, classes that dont
             * contain the name "
             */
            
if (!$method->getDeclaringClass()->isInstantiable()
                || !
$method->isPublic()
                || 
$methodName[0] == '_'
                
|| $method->isStatic()
                || 
in_array($methodName, array('getContextClasses''getName')) // other protected public methods will nee to go here
                
) {
                continue;
            }

            
/**
             * check to see if the method was a required method by a Zend_Tool_* interface
             */
            
foreach ($method->getDeclaringClass()->getInterfaces() as $methodDeclaringClassInterface) {
                if (
strpos($methodDeclaringClassInterface->getName(), 'Zend_Tool_') === 0
                    
&& $methodDeclaringClassInterface->hasMethod($methodName)) {
                    continue 
2;
                }
            }

            
$actionableName ucfirst($methodName);

            if (
substr($actionableName, -6) == 'Action') {
                
$actionableName substr($actionableName0, -6);
            }

            
$actionableMethods[$methodName]['methodName'] = $methodName;

            
$matches null;
            if (
preg_match($specialtyRegex$actionableName$matches)) {
                
$actionableMethods[$methodName]['actionName'] = $matches[1];
                
$actionableMethods[$methodName]['specialty'] = $matches[2];
            } else {
                
$actionableMethods[$methodName]['actionName'] = $actionableName;
                
$actionableMethods[$methodName]['specialty'] = '_Global';
            }

            
// get the action, and create non-existent actions when they dont exist (the true part below)
            
$action $this->_registry->getActionRepository()->getAction($actionableMethods[$methodName]['actionName']);
            if (
$action == null) {
                
$action = new Zend_Tool_Framework_Action_Base($actionableMethods[$methodName]['actionName']);
                
$this->_registry->getActionRepository()->addAction($action);
            }
            
$actionableMethods[$methodName]['action'] = $action;

            if (!
in_array($actionableMethods[$methodName]['action'], $this->_actions)) {
                
$this->_actions[] = $actionableMethods[$methodName]['action'];
            }

            
$parameterInfo = array();
            
$position 1;
            foreach (
$method->getParameters() as $parameter) {
                
$currentParam $parameter->getName();
                
$parameterInfo[$currentParam]['position']    = $position++;
                
$parameterInfo[$currentParam]['optional']    = $parameter->isOptional();
                
$parameterInfo[$currentParam]['default']     = ($parameter->isOptional()) ? $parameter->getDefaultValue() : null;
                
$parameterInfo[$currentParam]['name']        = $currentParam;
                
$parameterInfo[$currentParam]['type']        = 'string';
                
$parameterInfo[$currentParam]['description'] = null;
            }

            
$matches null;
            if ((
$docComment $method->getDocComment()) != '' &&
                (
preg_match_all('/@param\s+(\w+)+\s+(\$\S+)\s+(.*?)(?=(?:\*\s*@)|(?:\*\/))/s'$docComment$matches)))
            {
                for (
$i=0$i <= count($matches[0])-1$i++) {
                    
$currentParam ltrim($matches[2][$i], '$');

                    if (
$currentParam != '' && isset($parameterInfo[$currentParam])) {

                        
$parameterInfo[$currentParam]['type'] = $matches[1][$i];

                        
$descriptionSource $matches[3][$i];

                        if (
$descriptionSource != '') {
                            
$parameterInfo[$currentParam]['description'] = trim($descriptionSource);
                        }

                    }

                }

            }

            
$actionableMethods[$methodName]['parameterInfo'] = $parameterInfo;

        }

        
$this->_actionableMethods $actionableMethods;
    }

}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0312 ]--