-3

I am currently trying to use LibUSB to directly access the firmware controller on a USB device. How do I directly download firmware off a USB device so it can be modified later (using either the SCSI commands or the LibUSB library)?

Sergei Danielian
  • 4,938
  • 4
  • 36
  • 58
  • Firmware of what exactly? – leppie Feb 02 '15 at 05:29
  • 99.9999% chance the answer is no. Also what do plan on using it for? Do you know what chip is used? Does it even have firmware? Probably not. – leppie Feb 02 '15 at 08:41
  • 2
    I don't accept that it is impossible unless all options are tried. Considering it has done as a proof of concept with BlackHat talks and Shmoocon with BadUSB devices. I reject you statement of it being impossible. It is phison controller which uses an Intel 8081 microcontroller. – RenegadeTech Feb 02 '15 at 08:59
  • Can you provide a link to the product page or a complete model number? Also, do you mean 8051? I have never heard of a 8081. – leppie Feb 02 '15 at 09:09
  • Does this help: https://bitbucket.org/flowswitch/phison ? – leppie Feb 02 '15 at 09:14
  • Yes, Sorry. The 8051. – RenegadeTech Feb 02 '15 at 09:14

1 Answers1

2

The closest thing you'll find to a standard here is the USB Device Firmware Update (or "DFU") protocol. However, there are a number of major caveats:

  • Most USB devices do not have updatable firmware at all. The majority of devices have their functionality fully defined in hardware, or in mask ROM.

  • Of the devices that do have updatable firmware, most do not use USB DFU to do so.

  • Even of the few devices that do support USB DFU, most do not support the "UPLOAD" command to retrieve firmware from a device. (It serves very little purpose in most devices.)

If you run into one of the rare devices that does fully support DFU, you may be able to interact with it using dfu-util. However, this is very unlikely.

  • I don't believe this to be an actual answer to my question in any regard, only pointing out that a protocol exist of doing so, not directly answering the question. The DFU spec has a "DNLOAD" in their but no reference of any code implementations of which I was looking for. However, thank you for drawing my attention to dfu-util. – RenegadeTech Feb 02 '15 at 09:06
  • @RenegadeTech I can't really give a more direct answer without knowing what device you're working with. There's no single answer that'll work for everything. (Indeed, for many devices, the answer would simply be "you can't".) –  Feb 02 '15 at 22:50