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

Software: Apache. PHP/8.3.27 

uname -a: Linux pdx1-shared-a4-04 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64 

uid=6659440(dh_z2jmpm) gid=2086089(pg10499364) groups=2086089(pg10499364)  

Safe-mode: OFF (not secure)

/usr/local/bin/dhwp/env/lib/python3.10/site-packages/cement/ext/   drwxr-xr-x
Free 710.54 GB of 879.6 GB (80.78%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     ext_scrub.py (2.07 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
"""
Cement scrub extension module.
"""

from __future__ import annotations
import re
from typing import TYPE_CHECKING
from .. import Controller
from ..utils.misc import minimal_logger

if TYPE_CHECKING:
    from ..core.foundation import App  # pragma: nocover

LOG = minimal_logger(__name__)


def scrub_output(app: App, text: str) -> str:
    if app.pargs.scrub:
        text = app.scrub(text)
    return text


def extend_scrub(app: App) -> None:
    def scrub(text: str) -> str:
        if not hasattr(app._meta, 'scrub') or app._meta.scrub is None:
            return text  # pragma: nocover
        elif isinstance(text, str):
            for regex, replace in app._meta.scrub:
                text = re.sub(regex, replace, text)
        else:
            LOG.debug(f'text is not str > {type(text)}')
        return text

    app.extend('scrub', scrub)


class ScrubController(Controller):
    """
    Add embedded options to the base controller to support scrubbing output.
    """

    class Meta(Controller.Meta):
        #: Controller label
        label = 'scrub'

        #: Parent controller to stack ontop of
        stacked_on = 'base'

        #: Stacking method
        stacked_type = 'embedded'

        #: Command line argument options
        argument_options = ['--scrub']

        #: Command line argument options help
        argument_help = 'obfuscate sensitive data from rendered output'

    _meta: Meta  # type: ignore

    def _pre_argument_parsing(self) -> None:
        if self._meta.argument_options is not None:
            assert isinstance(self._meta.argument_options, list), \
                "ScrubController.Meta.argument_options must be a list"
            self.app.args.add_argument(*self._meta.argument_options,
                                       help=self._meta.argument_help,
                                       action='store_true',
                                       dest='scrub')


def load(app: App) -> None:
    app.handler.register(ScrubController)
    app.hook.register('post_render', scrub_output)
    app.hook.register('pre_argument_parsing', extend_scrub)

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

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

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