⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.144
Server IP:
157.245.143.252
Server:
Linux www 6.11.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Oct 14 13:19:59 UTC 2024 x86_64
Server Software:
nginx/1.26.0
PHP Version:
8.3.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
sbin
/
View File Name :
syncsnoop-bpfcc
#! /usr/bin/python3 # @lint-avoid-python-3-compatibility-imports # # syncsnoop Trace sync() syscall. # For Linux, uses BCC, eBPF. Embedded C. # # Written as a basic example of BCC trace & reformat. See # examples/hello_world.py for a BCC trace with default output example. # # Copyright (c) 2015 Brendan Gregg. # Licensed under the Apache License, Version 2.0 (the "License") # # 13-Aug-2015 Brendan Gregg Created this. # 19-Feb-2016 Allan McAleavy migrated to BPF_PERF_OUTPUT from __future__ import print_function from bcc import BPF import sys # load BPF program b = BPF(text=""" struct data_t { u64 ts; }; BPF_PERF_OUTPUT(events); void syscall__sync(void *ctx) { struct data_t data = {}; data.ts = bpf_ktime_get_ns() / 1000; events.perf_submit(ctx, &data, sizeof(data)); }; """) b.attach_kprobe(event=b.get_syscall_fnname("sync"), fn_name="syscall__sync") # header print("%-18s %s" % ("TIME(s)", "CALL")) # process event def print_event(cpu, data, size): event = b["events"].event(data) print("%-18.9f sync()" % (float(event.ts) / 1000000)) sys.stdout.flush() # loop with callback to print_event b["events"].open_perf_buffer(print_event) while 1: try: b.perf_buffer_poll() except KeyboardInterrupt: exit()