62 lines · c
1// SPDX-License-Identifier: GPL-2.02/* Copyright (c) 2023 Hengqi Chen */3 4#include "vmlinux.h"5#include <bpf/bpf_helpers.h>6#include <bpf/bpf_tracing.h>7 8pid_t my_pid = 0;9 10int test1_result = 0;11int test2_result = 0;12int test3_result = 0;13int test4_result = 0;14 15SEC("uprobe/./liburandom_read.so:urandlib_api_sameoffset")16int BPF_UPROBE(test1)17{18 pid_t pid = bpf_get_current_pid_tgid() >> 32;19 20 if (pid != my_pid)21 return 0;22 23 test1_result = 1;24 return 0;25}26 27SEC("uprobe/./liburandom_read.so:urandlib_api_sameoffset@LIBURANDOM_READ_1.0.0")28int BPF_UPROBE(test2)29{30 pid_t pid = bpf_get_current_pid_tgid() >> 32;31 32 if (pid != my_pid)33 return 0;34 35 test2_result = 1;36 return 0;37}38 39SEC("uretprobe/./liburandom_read.so:urandlib_api_sameoffset@@LIBURANDOM_READ_2.0.0")40int BPF_URETPROBE(test3, int ret)41{42 pid_t pid = bpf_get_current_pid_tgid() >> 32;43 44 if (pid != my_pid)45 return 0;46 47 test3_result = ret;48 return 0;49}50 51SEC("uprobe")52int BPF_UPROBE(test4)53{54 pid_t pid = bpf_get_current_pid_tgid() >> 32;55 56 if (pid != my_pid)57 return 0;58 59 test4_result = 1;60 return 0;61}62