This guide focuses on acquiring, installing, and fuzzing with the EZ-USB FX3 board.  For a full overview of the UAC USB Peripheral Module, see the beSTORM UAC USB Peripheral Module Guide.


To perform USB fuzzing in beSTORM, do the following:


Acquire the hardware

Before you can fuzz with beSTORM, you will need to supply the following third-party hardware:

  • (1) CYUSB3KIT-003 EZ-USB FX3 SuperSpeed Explorer Kit (to purchase, go to the EZ-USB FX3 SuperSpeed Explorer Kit product page)
    • This kit includes:
      • (1) EZ-USB FX3  board
      • (1) USB 3.0 A to B cable
      • (4) plastic board jumpers (two jumpers will come preinstalled on the board)
      • (1) EZ-USB FX3 SuperSpeed Explorer Kit Quick Start Guide (you will use this to identify parts of the board in later sections)
  • (1) USB 2.0 A to 5-pin Micro-USB Type B cable 


Install the EZ-USB FX3 board

After receiving your EZ-USB FX3 SuperSpeed Explorer Kit, do the following to install the EZ-USB FX3 board on the beSTORM computer:

  1. Download and install the Windows driver:
    1. Go to the Infineon USB-Serial Software Development Kit page.
    2. Under the Windows section, select the USB-Serial Windows Driver Installer link (the driver will download as CypressDriverInstaller_1.exe). Note: You may need to create a free Cypress account to download this file.
    3. Double-click CypressDriverInstaller_1.exe.
    4. Once the driver installation process is complete, proceed to step 2.
  2. Install the EZ-USB FX3 board on the computer:
    1. Place one of the plastic jumpers included with the kit over the PMODE Jumper (J4) pins on the board (this sets the jumper to the closed state and configures the board for firmware flashing in the Flash the EZ-USB FX3 board's firmware section).
    2. Connect the USB 3.0 cable included with the kit to the USB 3.0 port on the board, and then connect the other end of the USB cable to the computer.
      Note: For the locations of the PMODE Jumper (J4) and USB 3.0 port on the board, refer to the EZ-USB FX3 SuperSpeed Explorer Kit Quick Start Guide included with your kit.
  3. Verify your EZ-USB FX3 board is properly detected by the computer:
    1. In Windows, open Device Manager.
    2. Expand Universal Serial Bus controllers.

    3. Verify Cypress FX3 USB Bootloader Device appears in the list.
      Note: If you do not see Cypress FX3 USB Bootloader Device in your list of USB devices, try reinstalling the Windows driver, or contact Cypress technical support from the Support section of the EZ-USB FX3 SuperSpeed Explorer Kit product page.

You can now proceed with flashing EZ-USB FX3 board's firmware.


Flash the EZ-USB FX3 board's firmware

After installing the EZ-USB FX3 board on the beSTORM computer, do the following to flash the board's firmware:

  1. Download and unzip the firmware file:
    1. Download the UAC_USB_Peripheral_Module.zip file attached to this FAQ page.
    2. Unzip the UAC_USB_Peripheral_Module.zip file to extract the UAC_USB_Peripheral_Module folder. Note: In addition to the firmware file, this folder also includes files you will use for fuzzing a USB device in the How to fuzz a USB device with the EZ-USB FX3 board section. 
  2. Download the flashing tool:
    1. Go to the EZ-USB FX3 SuperSpeed Explorer Kit product page.
    2. Expand Development Tools, and then select the DOWNLOAD - SuperSpeedExplorerKitSetup_RevSS.exe link. 

    3. Double-click SuperSpeedExplorerKitSetup_RevSS.exe.

    4. During the installation process, select Typical as the Installation Type.

    5. Once the installation process is complete, proceed to step 3.

  3. Flash the EZ-USB FX3 board:

    1. Browse to C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\bin.

    2. Double-click the CyControl.exe file.

    3. From the top menu of the USB Control Center, select Program > FX3 > I2C EEPROM

    4. In the dialog box that appears, browse to the UAC_USB_Peripheral_Module folder you extracted in step 1c of the Flash the EZ-USB FX3 board's firmware section, and then select the best_uac_usbd.img firmware file.

    5. Select Open to start flashing the firmware.

    6. The bottom-left corner of USB Control Center will display Programming of I2C EEPROM in Progress while the USB Control Center is flashing the EZ-USB FX3 board. Once the flashing process is complete, the message will change to Programming of I2C EEPROM Succeeded, indicating the flashing process is complete.

    7. Disconnect the USB 3.0 cable from the EZ-USB FX3 board.

    8. Remove the plastic jumper from the PMODE Jumper (J4) on EZ-USB FX3 board to set it back to the open state.

Your EZ-USB FX3 board is now ready to fuzz a USB device with beSTORM.


How to fuzz a USB device with the EZ-USB FX3 board

After installing the EZ-USB FX3 board on the beSTORM computer and then flashing its firmware, do the following to fuzz a USB device:

  1. Connect the EZ-USB FX3 board to the computer and the target USB device:
    1. Insert the USB 3.0 cable included with the EZ-USB FX3 SuperSpeed Explorer Kit into the USB 3.0 port on the board, and then connect the other end of the cable to the target USB device you want to fuzz.
    2. Insert the USB 2.0 Micro USB cable you supplied separately from the kit into the USB 2.0 port on the board, and then connect the other end of the cable to the beSTORM computer.
      Note: For the locations of the USB 3.0 port and USB 2.0 port on the board, refer to the EZ-USB FX3 SuperSpeed Explorer Kit Quick Start Guide included with your kit.
  2. Verify your EZ-USB FX3 board and the target USB device are properly detected by the computer:
    1. In Windows, open Device Manager.
    2. Expand Universal Serial Bus controllers.
    3. Verify USB-Serial (Dual Channel) Vendor 1 and USB-Serial (Dual Channel) Vendor MFG appear in the list.
      Note: If you do not see USB-Serial (Dual Channel) Vendor 1 and/or USB-Serial (Dual Channel) Vendor MFG in your list of USB devices, contact Beyond Security Technical Support at support@beyondsecurity.com
  3. Prepare the project fuzzing files:
    1. On the beSTORM computer, create the following folder: C:\TEMP.
    2. Copy the best_uac_usbd.dll, bestorm.csv, and best_uac_usbd.xml files from the UAC_USB_Peripheral_Module folder (steps 1a-1c of the Flash the EZ-USB FX3 board's firmware section) into the C:\TEMP folder.
  4. Create a new beSTORM project and start fuzzing:
    1. Open beSTORM client.
    2. Select New Project. The beSTORM New Project Wizard opens.
    3. On the Welcome page, do the following:
      1. Enter a name for this project in the Project Name box.
      2. Proceed with the default values for the remaining settings.
    4. Select Next.
    5. On the Basic Configuration page, select Import a Custom Module from a BSM file, and then select Import.
    6. In the dialog box that appears, browse to the C:\TEMP folder, and then select the best_uac_usbd.xml file.
    7. Select Open.
    8. On the Module Environment page, proceed with the default values shown and select Next.
    9. On the Test Selection window, leave the Initialize, Fuzzing, and Deinitialize check boxes selected and select Next.
    10. On the Extra Configuration page, proceed with the default values for all settings and select Next.
    11. On the Complete beSTORM wizard page, clear the Auto-start beSTORM scan now check box to disable this option.
    12. Select Finish.
    13. In the Project Settings pane on the main beSTORM client screen, select Settings.
    14. In the Project Settings pane of the beSTORM Settings dialog box, review the following settings for your environment:
      1. LOG_PATH - The default path and file name for the project's log file is C:\TEMP\bestorm.log. Optionally, you can change either by using alphanumeric characters and entering a different file name (must end with .log) and path to store the log file.
      2. RECORD_PATH - The default path and file name for the project's recovery data file are c:\TEMP\best_record.dat. Optionally, you can change either by using alphanumeric characters and entering a different file name (must end with .dat) and path to store the recovery data file for the recovery tool in your environment.  For more information about recovery tools, refer to the Recovery Tool chapter in the UAC USB Peripheral Module guide.
      3. Proceed with the default values for the remaining settings.
    15. Select Apply.
    16. From the left pane on the beSTORM Settings dialog box, select Monitor.
    17. Under Monitor Settings, clear the Enable Batch Mode check box to disable this option.
    18. Select Apply.
    19. Select OK
    20. In the Project Settings pane on the main beSTORM client screen, select Start.
      Note: An error message will appear if a serial port or a file cannot be opened. If this occurs, check the settings for your environment again.
    21. A dialog box appears, requesting you to Please reset the device. Do not select OK until after the next step.
    22. Press the Reset Switch on the EZ-USB FX3 board.
      Note: For the location of the Reset Switch on the board, refer to the EZ-USB FX3 SuperSpeed Explorer Kit Quick Start Guide included with your kit.
    23. Select OK in the Please reset the device dialog box to start fuzzing the target USB device.


When the ScaleType is standard (Base2+/-1), it sends ~1200 fuzz data. Fuzzing may take 3 to 4 hours, depending on the environment.


When the test is run, a log file and a record file for the recovery tool are created separately from the standard  log file.