摘要: 首先,需要安装好 go 插件,插件市场搜索go,选一个即可安装。 然后,需要安装 go 的工具包。在 vscode 中,输入快捷键:command(ctrl) + shift + p,在弹出的窗口中,输入:go:install/Update Tools,回车后,选择所有插件(勾一下全选),点击确认, 阅读全文
posted @ 2021-12-27 19:12 SenberHu 阅读(3351) 评论(0) 推荐(0) 编辑
摘要: Perf Buffer常规用法: struct addrinfo //需要上传给应用层的数据结构 { int ai_flags; /* Input flags. */ int ai_family; /* Protocol family for socket. */ int ai_socktype; 阅读全文
posted @ 2021-12-27 17:30 SenberHu 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 前段时间编译bpf c文件,都是用的bpf2go这个go包,这个包虽然很方便,但是指定参数比较困难, 学习到tracee falco这种大型项目都是通过makefile直接编译bpf代码,因此打算自己写Makefile clang -D__KERNEL__ -D__ASM_SYSREG_H \ -D 阅读全文
posted @ 2021-12-27 15:37 SenberHu 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 0x1:基本概念 当使用tracepoint的时候,函数参数如何确认? cat /sys/kernel/debug/tracing/events/syscalls/xxx/format. xxx为要跟踪的函数,在这里有函数参数定义。 2. 0x2:注意事项 写结构体的时候一定要注意内存对齐,防止被编 阅读全文
posted @ 2021-12-27 14:13 SenberHu 阅读(584) 评论(0) 推荐(0) 编辑
摘要: 0x1:应用层流程 基于Linux kernel source v5.13 1.加载bpf.o文件并处理elf section信息 1.int bpf_object__open(char *path) //参数是bpf.o文件路径 -- __bpf_object__open(const char * 阅读全文
posted @ 2021-12-27 10:27 SenberHu 阅读(879) 评论(0) 推荐(1) 编辑
摘要: 背景: 针对最近几年频繁出现的通过eBPF进行容器逃逸、rootkit等攻击,需要考虑如何收敛服务器ebpf相关权限,防止被黑客利用。 静态方案: 宿主机层面: 非root用户不赋予CAP_BPF及CAP_SYS_ADMIN 注:3.15 - 5.7 内核不赋予CAP_SYS_ADMIN即可 5.8 阅读全文
posted @ 2021-12-25 17:50 SenberHu 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 0x1:技术背景 bpf: BPF 的全称是 Berkeley Packet Filter,是一个用于过滤(filter)网络报文(packet)的架构。(例如tcpdump),目前称为Cbpf(Classical bpf) Ebpf: eBPF全称 extended BPF,Linux Kerne 阅读全文
posted @ 2021-12-25 16:02 SenberHu 阅读(2279) 评论(0) 推荐(0) 编辑
摘要: 基础概念 eBPF是kernel 3.15中引入的全新设计,将原先的BPF发展成一个指令集更复杂、应用范围更广的“内核虚拟机”。 eBPF支持在用户态将C语言编写的一小段“内核代码”注入到内核中运行,注入时要先用llvm编译得到使用BPF指令集的elf文件,然后从elf文件中解析出可以注入内核的部分 阅读全文
posted @ 2021-12-25 14:38 SenberHu 阅读(1667) 评论(0) 推荐(0) 编辑
摘要: c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初学者有所帮助。 c++类的构造函数详解 一、 构造函数是干什么的 1 class Counter 2 阅读全文
posted @ 2017-06-22 09:50 SenberHu 阅读(2068) 评论(0) 推荐(1) 编辑
摘要: 阅读全文
posted @ 2017-04-18 09:43 SenberHu 阅读(276) 评论(0) 推荐(0) 编辑