• 请不要在回答技术问题时复制粘贴 AI 生成的内容
swananan
V2EX  ›  程序员

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

  •  
  •   swananan ·
    swananan · 5h 34m ago · 421 views

    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 replies    2026-09-24 13:25:45 +08:00
    dummyx
        1
    dummyx  
       4h 35m ago
    最近也在做流量录制回放的类似工具,之前在了解 aya 的时候 ebpf code 还只能用 C 写
    swananan
        2
    swananan  
    OP
       1h 59m ago
    @dummyx
    aya 一直可以用 rust 写 eBPF ,你可能说的是 CO-RE 或者 KFuncs 之类的能力,Rust eBPF 不支持。因为需要 Rust 编译器支持。

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

    另外,vadorovsky 一直在推进这块,我感觉半年内有可能会落地吧。
    https://github.com/rust-lang/rfcs/pull/3966
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5311 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 07:25 · PVG 15:25 · LAX 00:25 · JFK 03:25
    ♥ Do have faith in what you're doing.