So first, let’s run through WHY this is my ideal option for loading firmware, especially for hardware designed for mischief.
2/n
2/n
Bootloaders, OTA (Over The Air), etc are common for user friendly firmware updates. But they’re hidden pieces of code & prone to corrupting, which means a dead device or very painful recovery. & a great place to hide malicious code that persists between firmware updates 😈
3/n
3/n
In comparison, the OMG Programmer allows full erase & replace of all code that can be modified. That means the OMG devices are unbrickable! In fact, it opens the door to allowing intentional temporary bricking! (more on that later).
4/n
4/n
Ever use the same hardware between customers? You are likely risking exposing customer data. (ex: passwords & payloads being recovered because of flash wear-leveling).
mg.lol
Check your tools!
The OMG Programmer allows a complete removal between customers.
5/n
mg.lol
Check your tools!
The OMG Programmer allows a complete removal between customers.
5/n
You don’t even need to get an OMG Cable back to ensure a forensic wipe. You can remotely (or autonomously) trigger a “Self Destruct”. It bricks the Cable & erases all sensitive data. If you retrieve the Cable, just flash it with the Programmer & it’s fully functional again.
6/n
6/n
If your threat model includes device tampering in transit, the Programmer allows a full restore to known good. There is no executable code to hide in, unlike bootloaders and OTA.
Most people don’t bother & run whatever showed up in the mail anyway.
7/n
Most people don’t bother & run whatever showed up in the mail anyway.
7/n
Bootloaders often create host based detection opportunities by default, & via accidental bootloader triggering. Not stealth! The OMG Programmer triggers programming mode using power signaling that is completely outside of the USB spec. The host won’t ever see this
8/n
8/n
Bootloaders and OTA waste precious storage space and are only used during firmware updates. For some devices, it’s over 25% of total storage.
9/n
9/n
Most people actively avoid updating their hardware’s firmware because it’s a pain. But with our Webflasher, you just click next 3 times in a web browser. It’s so easy that it’s just part of setup, which means you always have the latest firmware.
10/n
10/n
So let’s look at HOW it works.
The OMG Programmer gives the same low level access that is used during factory production. You just plug the OMG Cable into the programmer, then the programmer into the computer. No buttons. No power cycle patterns. No extra signals.
11/n
The OMG Programmer gives the same low level access that is used during factory production. You just plug the OMG Cable into the programmer, then the programmer into the computer. No buttons. No power cycle patterns. No extra signals.
11/n
The Programmer sends a *power* signal that will never be found on a USB port. The Cable senses it & automatically switches to programming mode. This turns the USB lines into serial lines. Now you have full “factory level” access to a fully enclosed OMG Cable implant :)
12/n
12/n
Fort electronics friends, this is accomplished with a single voltage comparator inside the cable tied to some strapping pins on the microcontroller and a switch that routes the serial lines. The Programmer just sends 3v3.
Bonus: it’s forward compatible with Type C!
13/n
Bonus: it’s forward compatible with Type C!
13/n
Why not use pogo pads? No space!
What about break off pads? No space!
Plus, I really wanted to keep full access for all the above benefits.
Being able to have full access to a fully assembled device opens up a lot of pipeline flexibility too.
14/n
What about break off pads? No space!
Plus, I really wanted to keep full access for all the above benefits.
Being able to have full access to a fully assembled device opens up a lot of pipeline flexibility too.
14/n
If you want to add VCC signaling to your own device, it needs to be able to accept power outside of its standard operating voltage. A dedicated serial interface on the MCU helps, but you can also add a USB to X chip onboard.
Then just 1 comparator to trigger the magic.
15/n
Then just 1 comparator to trigger the magic.
15/n
@benmontour Which is basically my wish list after using v1 and doing support for it over the span of a year.
I’m gonna keep trying to ensure all future devices are compatible with it, but I am sure I will eventually have to deviate.
I’m gonna keep trying to ensure all future devices are compatible with it, but I am sure I will eventually have to deviate.
Loading suggestions...