PW-USB and CW-pro do completely different things, there really isn’t any overlap between the two (or any other of our products).
The primary function of PW-USB is to supply a stable time reference based on specific USB activity (chosen by you). That time reference can then be used by something else (like a CW-pro for example) as a trigger to conduct some side-channel attack; for example as a marker for glitching the USB target. So, if you’re familiar with our ChipWhisperer target firmware examples, you can think of PW-USB as the tool that provides the equivalent of
trigger_high(), for arbitrary USB target devices.
The secondary function of PW-USB is to sniff USB traffic (and this can help support the primary function, i.e. you need to know what the USB traffic looks like before you target a specific USB event, command or transfer).
Once you’ve read the Github and Crowdsupply project pages, read Colin’s 2019 WOOT paper for some concrete examples of attacks that PW-USB can help with.
You can also look at our 3 example notebooks
that show how PW-USB is driven from Python and what you get from it.
Finally, on the sniffing and interpretation side, PW-USB hooks into ViewSB to parse the raw USB data. This Crowdsupply update has some screenshots of that.
I know this is a pretty general answer, but if you have more specific questions let us know!