电子产业一站式赋能平台

PCB联盟网

搜索
查看: 40|回复: 0
收起左侧

Made with KiCad(104):Cynthion - 用于构建、分析和 Hack USB 设备的多功能工具

[复制链接]

854

主题

854

帖子

8396

积分

高级会员

Rank: 5Rank: 5

积分
8396
发表于 2024-10-29 11:08:00 | 显示全部楼层 |阅读模式
Cynthion 是一款集 USB 设备构建、测试、监控和实验于一身的工具。采用基于 FPGA 的独特架构,其数字硬件可根据应用进行完全定制。因此,它可以充当不折不扣的高速 USB 协议分析仪、USB 黑客多功能工具或 USB 开发平台。7 U& \- ^$ K4 t6 Y

: K' m% y) a% f/ v% g2 u' Q

qczvcfysq4i64055614705.png

qczvcfysq4i64055614705.png
% K4 _1 c; h4 c2 N

: S( G) B, a, @( _* I' O, l

ul5ycne4iv364055614806.png

ul5ycne4iv364055614806.png

0 h' K' k6 _# A: |8 b- m/ `) M- i8 E3 b6 z+ [/ \4 l# z
Made with KiCad 系列将支持新的展示方式。直接将以下链接复制到浏览器中(或点击“阅读原文”打开):( C# `) G3 f+ S4 o0 l9 j) P6 ]) H
https://www.eda.cn/ecadViewer/viewerPage/?xmlId=991cf998-762d-415f-ac1f-3602afd1b7e6&fileZip=%2Fdata%2Fdesign%2Fdemo%2F991cf998-762d-415f-ac1f-3602afd1b7e6.zip即可动态查看设计的原理图、PCB、3D 及 BOM,查询设计中器件、走线、焊盘的属性详情。还可以在原理图中与AI小助手互动,帮您更高效地学习设计细节:
& \9 U# G( C+ m

bx43bc323ca64055614906.png

bx43bc323ca64055614906.png
" ]7 `5 @  b' J6 `) S' R
3 R5 g5 l. z/ W3 g7 j

0jo213oldkd64055615006.png

0jo213oldkd64055615006.png

+ x6 O! b' f" s& O; U/ e+ h7 }! D0 U# h. {  D

ijtbcxgt4bx64055615106.png

ijtbcxgt4bx64055615106.png

1 e6 c9 \6 z% G) G概览Cynthion 是用于构建、测试、监控和试验 USB 设备的一体化工具。Cynthion 采用基于 FPGA 的独特架构,其数字硬件可根据手头的应用进行完全定制。因此,它可以充当高速 USB 协议分析仪、USB 研究多功能工具或 USB 开发平台。开箱即用的 Cynthion 是一款 USB 协议分析仪,能够捕捉和分析主机与任何低速、全速或高速(“USB 2.0”)USB 设备之间的流量。它可与我们的开源分析软件无缝配合。与我们的 LUNA gateware(https://github.com/greatscottgadgets/luna)和 Facedancer (https://github.com/greatscottgadgets/facedancer)库相结合,Cynthion 成为了一种多功能 USB 研究和开发工具。即使您没有数字硬件设计、HDL 或 FPGA 架构方面的经验,Facedancer 也能让您快速轻松地创建或实验真正的 USB 设备,而不仅仅是仿真!9 A3 t& K: w6 ]2 x3 R0 h/ X
核心功能" `; d. V( W9 o! Z
Cynthion 是一款完全可配置的测试仪器,它提供了掌握 USB 所需的所有硬件、网关、固件和软件。以下是 Cynthion 可以应对的一些挑战:
" u# f& V6 q3 ]$ Y- e
  • 低速、全速和高速 USB 的协议分析。Cynthion 为您提供被动 USB 监控所需的一切。通过 Packetry USB 分析软件,Cynthion 可为您提供被动 USB 监控所需的一切。
  • 创建自己的低速、全速或高速 USB 设备。LUNA 提供的 Amaranth gateware 可让您在 gateware、固件或两者的组合中创建 USB 设备。使用 Facedancer 库,您可以用高级 Python 创建或模拟真实的 USB 设备。
  • 对 USB 通信的 “Meddler-in-the-Middle ”(MitM)攻击。Cynthion 硬件可充当 “USB 代理”,能够在 USB 数据在主机和设备之间流动时对其进行透明修改。每块电路板的三个 USB Type-C 接口可同时进行高速代理,并保持与主机的高速连接。因此,无论有无主机帮助,您都可以代理连接。
  • USB 逆向工程和安全研究。Cynthion 硬件和 LUNA gateware 为 Facedancer 和 USB-fuzzing 库等研究工具提供了专用后台,从而简化了合规和不合规 USB 设备的仿真和快速原型开发。与其他 USB 仿真解决方案不同,基于 Cynthion 的硬件可动态重新配置,因此您可以灵活地创建任何端点配置并参与任何 USB 行为。! ^* G1 c5 V7 @; M
    开源 USB 协议分析仪0 E3 U) [% j! T7 h

    ybv3sdw4c0r64055615207.png

    ybv3sdw4c0r64055615207.png

    * ?1 E- B" q6 e% Q7 G" h' A$ yPacketry 接口. u4 z, r& |  j
    Cynthion 包括低速、全速或高速 USB 协议分析所需的所有硬件,这意味着它可以提供与昂贵的商用 USB 分析仪(如 TotalPhase Beagle 480 或 LeCroy Mercury 系列)相同的核心功能。, p9 o: z. ~" l3 v) t0 w$ B
    不过,与现有的 USB 解决方案不同,Cynthion 的分析仪堆栈完全建立在强大的开源工具基础之上。通过利用 Amaranth 库和开源的 FPGA 工具。您可以根据手头的任务对 Cynthion 进行定制,从而获得独特的功能,如用户定义的硬件触发和同时捕获额外的外部或内部信号。# e3 Y7 a# U! a( \! R* ~
    Cynthion 使用开源 Packetry 分析器前端,这是一款用于捕获、查看和分析 USB 捕捉信号的快速跨平台工具。Packetry 有助于使 USB 流量更易于人类读取,同时还能流畅高效地处理大型高速捕获。由于 Packetry 完全开源,您可以根据自己的需要进行定制。9 J( b0 h4 p% Q7 d& F" T3 _8 V
    学习 USB 的教育平台
    # }" c6 P  s' F! ]7 D4 m* ?

    emrddbfdeod64055615307.png

    emrddbfdeod64055615307.png

    6 [& ~& w3 A! t% r# W+ ~; f一套完全开源的培训材料可帮助您了解 USB 的基本知识,包括 USB 基本要素的说明和示意图,如图所示的 USB 传输。
    : ^6 ]4 t  U2 jCynthion 团队在 USB 教育方面有着悠久的历史。已经开发了许多不同难度的开源 USB 培训课程。Cynthion 的可定制架构让你不仅仅能看到数据包的变化,还可以接触到每个级别的 USB 流量。如果你能将其拆开,探究其中的奥秘,并以巧妙的方式加以操作,那么学习其工作原理就会容易得多。Cynthion 为你提供了这种程度的控制。
    . q% s  ~$ D5 y( `- v- p轻松创建自己的 USB 设计
    7 W& K: M# R6 S3 S+ A( RCynthion 从底层开始构建,旨在简化创建新 USB 设备的过程。无论你是资深的底层硬件设计人员,还是新人,Cynthion 都能在多个方面让你的工作变得更轻松。/ k! _' }2 l) ^/ L" y
    首先,Cynthion 的 Facedancer 后端允许您使用几行 Python 语言快速描述整个自定义 USB 设备,这样您就可以立即在真实硬件上试用它们。此外,Facedancer 还提供了一系列现有的设备模板,可帮助您快速入门:
    7 w$ H* V1 E4 `7 T( p4 {
  • # Using a Facedancer pre-made device, you can create a# "USB rubber ducky" with only a few lines of python!device = USBKeyboardDevice()async def type_letters():    await device.type_string('r', modifiers=KeyboardModifiers.MOD_LEFT_META)    await asyncio.sleep(0.5)    await device.type_string('calc
    $ o/ e1 Z9 n, j- `! c6 U+ u; q  q')main(device, type_letters())此外,对于那些对 FPGA 设计感兴趣的人来说,基于 Amaranth 的 LUNA gateware 库使 USB gateware 的实现变得轻而易举。! j3 e4 m9 |$ u& M% v9 H) O9 f5 y$ Q
    透明地处理 USB 数据
    + n3 Y+ I, a. u+ wCynthion 在处理现有 USB 设备和设计新设备时同样有用。Cynthion 能让你以透明的方式注入或修改 USB 数据:这让你可以做一些原本不可能做到的事情。它对 Facedancer 的 USBProxy 的支持意味着,在线路上操作 USB 数据就像编写几行 Python 代码一样简单:
    0 ?+ y% B* c; j
  • # USBProxy makes manipulating USB data trivial!# The following few lines are enough to flip the X-axis# on a Nintendo-branded USB game controller:class SwitchControllerInvertXFilter(USBProxyFilter):    def filter_in(self, ep_num, data):        # The fourth byte of our packets contains the        # joystick X position, as a number between 0 and 255.        data[3] = 0xff - data[3]        return ep_num, dataCynthion 的 USB 外围设备是为每个 USBProxy 应用程序定制的,因此您不会受限于特定的 USB 设备配置。理论上,它可以代理现有的任何 USB 设备!
    9 ^+ ~! G. m" N5 _  g9 u$ V逆向工程和安全研究工具
    9 ^9 {0 {- P: ]4 u: e作为Great Scott Gadgets(GSG)公司的产品,Cynthion从一开始就是为创新研究而设计的,同时也支持多种安全和逆向工程应用:
    0 ~- w% U5 T5 \- F" T# ~
  • 通过实时 USB 分析,您可以观察协议的传输过程。
  • 创建和仿真 USB 设备的简单工具可让您快速开发与现有 USB 主机软件兼容的硬件。
  • 使用 LUNA 灵活的 USB 栈,您可以轻松生成不符合标准的流量,从而对各种主机或运行在这些主机上的软件和驱动程序进行模糊处理!
  • USBProxy Meddler-the-Middle(MitM)功能使您能够操纵在主机和设备之间传输的 USB 数据,这样您就能 “看到 ”设备偏离既定协议时会发生什么。* u! D5 |7 U- i
    技术规格
    ! P. u' ^8 |! V- k7 m
  • yosys+nextpnr 开源 FPGA 流程支持的 Lattice LFE5U-12F ECP5 FPGA
  • 三个高速 USB 接口,每个接口都连接到 USB3343 PHY,工作速率高达 480 Mbps。
  • 两个USB Type-C 连接器(左侧),用于设备模式通信的
  • 一个 USB Type-C 连接器(右侧),用于主机模式通信、设备模式通信或 USB 分析
  • 一个 USB Type-A 连接器,用于主机模式通信或 USB 分析(右侧,与 Type-C 连接器共用)
  • Microchip SAMD11 调试控制器允许用户对 FPGA 进行配置,并提供多个诊断接口:
  • 完整的用户可编程 JTAG 控制器,能够配置 FPGA 并通过 JTAG 与用户设计进行通信
  • 用于 FPGA 调试输入/输出的内置 USB 转串行通信桥接器
  • 各种简单的内置调试机制,包括允许您创建简单、PC 可访问的寄存器接口的实用程序
  • 三个 USB 电源开关允许您控制右侧 USB 连接器的供电和从 USB 连接器供电,从而为分析中的 USB 供电设备的受控电源循环提供便利。
  • 64 Mbit (8 MiB) RAM 用于缓冲 USB 流量或用户应用程序
  • 两个 Digilent Pmod? 兼容 I/O 连接器提供 16 个高速 FPGA 用户 IO,支持用户 FPGA 应用
  • 32 Mbit (4 MiB) SPI 连接闪存,用于无 PC FPGA 配置
  • 6 个 FPGA 连接的用户 LED 和 5 个微控制器管理的状态 LED
  • 一个 PAC1954 4 通道 I2C 电源监控器 IC,用于测量所有四个 Cynthion USB 端口的 VBUS 电压和电流。
  • 两个 FUSB302B I2C Type-C 端口控制器,用于 AUX 和 TARGET-C 端口,支持 USB Power Delivery 或自定义 Type-C 行为。, K/ l7 ?# z: H- i( B! ^
    同类产品比较
    3 I! o( t2 b0 a" K+ {1 p

    ai0lqs5uhf564055615407.png

    ai0lqs5uhf564055615407.png

    8 t4 z* C' T& E4 V& M$ v" ?原理图 & PCB
    + @: B' S! h4 s/ q* W# k$ ^

    1linslkpptk64055615507.png

    1linslkpptk64055615507.png
    # V- ^  I. }6 e6 n- b: j

    : F$ |  w% I& R0 l/ N" i

    hv2ggvuu3na64055615607.png

    hv2ggvuu3na64055615607.png

    ( M! w+ |# q+ @; Z( d  e
    + _& `4 @0 ~* E6 {5 g. S

    5ih2zjt2cuu64055615707.png

    5ih2zjt2cuu64055615707.png

    6 e9 O( ]9 P( t' e. [' h( s4 j- u0 m! T7 T' g. ]! G5 D+ f

    5emnr4gl43k64055615807.png

    5emnr4gl43k64055615807.png

    ) P: }/ x* e8 ^

    hap5dnzxvzu64055615907.png

    hap5dnzxvzu64055615907.png

    . h( D8 S- e: o5 C- Z4 N5 |

    yqmncvi43p064055616008.png

    yqmncvi43p064055616008.png

    ' W' K: M$ u' V- Z! d+ p. K1 J7 B' L" N2 ^0 a. u( ?

    ljqtod12wxa64055616108.png

    ljqtod12wxa64055616108.png
    8 _2 A% G2 e# d: V
    5 B+ y% |" R* B3 D+ B. Y

    uq0nq2sopms64055616208.png

    uq0nq2sopms64055616208.png

    1 ?$ q: C  Z- r+ `  B/ R: ^0 V
    2 ^8 n/ Z9 {. r

    vyjvtyqbmlt64055616308.png

    vyjvtyqbmlt64055616308.png
    $ u3 f0 S- C7 u/ X$ Q

    % i/ g8 ]+ z/ w' Q! B0 }: d( ~

    r0nw1gxwiul64055616408.png

    r0nw1gxwiul64055616408.png
    0 M2 g$ J' S& ~& s

    - s) T& d* @2 g5 Z

    jychujuo4v564055616508.png

    jychujuo4v564055616508.png

    7 f9 n4 y0 I, ^* f
    0 ^! N+ ~. O  y/ N2 n6 e1 Q

    zjcvou0bjme64055616608.png

    zjcvou0bjme64055616608.png

    ( b6 ~5 w: B* w4 u4 S7 Q$ N9 [) ^' q. ?( `4 C" j. C
    5 J' N% [9 s% O
    6 u, o. o2 [2 o/ D

    " {% M$ A8 c$ ~" Z0 b5 I
    2 y- S+ G2 {9 X" g8 ^0 b! x2 m- }1 L# U: i. B' l# o3 f7 U  r' g
    5 V2 q! E+ s4 c+ q7 W. \# L  F, y
    ' {2 j+ U) e( c* |

    * s# O( g2 c+ O* Z& a( p9 G  F1 y5 @+ h4 k" g4 \! G
    6 u; e2 `1 a" `2 @8 x
    ( D3 n' W  g0 @( c$ \

    ( e% s" \8 p. x  l* ?5 ^
    4 x5 r: w9 M  `
    $ x+ \0 V# ]" M" S
    # l- C& W. r& n
    3 g- E4 J- S  ~$ M! c4 N2 d7 _0 x: ?* x' i- A1 I/ U

    + O  v1 v0 j* V/ K# c# |* P9 v2 b! O, W8 @4 h4 X8 G
    : x9 u* Q1 D* ~7 D' |

    . b" z; i$ ^$ c2 [1 e6 n8 R6 q! c; l7 n& l
    " R' P: E& f4 c" |7 ~9 {2 U  Y
    2 p2 A' Q( p( H; ~1 f/ P" s8 s2 F
    LicenseCERN-OHL-P-2.0 license仓库 & 下载+ m( Z9 M% l/ O& A9 p
    可以在Github中获取开源仓库:https://github.com/greatscottgadgets/cynthion-hardware
    5 v4 W! ^* e, k: oBaidu 下载:
    6 T+ J& Y/ n+ y8 l0 ]( K9 s. i, G3 X$ u

    " W  L6 a7 g, m0 q6 u  _; v, s' X  H& \- h9 f
    注意:如果想第一时间收到 KiCad 内容推送,请点击下方的名片,按关注,再设为星标。8 P6 b; S- C1 i% |. v4 g5 K
    常用合集汇总:$ q- Y" C6 Q) J5 Y( g3 p/ ~- t9 ?
  • 和 Dr Peter 一起学 KiCad9 \2 L5 h4 s0 Y/ |
    KiCad 8 探秘合集
    . M$ @( N) U$ l1 w0 _1 FKiCad 使用经验分享KiCad 设计项目(Made with KiCad)常见问题与解决方法KiCad 开发笔记插件应用
    2 b  r; Y/ ], v, l5 k/ q8 v& u* X3 x发布记录
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表