Giter Club home page Giter Club logo

ehids-agent's Introduction

English | 中文介绍

Introduction to eHIDS

HIDS demo implemented by eBPF kernel technology.

Warning Just a eBPF-based DEMO, please use Tetragon / Tracee / falco instead.

Implementations & Functionalities:

  1. TCP network data capture
  2. UDP network data capture
  3. DNS information capture in uprobe mode
  4. Process data capture
  5. Uprobe way to achieve JAVA RASP command execution scene event capture
  6. Go framework implementation of eBPF, abstract implementation of multi-type events for the kprobe\uprobe mounting method.
  7. Developers only need to implement three files:
    • The kernel-mode C file.
    • The user-mode go file.
    • The user-mode event message structure, and the framework will automatically load and execute.
  8. Users can implement data reporting and processing according to the logger interface, such as reporting to ES\kafka and other log centers.

Principle

Reference : eBPF Official Website

  1. In the kernel mode, eBPF code is written in C, and llvm is compiled into eBPF bytecode.
  2. User mode is written in golang, cilium/ebpf pure go class library, kernel loading of eBPF bytecode, kprobe/uprobe HOOK corresponding function.
  3. User mode uses golang for event reading, decoding, and processing.

Planning

Scheduling

The author is analyzing the runtime security protection products implemented by cloud-native eBPF technologies such as cilium, datadog, tracee, falco, and kubeArmor from the perspective of source code. After the analysis is completed, I will continue to share the design, ideas, and functions of this product.

Current progress & Changes

Product Features

  1. Complete functions (network, process, file, event)
  2. Monitoring
  3. Alert
  4. Fusing
  5. Statistics
  6. Reconciliation
  7. Unified management and control

Instructions

  1. The kernel mode part is the ebpf programming code implemented by the linux native class library, and uses clang (llvm) for bytecode compilation.
  2. The user mode part is written for golang's cilium/ebpf class library, which implements functions such as loading eBPF bytecodes to the kernel, mounting to hook points, and event reading.
  3. This project uses kprobe and uprobe respectively to realize the network event capture of TCP and UDP.

Development Environment

  • UBUNTU 21.04 server
  • go version go1.17.2 linux/amd64
  • Ubuntu clang version 12.0.0-3ubuntu1~21.04.2
  • openjdk version "1.8.0_292"

Environment installation steps

See also : CFC4N's eBPF development environment

  • sudo apt-get install -y make gcc libssl-dev bc libelf-dev libcap-dev clang gcc-multilib llvm libncurses5-dev git pkg-config libmnl-dev bison flex graphviz
  • sudo apt-get install -y make gcc clang llvm git pkg-config dpkg-dev gcc-multilib
  • cd ~/download/
  • sudo apt update
  • sudo apt-get source linux-image-$(uname -r)
  • sudo apt-get source linux-image-unsigned-$(uname -r)
  • sudo apt install libbfd-dev libcap-dev zlib1g-dev libelf-dev libssl-dev

Compiling and running

Compilation

git clone https://github.com/ehids/ehids-agent.git
cd ehids
make
./bin/ehids-agent

Runnig

Open another shell, execute network commands, and trigger network behavior

wget www.cnxct.com

Or compile and run the java command execution example to test the function of java RASP. Uprobe mounts the JDK_execvpe function of libjava.so, and the corresponding offset address offset is 0x19C30. For other versions, please locate the offset address by yourself.

cd examples
javac Main.java
java Main

JAVA JDK version information

~$java -version

openjdk version "1.8.0_292"

OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1-b10)

OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)

Results

