随手 vibe 了一个在 Linux 上面基于 eBPF 对 USB 流量进行抓包的工具

swananan 2026-09-24 09:50 1

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 字节码的。

最新回复 (2)
  • dummyx 09-24 10:49
    1
    最近也在做流量录制回放的类似工具,之前在了解 aya 的时候 ebpf code 还只能用 C 写
  • swananan 楼主 09-24 13:25
    2
    @dummyx
    aya 一直可以用 rust 写 eBPF ,你可能说的是 CO-RE 或者 KFuncs 之类的能力,Rust eBPF 不支持。因为需要 Rust 编译器支持。

    目前一直是这样的,所以只能混着 C 代码一起写。我个人感觉,混合着写,其实也挺好的。我最近打算给 aya-book 加个章节,专门说一下相关的情况。

    另外,vadorovsky 一直在推进这块,我感觉半年内有可能会落地吧。
    https://github.com/rust-lang/rfcs/pull/3966
* 帖子来源V2EX
返回