A project to disassemble the KBParadise V60Mini keyboard firmware.
With help from the following people:
Without your help, this project would not have been possible. Thanks everyone!
I take ABSOLUTELY NO responsibilities if your keyboard turns into an expensive brick! Use this at your own risk.
First, make sure your keyboard is:
THIS IS VERY IMPORTANT!
Use the updater from Windows to update the keyboard if not already done.
(WIP Note: this might not be necessary anymore)
You can find the original and patched version of the firmware exe in the firmware/
folder, along with their SHA1 sums:
https://github.com/pellettiero/V60Mini-firmhack/tree/master/firmware
Run this on Windows as Administrator to unlock the keyboard.
Remember to check the SHA1 sums just to be sure to avoid a brick.
If you want to do it the manual way, or just to disassemble the firmware itself:
If you want to decrypt the updater:
$ updater_decrypt.sh cykb112_v107.exe
You can disassemble the decrypted file with disassemble.sh
.
If you instead want to unlock the keyboard:
$ updater_patcher.sh cykb112_v107.exe
Get the output executable from the directory and run it on Windows with admin
permissions.
Fingers crossed!
(Still working on a way to do this from Linux itself)
The patched updater is checked with SHA1 to avoid arbitrary fuckups.
Check this issue to get an explanation of how the unlock works:
https://github.com/pok3r-custom/pok3r_re_firmware/issues/4
You can then try to dump the flash by using pok3rtool
:
Prerequisites: cmake git libusb libusb-compat
Clone the repo
$ git clone https://github.com/pok3r-custom/pok3rtool
Build
$ cd pok3rtool
$ git submodule update --init && cmake . && make pok3rtool
It will take a while, be patient.
Reboot into bootloader
$ sudo ./pok3rtool -t kbpv60 bootloader
Dump flash and reboot to firmware
$ sudo ./pok3rtool -t kbpv60 dump flash.bin
$ sudo ./pok3rtool -t kbpv60 reboot
Now you have a backup of the entire flash! Store this in a safe place, just in case of bricks.
It can be restored using a JTAG programmer/debugger.
You also might want to set a different firmware version to remind yourself this keyboard is now unlocked.
To do so:
$ sudo ./pok3rtool -t kbpv60 bootloader
$ sudo ./pok3rtool -t kbpv60 setversion 1.0.7u
$ sudo ./pok3rtool -t kbpv60 reboot
Just remember the small u
means "unlocked".
You'll be able to check the version using
sudo ./pok3rtool list
or
sudo ./pok3rtool -t kbpv60 version
(this command might only work with the keyboard in bootloader mode)