!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)

C:\Intranet\C\xampp\php\PEAR\CodeGen\Tools\   drwxrwxrwx
Free 4.09 GB of 39.52 GB (10.36%)
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:     Tokenizer.php (5.34 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * A simple tokenizer for e.g. proto parsing
 *
 * PHP versions 5
 *
 * LICENSE: This source file is subject to version 3.0 of the PHP license
 * that is available through the world-wide-web at the following URI:
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
 * the PHP License and are unable to obtain it through the web, please
 * send a note to license@php.net so we can mail you a copy immediately.
 *
 * @category   Tools and Utilities
 * @package    CodeGen
 * @author     Hartmut Holzgraefe <hartmut@php.net>
 * @copyright  2005 Hartmut Holzgraefe
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version    CVS: $Id: Tokenizer.php,v 1.1 2005/07/23 16:28:00 hholzgra Exp $
 * @link       http://pear.php.net/package/CodeGen
 */

/**
 * A simple tokenizer for e.g. proto parsing
 *
 * @category   Tools and Utilities
 * @package    CodeGen
 * @author     Hartmut Holzgraefe <hartmut@php.net>
 * @copyright  2005 Hartmut Holzgraefe
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version    Release: @package_version@
 * @link       http://pear.php.net/package/CodeGen
 */
class CodeGen_Tools_Tokenizer
{
    
/**
     * String to parse
     *
     * @var string
     */
    
protected $string;

    
/** 
     * Current parsing position
     *
     * @var int
     */
    
protected $pos;

    
/** 
     * Current token content 
     *
     * @var string
     */
    
public $token;

    
/** 
     * Current token type (name, numeric, string)
     *
     * @var string
     */
    
public $type;

    
/**
     * Parsing complete?
     *
     * @var bool
     */
    
public $done false;

    
/** 
     * pushback stack for parsed tokens
     *
     * @var array
     */
    
private $tokenStack = array();

    
/**
     * Konstruktor
     *
     * @param   string  String to parse
     */
    
public function __construct($string) {
        
$this->string $string;

        
$this->pos 0;
    }


    
/**
     * get next character to parse
     *
     * @return  string
     */
    
private function pullChar() {
        if (
$this->pos >= strlen($this->string)) {
            
$this->done true;
            return 
"";
        }

        return (
$this->string{$this->pos++});
    }

    
/**
     * Push back read character(s)
     *
     * @param  string  characters to pusch back
     */
    
private function pushChar($char) {
        
// we just rely on the user not cheating
        
$this->pos -= strlen($char);
    }
    
    
/**
     * Read next token into $this->type, $this->token
     *
     * @return  bool  success?
     */
    
public function nextToken() {
        if (!empty(
$this->tokenStack)) {
            list(
$this->type$this->token) = array_pop($this->tokenStack);
            return 
true;
        }

        do {
            
$char $this->pullChar();
            if (
$char === "") return false;
        } while (
ctype_space($char));

        if (
ctype_alnum($char) || $char === "_" || $char === "-") {
            
$this->type "name";
            
$this->token $char;
            while (
true) {
                
$char $this->pullChar();
                if (
ctype_alnum($char) || $char === "_") {
                    
$this->token .= $char;
                } else if (
$this->token === "array" && $char === "(") {
                    
$this->token .= $char;
                } else if (
$this->token === "array(" && $char === ")") {
                    
$this->token .= $char;
                } else {
                    
$this->pushChar($char);
                    break;
                }
            } 
            if (
is_numeric($this->token)) {
                
$this->type 'numeric';
            }
        } else if (
$char == '"' || $char == "'") {
            
$this->type "string";
            
$this->token "";
            
$quote $char;
            
$escape false;
            while (
true) {
                
$char $this->pullChar();

                if (
$char === "") {
                    
$this->type false;
                    return 
false;
                }

                if (
$escape) {
                    
$escape false;
                    
$this->token .= $char;
                    continue;
                }

                if (
$char === $quote) {
                    break;
                }
                
                if (
$char === "\\") {
                    
$escape true;
                    continue;
                }

                
$this->token .= $char;
            }
        } else if (
$char === ".") {
            
$ellipse false;
            
$char2 $this->pullChar();
            if (
$char2 === ".") {
                
$char3 $this->pullChar();
                if (
$char3 === ".") {
                    
$ellipse true;
                } else { 
                    
$this->pushChar($char3);
                }
            } else {
                
$this->pushChar($char2);
            }
            
            if (
$ellipse) {
                
$this->token "...";
                
$this->type  "name";
            } else {
                
$this->token ".";
                
$this->type  "name";
            }
        } else {
            
$this->token $char;
            
$this->type  "char";
        }

        return 
true;
    }

    
/**
     * Push back a parsed token
     *
     */
    
public function pushToken() {
        
array_push($this->tokenStack, array($this->type$this->token));
    }
     
}

:: 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 ]--