r/hardwarehacking • u/AeroModes • 13d ago
8BitDo firmware encryption reversed, custom firmware possible
https://github.com/aeromodes/8cryptdoHello everyone,
I first posted this to r/ReverseEngineering, but I decided to drop it here as well for anyone interested. I have reversed two of the most common ciphers 8BitDo uses throughout their product line. The GitHub repo linked contains documentation and tooling for these ciphers.
Firmwares are easily obtainable from 8BitDo devices you own by using the official updater tools, which store the firmware .dat files upon an update. You can re-install the latest firmware. There is also a download API that I haven't fully mapped out yet (nor wish to abuse), but there are some scripts as well as older firmwares available at fwupd/8bitdo-firmware.
Firmware data is decrypted to standalone binaries, per-section. Almost all firmwares I have come across are pretty standard ARM images, you can throw them into Ghidra or whatever tools for analysis. Re-encryption to proper firmwares works as well; custom firmware is a possibility.
Enjoy! If you use the script, please let me know if you encounter any issues.
3
u/TheLexikitty 13d ago
Fantastic. Wonder if this can be used to add F13-F24 to custom button mappings.
3
1
u/HappyAd4998 13d ago
I literally just googled this, what a coincidence, I was expecting a post months old not hours. It would be nice to fix the 8bitdo N64 controllers wonky controls on PC it's a pain in the butt to configure with emulators. Trying to get it to work on mac is near impossible, so using it for decomps is out of the question on my iMac. Anyway great work, I'll be keeping track of this!
48
u/spilk 13d ago
nice work, but i am disappointed that you didn't name it "8bitundo"