LUNA is an all-in-one tool for building, testing, monitoring, and experimenting with USB devices. Built around a unique FPGA-based architecture, LUNA’s digital hardware can be fully customized to suit the application at hand. As a result, it can act as a no-compromises High-Speed USB protocol analyzer, a USB-hacking multi-tool, or a USB development platform.
Combined with the LUNA software and the FaceDancer libraries, LUNA becomes a versatile USB-hacking and development tool. FaceDancer makes it quick and easy to create or tamper with real USB devices – not just emulations – even if you don’t have experience with digital hardware design, HDL, or FPGA architecture. Features of Luna include :
- Protocol analysis for Low-, Full-, and High- speed USB. LUNA provides everything you need for passive USB monitoring. Add the ViewSB analysis software, and you have a full-featured USB analyzer capable of passively capturing both USB traffic and up to 16 related digital signals.
- Creating your own Low-, Full-, or High- speed USB device. LUNA provides nMigen gateware that allows you to create USB devices in gateware, firmware, or a combination of the two. Using the FaceDancer library, you can create or emulate real USB devices in high-level Python.
- Meddler-in-the-Middle (MitM) attacks on USB communication. LUNA hardware can function as a “USB proxy” capable of transparently modifying USB data as it flows between a host and a device. Each board’s three USB-C connections allows for simultaneous, high-speed proxying, all while maintaining a high-speed connection to the host. As a result, you can proxy a connection with or without the help of a host PC.
- USB reverse engineering and security research. LUNA hardware and gateware represent a purpose-built backend for research tools like FaceDancer and USB fuzzing libraries, thereby simplifying the emulation and rapid prototyping of compliant and non-compliant USB devices. Unlike other USB emulation solutions, LUNA-based hardware is dynamically reconfigurable, so it gives you the flexibility to create any endpoint configuration and engage in almost any USB (mis)behaviour.
Technical Specifications of Luna
- A Lattice Semiconductor LFE5U-12F ECP5 FPGA supported by the yosys+nextpnr open-source FPGA flow
- Three High-Speed USB interfaces, each connected to a USB3343 PHY capable of operating at up to 480 Mbps.
- Two USB Type-C connectors for device-mode communication (left side)
- One USB Type-C connector for host-mode communication, device-mode communication, or USB analysis (right-side)
- One USB Type-A connector for host-mode communication or USB analysis (right-side)
- A Microchip SAMD11 debug controller allows user configuration of the FPGA and provides a number of diagnostic interfaces:
- A complete, user-programmable JTAG controller capable of configuring the FPGA and communicating via JTAG with user designs
- A built-in USB-to-serial communications bridge for FPGA debug I/O
- A variety of simple, built-in debug mechanisms, including utilities that allow you to create simple, PC-accessible register interfaces
- Three USB power switches allow you to control power to and from each of the right-side USB connectors, thereby facilitating controlled power cycling of USB-powered devices under analysis.
- 64 Mbit (8 MiB) RAM for buffering USB traffic or for user applications
- Two unpopulated User I/O SMA connector footprints intended for Trigger In / Trigger Out use or for multi-device clock/data synchronization
- Two unpopulated Pmod I/O connectors presenting 16 high-speed FPGA user IOs that support user FPGA applications and allow logic-level data to be captured during USB analysis
- 32 Mbit (4 MiB) SPI-connected flash for PC-less FPGA configuration
- Six FPGA-connected user LEDs and five microcontroller-connected status LEDs
“Out-of-the-box, LUNA acts as a USB protocol analyzer capable of capturing and analyzing traffic between a host and any Low-, Full-, or High-Speed (“USB 2.0″) USB device. It works seamlessly with our open-source ViewSB software, which translates captured USB traffic into a human-readable format. ViewSB runs on Linux, MacOS, Windows, and FreeBSD.”
Source : Crowd Supply
Disclosure: Some of our articles include affiliate links. If you buy something through one of these links, Geeky Gadgets may earn an affiliate commission. Learn more.