我想使用ebpf.
在阅读了一些帖子和博客之后,我知道%fs:0xfffffffffffffff8指向ggo 的结构和mov %fs:0xfffffffffffffff8,%rcx指令总是出现在 go 函数的开头。
举main.main个例子:
func main() {
177341 458330: 64 48 8b 0c 25 f8 ff mov %fs:0xfffffffffffffff8,%rcx
177342 458337: ff ff
177343 458339: 48 3b 61 10 cmp 0x10(%rcx),%rsp
177344 45833d: 76 1a jbe 458359 <main.main+0x29>
177345 45833f: 48 83 ec 08 sub $0x8,%rsp
177346 458343: 48 89 2c 24 mov %rbp,(%rsp)
177347 458347: 48 8d 2c 24 lea (%rsp),%rbp
177348 myFunc()
177349 45834b: e8 10 00 00 00 callq 458360 <main.myFunc>
177350 }
我也知道 goid 信息存储在ggo 的 struct 中。fs 寄存器的值可以通过函数的ctx参数获取ebpf。
但我不知道真正的地址是什么,%fs:0xfffffffffffffff8因为我是汇编语言的新手。谁能给我一些提示?
如果 fs 寄存器的值为 0x88,那么 的值是%fs:0xfffffffffffffff8多少?
慕容森
交互式爱情
随时随地看视频慕课网APP
相关分类