The Cynthion is an all-new, highly capable USB-hacking multi-tool : The Proxmark of the USB world. Sniff and analyse High-Speed USB traffic on the protocol level, intercept and manipulate USB-devices in real-time, emulate USB-devices and even build your own real USB-devices directly in the FPA. Built by GreatScottGadgets, the Cynthion shares the same design-DNA as the HackRF: build a powerful, no-compromise tool that is accessible to everyone. The Cynthion's feature-set is unmatched by devices 10 times as expensive and bulky. As with all GreatScottGadget products, the Cynthion has a rich, mature ecosystem of open-source tools that work out of the box. Whether you're curious to tinker with USB or you're a engineer building enterprise hardware - the Cynthion is a must-have tool. Protocol Analyser Passively capture low, full and high-speed USB traffic and up to 16 related digital signals simultaneously for analysis. Reverse Engineer Communications Full-featured open-source tools for capturing, filtering, visualising and analysing USB-traffic on a protocol level. MITM USB Devices Sniff, analyse and manipulate high-speed USB-packets on the wire in real-time via the USBProxy tool. Build your own USB device Build custom USB devices rapdily in software via Python, or semi-permanently onto the Cynthion's FPGA. Key Features Protocol Analyser - Fully-featured low/full/high speed USB Analysis tools via Packetry USB Device Designer With Facedancer, build custom USB-devices, either emulated via Python and/or real via the FPGA with LUNA. MITM Platform - Real-time manipulation of USB-device communication Reverse-Engineering Toolkit - full-stack (software + gateware) tooling for fuzzing, prototyping and emulation of low/full/high-speed USB devices. Open Source - 100% open-source software, firmware, gateware and hardware. Unibody aluminium case - Robust, sleek annodised aluminium CNC-milled case for complete PCB-protection. The Cynthion in action Building a RubberDucky in 6 lines of code 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\n') main(device, type_letters()) Flip the X-Axis of a USB Controller in 6 lines 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 en_num, data Device Specifications FPGA: ECP5 FPGA USB Interfaces: Left side: 2x USB Type-C (device-mode) Right side: 1x USB Type-C (host/device mode & analysis) Right side: 1x USB Type-A (host mode & analysis) Diagnostic Interface: Microchip SAMD11 JTAG USB-Serial Register Interface debuggers Power: 3x USB Power Switches RAM: 64 Mbit (8 MiB) RAM (Buffering + Userspace) Flash: 32Mbit (4 MiB) SPI-Flash for standalone FPGA configuration LEDs: 6x FPGA Controlled LEDs 5x MCU controlled Status LEDs IO: 2x Digilent Pmod I/O Connectors What's included 1x Cynthion PCB 1x Milled Aluminium Enclosure Technical Resources Cynthion Documentation Cynthion Github Cynthion Hardware Source Cynthion Development Notes hljs.highlightAll();