MEET LUNA; A MULTI-TOOL FOR BUILDING, HACKING AND ANALYZING USB DEVICES

Summary of MEET LUNA; A MULTI-TOOL FOR BUILDING, HACKING AND ANALYZING USB DEVICES


LUNA is an open-source, FPGA-based multi-tool from Great Scott Gadgets for building, monitoring, hacking, and analyzing USB devices. It pairs an ECP5 FPGA and SAMD11 debug controller with three high-speed USB ports, 64 MB RAM, and 32 Mbit SPI flash. LUNA uses ViewSB and FaceDancer software to make USB traffic readable and enable device emulation/modification via Python. Intended for developers and education, LUNA aims to replace costly specialized tools by offering flexible, customizable hardware and open-source resources for learning and USB development.

Parts used in the LUNA:

  • Lattice Semiconductor LFE5U-12F ECP5 FPGA
  • Microchip SAMD11 debug controller
  • USB3343 PHY chips (one per USB port)
  • 3 High-Speed USB ports (2 Type-C and 1 Type-A)
  • 64 MB RAM (onboard)
  • 32 Mbit SPI flash
  • nMigen gateware-generation library (software component)
  • Open FPGA toolchain (ultra-fast open FPGA tools)
  • ViewSB analyzer frontend (software)
  • FaceDancer backend (software)

Despite its popularity, the developments of USB-based devices are characterized by diverse challenges ranging from specialized and expensive tools to complicated software. To solve this, Colorado-based open-source hardware manufacture; Great Scott Gadgets, recently started working on LUNA; a multi-purpose tool for USB devices development.

Designed as a “swiss army knife” solution for all things USB devices, LUNA is a multi-tool for building, monitoring, hacking, and analyzing USB devices. It features a unique, FPGA-based, digital hardware architecture, which, combined with the remarkable nMigen gateware-generation library along with several supported ultra-fast open FPGA tools,  puts in the hand of users, a device that can automatically customize itself to suit the task hand.

On the Hardware level, LUNA features the Lattice Semiconductor LFE5U-12F ECP5 FPGA with the Microchip SAMD11 debug controller which provides access for configuration of the FPGA along with a number of interfaces for diagnosis. For connection of USB devices, LUNA features 3 High-Speed USB ports(2 Type-C and 1 Type-A), each connected to a USB3343 PHY with up to 480Mbps speed, and defined for specific communication mode/usage. An onboard 64MB RAM aids buffering of USB traffic while a 32MBit SPI-connected flash is available for PC-less FPGA configurations. These hardware features and functionalities put LUNA on a close enough pedestal as some expensive commercial USB analyzers like the TotalPhase Beagle 480.

On the software Side, LUNA uses the open-source ViewSB analyzer frontend with a FaceDancer Backend. ViewSB makes USB traffic more human-readable at any abstraction level, while FaceDancer makes it quick and easy to create or tamper with real USB devices even if you don’t have experience with digital-hardware design, using just a few lines of Python. The combination of these two, along with their open-source nature, makes LUNA one of the most versatile USB hacking and development tools.

Beyond its use by experienced developers to craft new solutions, LUNA also prides itself as an education platform for those looking to learn about developing USB devices. The team at LUNA has a long history of USB education and the resources from the several open-source training and workshops developed in the past, along with more LUNA-specific, fully open-source materials, are available to walk beginners through the basics of working and hacking with USB.

Read more: MEET LUNA; A MULTI-TOOL FOR BUILDING, HACKING AND ANALYZING USB DEVICES

Quick Solutions to Questions related to LUNA:

  • What is LUNA used for?
    LUNA is a multi-tool for building, monitoring, hacking, and analyzing USB devices.
  • What FPGA does LUNA use?
    LUNA uses the Lattice Semiconductor LFE5U-12F ECP5 FPGA.
  • Which microcontroller provides FPGA configuration access on LUNA?
    The Microchip SAMD11 debug controller provides access for FPGA configuration and diagnostic interfaces.
  • How many USB ports does LUNA have and what types are they?
    LUNA has three High-Speed USB ports: two Type-C and one Type-A.
  • What PHY chip is used for LUNA's USB ports?
    Each USB port is connected to a USB3343 PHY.
  • Does LUNA include onboard memory for buffering?
    Yes, LUNA includes 64 MB of onboard RAM for buffering USB traffic.
  • Can LUNA store PC-less FPGA configurations?
    Yes, LUNA includes a 32 Mbit SPI-connected flash for PC-less FPGA configurations.
  • What software makes USB traffic human-readable with LUNA?
    ViewSB is the analyzer frontend that makes USB traffic more human-readable.
  • How does LUNA enable creating or tampering with USB devices using Python?
    FaceDancer backend makes it quick and easy to create or tamper with real USB devices using a few lines of Python.
  • Is LUNA suitable for education?
    Yes, LUNA is presented as an education platform with open-source training materials and workshops for beginners learning USB development.

About The Author

Muhammad Bilal

I am a highly skilled and motivated individual with a Master's degree in Computer Science. I have extensive experience in technical writing and a deep understanding of SEO practices.