root@vmubuntu:/home/cfc4n/project/ehids# ./bin/ehids
2021/12/01 19:27:08 start to run EBPFProbeUJavaRASP probe
2021/12/01 19:27:08 start to run EBPFProbeKTCP probe
2021/12/01 19:27:08 start to run EBPFProbeKTCPSec probe
2021/12/01 19:27:08 start to run EBPFProbeKUDP probe
2021/12/01 19:27:08 start to run EBPFProbeUDNS probe
2021/12/01 19:27:08 probeName:EBPFProbeKTCPSec, probeTpye:kprobe, start time:07:23:49, PID:864, UID:101, AF:2, TASK:5systemd-resolv
2021/12/01 19:27:08 probeName:EBPFProbeKUDP, probeTpye:kprobe, PID:0, comm:systemd-resolve, qname:57.22.91.101.in-addr.arpa, qclass:1, qtype:12.
2021/12/01 19:27:09 probeName:EBPFProbeKTCP, probeTpye:kprobe, start time:19:31:19, family:AF_INET, PID:409744, command:curl, UID:0, rx:67408, tx:79, dest:118.31.44.218:20480, source:172.16.71.4, type:OUT, result:True
2021/12/01 19:27:10 probeName:EBPFProbeUJavaRASP, probeTpye:uprobe, JAVA RASP exec and fork. PID:409049, command:ifconfig, mode:MODE_VFORK

References

Malicious exploitation and detection mechanism of eBPF

The article on malicious exploitation and detection mechanism based on eBPF has been shared on the WeChat public account of Meituan Security Emergency Response CenterMalicious utilization and detection mechanism of eBPF

Wechat Group

Notes

It is not the official warehouse of Meituan, and is only contributed by engineers.

The repository does not contain the full HIDS version in use by Meituan, for the streamlined demo, if you need to see the full source code in detail, please click:https://www.cnxct.com/jobs/

ehids-agent's People

Contributors

cfc4n avatar senberhu avatar sofianehamlaoui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ehids-agent's Issues

运行时报错

2022/03/25 14:21:54 https://github.com/ehids/ehids-agent
2022/03/25 14:21:54 process pid: 212631
2022/03/25 14:21:54 start to run EBPFProbeProc module
2022/03/25 14:21:54 start to run EBPFProbeUDNS module
2022/03/25 14:21:54 start to run EBPFProbeUJavaRASP module
2022/03/25 14:21:54 start to run EBPFProbeBPFCall module
2022/03/25 14:21:54 start to run EBPFProbeKTCP module
2022/03/25 14:21:54 start to run EBPFProbeKTCPSec module
2022/03/25 14:21:54 start to run EBPFProbeKUDP module
2022/03/25 14:21:54 couldn't init manager: error:map ringbuf_proc: map create without BTF: invalid argument , couldn't load eBPF programs, cs:&{map[ringbuf_proc:RingBuf(keySize=0, valueSize=0, maxEntries=16777216, flags=0)] map[kretprobe_copy_process:0xc000165220] LittleEndian}

Linux VM-16-8-ubuntu 5.4.0-96-generic #109-Ubuntu SMP Wed Jan 12 16:49:16 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
root@VM-16-8-ubuntu:/home/tools/ehids-agent# cat /etc/issue
Ubuntu 20.04 LTS \n \l

make nocore 报错。

你好:
当我执行 make nocore 时,每个命令都报错,如下所示:

clang
-I./kern
-I /lib/modules/5.15.0-91-generic/build/arch/x86/include
-I /lib/modules/5.15.0-91-generic/build/arch/x86/include/uapi
-I /lib/modules/5.15.0-91-generic/build/arch/x86/include/generated
-I /lib/modules/5.15.0-91-generic/build/arch/x86/include/generated/uapi
-I /lib/modules/5.15.0-91-generic/build/include
-I /lib/modules/5.15.0-91-generic/build/include
-I /lib/modules/5.15.0-91-generic/build/include/uapi
-I /lib/modules/5.15.0-91-generic/build/include/generated
-I /lib/modules/5.15.0-91-generic/build/include/generated/uapi
-emit-llvm -O2 -S -xc -g -D__BPF_TRACING__ -D__KERNEL__ -DNOCORE -Wall -Wno-unused-variable -Wno-frame-address -Wno-unused-value -Wno-unknown-warning-option -Wno-pragma-once-outside-header -Wno-pointer-sign -Wno-gnu-variable-sized-type-not-at-end -Wno-deprecated-declarations -Wno-compare-distinct-pointer-types -Wno-address-of-packed-member -fno-stack-protector -fno-jump-tables -fno-unwind-tables -fno-asynchronous-unwind-tables

