https://github.com/swananan/usbscope
非常窄的一个场景,正常 tcpdump 去抓 USB 流量需要 Linux 开启 USB_MON 相关配置(开起来有一点点小麻烦,对于线上环境更是如此)。
于是就想到了 eBPF ,顺手让 codex 整了一个,个人觉得完成度还算挺高的( AI 太吊了),当然也是重置卡用不完了😂。
里面可能有意思的技术点,就是用了 aya ,也就是用 Rust 来编写这个工具,包括 eBPF 代码。当然由于 Rust 编译器暂时还不支持 eBPF 的 CO-RE 特性,所以是把需要 CO-RE 的地方,都是用 C 包装了一下,然后 Rust 混合 c shims 来链接生成 eBPF 字节码的。
