diff --git a/chapter2/hello-buffer.py b/chapter2/hello-buffer.py index 0f7a3d1..72a3772 100755 --- a/chapter2/hello-buffer.py +++ b/chapter2/hello-buffer.py @@ -18,8 +18,8 @@ data.pid = bpf_get_current_pid_tgid() >> 32; data.uid = bpf_get_current_uid_gid() & 0xFFFFFFFF; - bpf_get_current_comm(&data.command, sizeof(data.command)); - bpf_probe_read_kernel(&data.message, sizeof(data.message), message); + bpf_get_current_comm(data.command, sizeof(data.command)); + bpf_probe_read_kernel(data.message, sizeof(data.message), message); output.perf_submit(ctx, &data, sizeof(data)); diff --git a/chapter2/hello-file-ring-buffer.py b/chapter2/hello-file-ring-buffer.py index 4642b8f..810c5c9 100755 --- a/chapter2/hello-file-ring-buffer.py +++ b/chapter2/hello-file-ring-buffer.py @@ -15,8 +15,8 @@ struct event_t event = {}; event.dfd = args->dfd; - bpf_probe_read_user_str(&event.filename, sizeof(event.filename), args->filename); - bpf_get_current_comm(&event.command, sizeof(event.command)); + bpf_probe_read_user_str(event.filename, sizeof(event.filename), args->filename); + bpf_get_current_comm(event.command, sizeof(event.command)); bpf_trace_printk("File %d - %s", event.dfd, event.filename); bpf_trace_printk(" opened by:%s", event.command); diff --git a/chapter4/hello-buffer-config.py b/chapter4/hello-buffer-config.py index 785fafa..c6cc095 100755 --- a/chapter4/hello-buffer-config.py +++ b/chapter4/hello-buffer-config.py @@ -27,13 +27,13 @@ data.pid = bpf_get_current_pid_tgid() >> 32; data.uid = bpf_get_current_uid_gid() & 0xFFFFFFFF; - bpf_get_current_comm(&data.command, sizeof(data.command)); + bpf_get_current_comm(data.command, sizeof(data.command)); p = config.lookup(&data.uid); if (p != 0) { - bpf_probe_read_kernel(&data.message, sizeof(data.message), p->message); + bpf_probe_read_kernel(data.message, sizeof(data.message), p->message); } else { - bpf_probe_read_kernel(&data.message, sizeof(data.message), message); + bpf_probe_read_kernel(data.message, sizeof(data.message), message); } output.perf_submit(ctx, &data, sizeof(data)); diff --git a/chapter4/hello-ring-buffer-config.py b/chapter4/hello-ring-buffer-config.py index 869837f..3f48c00 100755 --- a/chapter4/hello-ring-buffer-config.py +++ b/chapter4/hello-ring-buffer-config.py @@ -27,13 +27,13 @@ data.pid = bpf_get_current_pid_tgid() >> 32; data.uid = bpf_get_current_uid_gid() & 0xFFFFFFFF; - bpf_get_current_comm(&data.command, sizeof(data.command)); + bpf_get_current_comm(data.command, sizeof(data.command)); p = config.lookup(&data.uid); if (p != 0) { - bpf_probe_read_kernel(&data.message, sizeof(data.message), p->message); + bpf_probe_read_kernel(data.message, sizeof(data.message), p->message); } else { - bpf_probe_read_kernel(&data.message, sizeof(data.message), message); + bpf_probe_read_kernel(data.message, sizeof(data.message), message); } output.ringbuf_output(&data, sizeof(data), 0); diff --git a/chapter5/find-map.c b/chapter5/find-map.c index 08c1551..45f4f3d 100644 --- a/chapter5/find-map.c +++ b/chapter5/find-map.c @@ -14,6 +14,6 @@ int main() printf("No FD\n"); } else { bpf_obj_get_info_by_fd(findme, &info, &len); - printf("name %s\n", info.name); + printf("Name: %s\n", info.name); } } \ No newline at end of file diff --git a/chapter5/hello-buffer-config b/chapter5/hello-buffer-config deleted file mode 100755 index 651d11d..0000000 Binary files a/chapter5/hello-buffer-config and /dev/null differ diff --git a/chapter5/hello-buffer-config.bpf.c b/chapter5/hello-buffer-config.bpf.c index b364410..fb23eac 100644 --- a/chapter5/hello-buffer-config.bpf.c +++ b/chapter5/hello-buffer-config.bpf.c @@ -32,14 +32,14 @@ int BPF_KPROBE_SYSCALL(hello, const char *pathname) data.pid = bpf_get_current_pid_tgid() >> 32; data.uid = bpf_get_current_uid_gid() & 0xFFFFFFFF; - bpf_get_current_comm(&data.command, sizeof(data.command)); - bpf_probe_read_user_str(&data.path, sizeof(data.path), pathname); + bpf_get_current_comm(data.command, sizeof(data.command)); + bpf_probe_read_user_str(data.path, sizeof(data.path), pathname); p = bpf_map_lookup_elem(&my_config, &data.uid); if (p != 0) { - bpf_probe_read_kernel_str(&data.message, sizeof(data.message), p->message); + bpf_probe_read_kernel_str(data.message, sizeof(data.message), p->message); } else { - bpf_probe_read_kernel_str(&data.message, sizeof(data.message), message); + bpf_probe_read_kernel_str(data.message, sizeof(data.message), message); } bpf_perf_event_output(ctx, &output, BPF_F_CURRENT_CPU, &data, sizeof(data)); diff --git a/chapter6/hello-verifier.bpf.c b/chapter6/hello-verifier.bpf.c index e2bf235..b3c31a4 100644 --- a/chapter6/hello-verifier.bpf.c +++ b/chapter6/hello-verifier.bpf.c @@ -45,9 +45,9 @@ int kprobe_exec(void *ctx) } if (p != 0) { - bpf_probe_read_kernel(&data.message, sizeof(data.message), p->message); + bpf_probe_read_kernel_str(data.message, sizeof(data.message), p->message); } else { - bpf_probe_read_kernel(&data.message, sizeof(data.message), message); + bpf_probe_read_kernel_str(data.message, sizeof(data.message), message); } // Changing this to <= means and c could have value beyond the bounds of the @@ -66,7 +66,7 @@ int kprobe_exec(void *ctx) bpf_printk("%c", a); } - bpf_get_current_comm(&data.command, sizeof(data.command)); + bpf_get_current_comm(data.command, sizeof(data.command)); bpf_perf_event_output(ctx, &output, BPF_F_CURRENT_CPU, &data, sizeof(data)); return 0; diff --git a/chapter7/hello.bpf.c b/chapter7/hello.bpf.c index f2e4a5d..03d675d 100644 --- a/chapter7/hello.bpf.c +++ b/chapter7/hello.bpf.c @@ -28,13 +28,13 @@ int BPF_KPROBE_SYSCALL(kprobe_sys_execve, const char *pathname) { struct data_t data = {}; - bpf_probe_read_kernel(&data.message, sizeof(data.message), kprobe_sys_msg); + bpf_probe_read_kernel(data.message, sizeof(data.message), kprobe_sys_msg); bpf_printk("%s: pathname: %s", kprobe_sys_msg, pathname); data.pid = bpf_get_current_pid_tgid() >> 32; data.uid = bpf_get_current_uid_gid() & 0xFFFFFFFF; - bpf_get_current_comm(&data.command, sizeof(data.command)); - bpf_probe_read_user(&data.path, sizeof(data.path), pathname); + bpf_get_current_comm(data.command, sizeof(data.command)); + bpf_probe_read_user_str(data.path, sizeof(data.path), pathname); bpf_perf_event_output(ctx, &output, BPF_F_CURRENT_CPU, &data, sizeof(data)); return 0; @@ -46,14 +46,14 @@ SEC("kprobe/do_execve") int BPF_KPROBE(kprobe_do_execve, struct filename *filename) { struct data_t data = {}; - bpf_probe_read_kernel(&data.message, sizeof(data.message), kprobe_msg); + bpf_probe_read_kernel(data.message, sizeof(data.message), kprobe_msg); data.pid = bpf_get_current_pid_tgid() >> 32; data.uid = bpf_get_current_uid_gid() & 0xFFFFFFFF; - bpf_get_current_comm(&data.command, sizeof(data.command)); + bpf_get_current_comm(data.command, sizeof(data.command)); const char *name = BPF_CORE_READ(filename, name); - bpf_probe_read_kernel(&data.path, sizeof(data.path), name); + bpf_probe_read_kernel_str(data.path, sizeof(data.path), name); bpf_printk("%s: filename->name: %s", kprobe_msg, name); @@ -69,14 +69,14 @@ SEC("fentry/do_execve") int BPF_PROG(fentry_execve, struct filename *filename) { struct data_t data = {}; - bpf_probe_read_kernel(&data.message, sizeof(data.message), fentry_msg); + bpf_probe_read_kernel(data.message, sizeof(data.message), fentry_msg); data.pid = bpf_get_current_pid_tgid() >> 32; data.uid = bpf_get_current_uid_gid() & 0xFFFFFFFF; - bpf_get_current_comm(&data.command, sizeof(data.command)); + bpf_get_current_comm(data.command, sizeof(data.command)); const char *name = BPF_CORE_READ(filename, name); - bpf_probe_read_kernel(&data.path, sizeof(data.path), name); + bpf_probe_read_kernel_str(data.path, sizeof(data.path), name); bpf_printk("%s: filename->name: %s", fentry_msg, name); @@ -113,14 +113,14 @@ SEC("tp/syscalls/sys_enter_execve") int tp_sys_enter_execve(struct my_syscalls_enter_execve *ctx) { struct data_t data = {}; - bpf_probe_read_kernel(&data.message, sizeof(data.message), tp_msg); + bpf_probe_read_kernel(data.message, sizeof(data.message), tp_msg); bpf_printk("%s: ctx->filename_ptr: %s", tp_msg, ctx->filename_ptr); data.pid = bpf_get_current_pid_tgid() >> 32; data.uid = bpf_get_current_uid_gid() & 0xFFFFFFFF; - bpf_get_current_comm(&data.command, sizeof(data.command)); - bpf_probe_read_user(&data.path, sizeof(data.path), ctx->filename_ptr); + bpf_get_current_comm(data.command, sizeof(data.command)); + bpf_probe_read_user_str(data.path, sizeof(data.path), ctx->filename_ptr); bpf_perf_event_output(ctx, &output, BPF_F_CURRENT_CPU, &data, sizeof(data)); return 0; @@ -134,14 +134,14 @@ int tp_btf_exec(struct trace_event_raw_sched_process_exec *ctx) struct data_t data = {}; // pid_t pid = ctx->pid; - bpf_probe_read_kernel(&data.message, sizeof(data.message), tp_btf_exec_msg); + bpf_probe_read_kernel(data.message, sizeof(data.message), tp_btf_exec_msg); data.pid = bpf_get_current_pid_tgid() >> 32; data.uid = bpf_get_current_uid_gid() & 0xFFFFFFFF; // TODO!! Resolve issues accessing data that isn't aligned to an 8-byte boundary // bpf_printk("%s %d\n", tp_btf_exec_msg, pid); - // bpf_probe_read_kernel_str(&data.command, sizeof(data.command), ctx->pid); + // bpf_probe_read_kernel_str(data.command, sizeof(data.command), ctx->pid); bpf_perf_event_output(ctx, &output, BPF_F_CURRENT_CPU, &data, sizeof(data)); return 0; @@ -152,7 +152,7 @@ int raw_tp_exec(struct bpf_raw_tracepoint_args *ctx) { struct data_t data = {}; - bpf_probe_read_kernel(&data.message, sizeof(data.message), raw_tp_exec_msg); + bpf_probe_read_kernel(data.message, sizeof(data.message), raw_tp_exec_msg); data.pid = bpf_get_current_pid_tgid() >> 32; data.uid = bpf_get_current_uid_gid() & 0xFFFFFFFF;