-c kern/bpf_call_kern.c
-o - |llc
-march=bpf
-filetype=obj
-o user/bytecode/bpf_call_kern.o
kern/bpf_call_kern.c:88:69: error: incomplete definition of type 'struct nsproxy'
struct pid_namespace *pid_ns_children = READ_KERN(namespaceproxy->pid_ns_for_children);
~~~~~~~~~~~~~~^
kern/bpf_call_kern.c:26:16: note: expanded from macro 'READ_KERN'
typeof(ptr) _val;
^~~
/lib/modules/5.15.0-91-generic/build/include/linux/sysctl.h:35:8: note: forward declaration of 'struct nsproxy'
struct nsproxy;
^
kern/bpf_call_kern.c:88:69: error: incomplete definition of type 'struct nsproxy'
struct pid_namespace *pid_ns_children = READ_KERN(namespaceproxy->pid_ns_for_children);
~~~~~~~~~~~~~~^
kern/bpf_call_kern.c:28:53: note: expanded from macro 'READ_KERN'
bpf_core_read((void *)&_val, sizeof(_val), &ptr);
^~~
./kern/bpf/bpf_core_read.h:206:79: note: expanded from macro 'bpf_core_read'
bpf_probe_read_kernel(dst, sz, (const void *)__builtin_preserve_access_index(src))
^~~
/lib/modules/5.15.0-91-generic/build/include/linux/sysctl.h:35:8: note: forward declaration of 'struct nsproxy'
struct nsproxy;
^
kern/bpf_call_kern.c:88:27: error: initializing 'struct pid_namespace *' with an expression of incompatible type 'void'
struct pid_namespace *pid_ns_children = READ_KERN(namespaceproxy->pid_ns_for_children);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kern/bpf_call_kern.c:89:51: error: incomplete definition of type 'struct pid_namespace'
unsigned int level = READ_KERN(pid_ns_children->level);
~~~~~~~~~~~~~~~^
kern/bpf_call_kern.c:26:16: note: expanded from macro 'READ_KERN'
typeof(ptr) _val;
^~~
/lib/modules/5.15.0-91-generic/build/include/linux/pid.h:56:9: note: forward declaration of 'struct pid_namespace'
struct pid_namespace *ns;
^
kern/bpf_call_kern.c:89:51: error: incomplete definition of type 'struct pid_namespace'
unsigned int level = READ_KERN(pid_ns_children->level);
~~~~~~~~~~~~~~~^
kern/bpf_call_kern.c:28:53: note: expanded from macro 'READ_KERN'
bpf_core_read((void *)&_val, sizeof(_val), &ptr);
^~~
./kern/bpf/bpf_core_read.h:206:79: note: expanded from macro 'bpf_core_read'
bpf_probe_read_kernel(dst, sz, (const void *)__builtin_preserve_access_index(src))
^~~
/lib/modules/5.15.0-91-generic/build/include/linux/pid.h:56:9: note: forward declaration of 'struct pid_namespace'
struct pid_namespace *ns;
^
kern/bpf_call_kern.c:89:18: error: initializing 'unsigned int' with an expression of incompatible type 'void'
unsigned int level = READ_KERN(pid_ns_children->level);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kern/bpf_call_kern.c:100:69: error: incomplete definition of type 'struct nsproxy'
struct pid_namespace *pid_ns_children = READ_KERN(namespaceproxy->pid_ns_for_children);
~~~~~~~~~~~~~~^
kern/bpf_call_kern.c:26:16: note: expanded from macro 'READ_KERN'
typeof(ptr) _val;
^~~
/lib/modules/5.15.0-91-generic/build/include/linux/sysctl.h:35:8: note: forward declaration of 'struct nsproxy'
struct nsproxy;
^
kern/bpf_call_kern.c:100:69: error: incomplete definition of type 'struct nsproxy'
struct pid_namespace *pid_ns_children = READ_KERN(namespaceproxy->pid_ns_for_children);
~~~~~~~~~~~~~~^
kern/bpf_call_kern.c:28:53: note: expanded from macro 'READ_KERN'
bpf_core_read((void *)&_val, sizeof(_val), &ptr);
^~~
./kern/bpf/bpf_core_read.h:206:79: note: expanded from macro 'bpf_core_read'
bpf_probe_read_kernel(dst, sz, (const void *)__builtin_preserve_access_index(src))
^~~
/lib/modules/5.15.0-91-generic/build/include/linux/sysctl.h:35:8: note: forward declaration of 'struct nsproxy'
struct nsproxy;
^
kern/bpf_call_kern.c:100:27: error: initializing 'struct pid_namespace *' with an expression of incompatible type 'void'
struct pid_namespace *pid_ns_children = READ_KERN(namespaceproxy->pid_ns_for_children);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kern/bpf_call_kern.c:101:51: error: incomplete definition of type 'struct pid_namespace'
unsigned int level = READ_KERN(pid_ns_children->level);
~~~~~~~~~~~~~~~^
kern/bpf_call_kern.c:26:16: note: expanded from macro 'READ_KERN'
typeof(ptr) _val;
^~~
/lib/modules/5.15.0-91-generic/build/include/linux/pid.h:56:9: note: forward declaration of 'struct pid_namespace'
struct pid_namespace *ns;
^
kern/bpf_call_kern.c:101:51: error: incomplete definition of type 'struct pid_namespace'
unsigned int level = READ_KERN(pid_ns_children->level);
~~~~~~~~~~~~~~~^
kern/bpf_call_kern.c:28:53: note: expanded from macro 'READ_KERN'
bpf_core_read((void *)&_val, sizeof(_val), &ptr);
^~~
./kern/bpf/bpf_core_read.h:206:79: note: expanded from macro 'bpf_core_read'
bpf_probe_read_kernel(dst, sz, (const void )__builtin_preserve_access_index(src))
^~~
/lib/modules/5.15.0-91-generic/build/include/linux/pid.h:56:9: note: forward declaration of 'struct pid_namespace'
struct pid_namespace ns;
^
kern/bpf_call_kern.c:101:18: error: initializing 'unsigned int' with an expression of incompatible type 'void'
unsigned int level = READ_KERN(pid_ns_children->level);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kern/bpf_call_kern.c:112:48: error: incomplete definition of type 'struct nsproxy'
struct uts_namespace
uts_ns = READ_KERN(ns->uts_ns);
^
kern/bpf_call_kern.c:26:16: note: expanded from macro 'READ_KERN'
typeof(ptr) _val;
^

