!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: nginx/1.23.4. PHP/5.6.40-65+ubuntu20.04.1+deb.sury.org+1 

uname -a: Linux foro-restaurado-2 5.15.0-1040-oracle #46-Ubuntu SMP Fri Jul 14 21:47:21 UTC 2023
aarch64
 

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

Safe-mode: OFF (not secure)

/usr/src/linux-oracle-6.8-headers-6.8.0-1028/scripts/tracing/   drwxr-xr-x
Free 83.34 GB of 96.73 GB (86.16%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     draw_functrace.py (3.47 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/env python
# SPDX-License-Identifier: GPL-2.0-only

"""
Copyright 2008 (c) Frederic Weisbecker <[email protected]>

This script parses a trace provided by the function tracer in
kernel/trace/trace_functions.c
The resulted trace is processed into a tree to produce a more human
view of the call stack by drawing textual but hierarchical tree of
calls. Only the functions's names and the call time are provided.

Usage:
    Be sure that you have CONFIG_FUNCTION_TRACER
    # mount -t tracefs nodev /sys/kernel/tracing
    # echo function > /sys/kernel/tracing/current_tracer
    $ cat /sys/kernel/tracing/trace_pipe > ~/raw_trace_func
    Wait some times but not too much, the script is a bit slow.
    Break the pipe (Ctrl + Z)
    $ scripts/tracing/draw_functrace.py < ~/raw_trace_func > draw_functrace
    Then you have your drawn trace in draw_functrace
"""


import sys, re

class CallTree:
    """ This class provides a tree representation of the functions
        call stack. If a function has no parent in the kernel (interrupt,
        syscall, kernel thread...) then it is attached to a virtual parent
        called ROOT.
    """
    ROOT = None

    def __init__(self, func, time = None, parent = None):
        self._func = func
        self._time = time
        if parent is None:
            self._parent = CallTree.ROOT
        else:
            self._parent = parent
        self._children = []

    def calls(self, func, calltime):
        """ If a function calls another one, call this method to insert it
            into the tree at the appropriate place.
            @return: A reference to the newly created child node.
        """
        child = CallTree(func, calltime, self)
        self._children.append(child)
        return child

    def getParent(self, func):
        """ Retrieve the last parent of the current node that
            has the name given by func. If this function is not
            on a parent, then create it as new child of root
            @return: A reference to the parent.
        """
        tree = self
        while tree != CallTree.ROOT and tree._func != func:
            tree = tree._parent
        if tree == CallTree.ROOT:
            child = CallTree.ROOT.calls(func, None)
            return child
        return tree

    def __repr__(self):
        return self.__toString("", True)

    def __toString(self, branch, lastChild):
        if self._time is not None:
            s = "%s----%s (%s)\n" % (branch, self._func, self._time)
        else:
            s = "%s----%s\n" % (branch, self._func)

        i = 0
        if lastChild:
            branch = branch[:-1] + " "
        while i < len(self._children):
            if i != len(self._children) - 1:
                s += "%s" % self._children[i].__toString(branch +\
                                "    |", False)
            else:
                s += "%s" % self._children[i].__toString(branch +\
                                "    |", True)
            i += 1
        return s

class BrokenLineException(Exception):
    """If the last line is not complete because of the pipe breakage,
       we want to stop the processing and ignore this line.
    """
    pass

class CommentLineException(Exception):
    """ If the line is a comment (as in the beginning of the trace file),
        just ignore it.
    """
    pass


def parseLine(line):
    line = line.strip()
    if line.startswith("#"):
        raise CommentLineException
    m = re.match("[^]]+?\\] +([a-z.]+) +([0-9.]+): (\\w+) <-(\\w+)", line)
    if m is None:
        raise BrokenLineException
    return (m.group(2), m.group(3), m.group(4))


def main():
    CallTree.ROOT = CallTree("Root (Nowhere)", None, None)
    tree = CallTree.ROOT

    for line in sys.stdin:
        try:
            calltime, callee, caller = parseLine(line)
        except BrokenLineException:
            break
        except CommentLineException:
            continue
        tree = tree.getParent(caller)
        tree = tree.calls(callee, calltime)

    print(CallTree.ROOT)

if __name__ == "__main__":
    main()

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

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

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

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by HackingTool | HackingTool | Generation time: 0.0032 ]--