USB is a horrendously complicated protocol - but it's also tremendously useful and powerful, and that's why it's dominated PC peripherals. There are hundreds of rubbish USB devices around with unsupported software and locked down pc requirements. Luckily, these devices are often actually very easy to reverse engineer. I'll briefly outline how USB works, and then describe how I reverse engineered several USB devices - including a USB desktop visualiser (avermedia CP-155) and a laser cutter (HPC 3020) using just virtual machines and wireshark, and found that many undocumented USB devices are surprisingly simple. Let's take back the power over our hardware and hack our USB devices!