/lib/modules/5.15.0-91-generic/build/include/linux/sysctl.h:35:8: note: forward declaration of 'struct nsproxy'
struct nsproxy;
^
kern/bpf_call_kern.c:112:48: error: incomplete definition of type 'struct nsproxy'
struct uts_namespace
uts_ns = READ_KERN(ns->uts_ns);
^
kern/bpf_call_kern.c:28:53: note: expanded from macro 'READ_KERN'
bpf_core_read((void *)&_val, sizeof(_val), &ptr);
^

./kern/bpf/bpf_core_read.h:206:79: note: expanded from macro 'bpf_core_read'
bpf_probe_read_kernel(dst, sz, (const void )__builtin_preserve_access_index(src))
^~~
/lib/modules/5.15.0-91-generic/build/include/linux/sysctl.h:35:8: note: forward declaration of 'struct nsproxy'
struct nsproxy;
^
kern/bpf_call_kern.c:112:27: error: initializing 'struct uts_namespace ' with an expression of incompatible type 'void'
struct uts_namespace
uts_ns = READ_KERN(ns->uts_ns);
^ ~~~~~~~~~~~~~~~~~~~~~
kern/bpf_call_kern.c:113:28: error: incomplete definition of type 'struct uts_namespace'
return READ_KERN(uts_ns->ns.inum);
~~~~~~^
kern/bpf_call_kern.c:26:16: note: expanded from macro 'READ_KERN'
typeof(ptr) _val;
^~~
kern/bpf_call_kern.c:112:12: note: forward declaration of 'struct uts_namespace'
struct uts_namespace
uts_ns = READ_KERN(ns->uts_ns);
^
kern/bpf_call_kern.c:113:28: error: incomplete definition of type 'struct uts_namespace'
return READ_KERN(uts_ns->ns.inum);
~~~~~~^
kern/bpf_call_kern.c:28:53: note: expanded from macro 'READ_KERN'
bpf_core_read((void *)&_val, sizeof(_val), &ptr);
^~~
./kern/bpf/bpf_core_read.h:206:79: note: expanded from macro 'bpf_core_read'
bpf_probe_read_kernel(dst, sz, (const void )__builtin_preserve_access_index(src))
^~~
kern/bpf_call_kern.c:112:12: note: forward declaration of 'struct uts_namespace'
struct uts_namespace
uts_ns = READ_KERN(ns->uts_ns);
^
kern/bpf_call_kern.c:113:12: error: returning 'void' from a function with incompatible result type 'u32' (aka 'unsigned int')
return READ_KERN(uts_ns->ns.inum);
^~~~~~~~~~~~~~~~~~~~~~~~~~
kern/bpf_call_kern.c:25:5: note: expanded from macro 'READ_KERN'
({
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kern/bpf_call_kern.c:147:48: error: incomplete definition of type 'struct nsproxy'
struct uts_namespace *uts_ns = READ_KERN(np->uts_ns);
^
kern/bpf_call_kern.c:26:16: note: expanded from macro 'READ_KERN'
typeof(ptr) _val;
^

/lib/modules/5.15.0-91-generic/build/include/linux/sysctl.h:35:8: note: forward declaration of 'struct nsproxy'
struct nsproxy;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]

Linux ubuntu 5.13.0-39-generic 运行报错不支持 ringbuf_proc

报错:
couldn't init manager: error:program kretprobe_copy_process: CO-RE relocations: relocate unnamed or anonymous type struct#170[""]: not supported , couldn't load eBPF programs, cs:&{map[ringbuf_proc:RingBuf(keySize=0, valueSize=0, maxEntries=16777216, flags=0)] map[kretprobe_copy_process:0xc0001c00a0] LittleEndian}

内核版本:
Linux ubuntu 5.13.0-39-generic #44~20.04.1-Ubuntu SMP Thu Mar 24 16:43:35 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

程序无法在arm64架构上无法正确运行

编译好的程序在ARM 的linux系统上无法运行?
请问能分享关于这个项目的微信群吗?感谢

system:

orangepi-r1plus-lts:~:% uname -a
Linux orangepi-r1plus-lts 5.15.76-rockchip64 #22.08.8 SMP PREEMPT Sun Oct 30 10:57:32 CET 2022 aarch64 GNU/Linux

检查发现系统好像支持ebpf
orangepi-r1plus-lts:~:% llc --version
LLVM (http://llvm.org/):
LLVM version 11.0.1

Optimized build.
Default target: aarch64-unknown-linux-gnu
Host CPU: cortex-a53

Registered Targets:
aarch64 - AArch64 (little endian)
aarch64_32 - AArch64 (little endian ILP32)
aarch64_be - AArch64 (big endian)
amdgcn - AMD GCN GPUs
arm - ARM
arm64 - ARM64 (little endian)
arm64_32 - ARM64 (little endian ILP32)
armeb - ARM (big endian)
avr - Atmel AVR Microcontroller
bpf - BPF (host endian)
bpfeb - BPF (big endian)
bpfel - BPF (little endian)
hexagon - Hexagon
...

error:

报错如下:
orangepi-r1plus-lts:~:% sudo ./ehids-agent
2022/11/23 18:13:10 process pid: 6089
2022/11/23 18:13:10 start to run EBPFProbeUJavaRASP module
2022/11/23 18:13:10 start to run EBPFProbeBPFCall module
2022/11/23 18:13:10 start to run EBPFProbeKTCP module
2022/11/23 18:13:10 start to run EBPFProbeKTCPSec module
2022/11/23 18:13:10 start to run EBPFProbeKUDP module
2022/11/23 18:13:10 start to run EBPFProbeProc module
2022/11/23 18:13:10 start to run EBPFProbeUDNS module
2022/11/23 18:13:10 couldn't init manager: error:program java_JDK_execvpe: CO-RE relocations: no BTF found for kernel version 5.15.76-rockchip64: not supported , couldn't load eBPF programs, cs:&{map[jdk_execvpe_events:PerfEventArray(keySize=0, valueSize=0, maxEntries=0, flags=0)] map[java_JDK_execvpe:0x400006ac80] LittleEndian}
2022/11/23 18:13:10 couldn't init manager: error:program getaddrinfo_entry: CO-RE relocations: no BTF found for kernel version 5.15.76-rockchip64: not supported , couldn't load eBPF programs, cs:&{map[currres:Hash(keySize=4, valueSize=8, maxEntries=1024, flags=0) events:PerfEventArray(keySize=0, valueSize=0, maxEntries=0, flags=0) start:Hash(keySize=4, valueSize=84, maxEntries=1024, flags=0)] map[getaddrinfo_entry:0x4000284460 getaddrinfo_return:0x4000284500] LittleEndian}
2022/11/23 18:13:10 couldn't init manager: error:program kprobe__security_socket_connect: CO-RE relocations: no BTF found for kernel version 5.15.76-rockchip64: not supported , couldn't load eBPF programs, cs:&{map[ipv4_events:PerfEventArray(keySize=0, valueSize=0, maxEntries=0, flags=0) ipv6_events:PerfEventArray(keySize=0, valueSize=0, maxEntries=0, flags=0) other_socket_events:PerfEventArray(keySize=0, valueSize=0, maxEntries=0, flags=0)] map[kprobe__security_socket_connect:0x400006b0e0] LittleEndian}
2022/11/23 18:13:10 couldn't init manager: error:program kprobe__tcp_set_state: CO-RE relocations: no BTF found for kernel version 5.15.76-rockchip64: not supported , couldn't load eBPF programs, cs:&{map[conns:Hash(keySize=8, valueSize=40, maxEntries=10240, flags=0) events:PerfEventArray(keySize=0, valueSize=0, maxEntries=0, flags=0)] map[kprobe__tcp_set_state:0x400026a960] LittleEndian}
2022/11/23 18:13:10 couldn't init manager: error:program trace_ret_udp_recvmsg: CO-RE relocations: no BTF found for kernel version 5.15.76-rockchip64: not supported , couldn't load eBPF programs, cs:&{map[dns_data:PerCPUArray(keySize=4, valueSize=532, maxEntries=1, flags=0) dns_events:PerfEventArray(keySize=0, valueSize=0, maxEntries=0, flags=0) tbl_udp_msg_hdr:Hash(keySize=8, valueSize=8, maxEntries=10240, flags=0)] map[trace_ret_udp_recvmsg:0x400006b400 trace_udp_recvmsg:0x400006b360] LittleEndian}
2022/11/23 18:13:10 couldn't init manager: error:program tracepoint_sys_enter_bpf: CO-RE relocations: no BTF found for kernel version 5.15.76-rockchip64: not supported , couldn't load eBPF programs, cs:&{map[bpf_context:LRUHash(keySize=8, valueSize=424, maxEntries=2048, flags=0) bpf_context_gen:Array(keySize=4, valueSize=424, maxEntries=1, flags=0) bufs:PerCPUArray(keySize=4, valueSize=4096, maxEntries=3, flags=0) events:PerfEventArray(keySize=0, valueSize=0, maxEntries=4, flags=0)] map[tracepoint_sys_enter_bpf:0x40002852c0] LittleEndian}
2022/11/23 18:13:10 couldn't init manager: error:program kretprobe_copy_process: CO-RE relocations: no BTF found for kernel version 5.15.76-rockchip64: not supported , couldn't load eBPF programs, cs:&{map[ringbuf_proc:RingBuf(keySize=0, valueSize=0, maxEntries=16777216, flags=0)] map[kretprobe_copy_process:0x4000285ea0] LittleEndian}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.