IQueDiagExtend
iQueDiagExtend is an extension for ique_diag.exe which adds additional commands to the ique_diag menu, such as reading the raw NAND or writing back modified data.
While ique_diag has functions in the exe that allow for reading/writing the raw NAND, unfortunately they're only ever used as part of other functions, with the raw NAND functions never exposed to the user.
iQueDiagExtend hooks into the ique_diag menu, allowing us to add our own custom commands that can make use of those functions.
Source code can be found at: https://github.com/emoose/iQueDiagExtend, with read-only builds available at https://github.com/emoose/iQueDiagExtend/releases.
Dumping
To dump a NAND, connect the iQue to a system (or an XP VM) which has the iQue@Home drivers installed and run the ique_diag.exe. Then press 'x', if DiagExtend is working it should print a list of custom commands added by the hook.
To start reading simply press 'B' (uppercase) to connect ique_diag to your device, and then press '2', progress on the dump will be printed every 16 blocks.
If the dump is successful a nand.bin (67,108,864 bytes) & spare.bin (65,536 bytes) will appear next to the ique_diag.exe. (you should move these files between dumps, so that new dumps can be written to a fresh file)
Writing
iQueDiagExtend also has support for writing back to the NAND, though the public iQueDiagExtend builds are missing these writing functions for safety reasons. You can easily compile a write-enabled build from source if you have VS2017 installed (or just ask for a build in the iQue Hacking discord)
To write back to the device, first put the nand.bin/spare.bin you want to write in the same folder as ique_diag.exe, then open ique_diag and press 'B' (uppercase) to connect.
If you want to write the full nand.bin/spare.bin to the device simply press '3', progress will be given as it writes.
Alternatively if you only wish to write certain blocks to the device you can add ranges. For example, typing '3 0-0x100,4075' will write from the nand.bin only blocks 0 through 256, and block 4075. This can be much faster than needing to write the whole NAND each time!
Hotswapping
Unfortunately there's many iQue devices that lack any kind of USB support, due to the SKSA on them being an older version.
Luckily, if you have another device that does have USB support, you can use that one to upgrade the non-USB card to a later USB-supporting SKSA version!
- Firstly, power on your USB-compatible unit with the USB-compatible card inside
- Once booted, plug in the unit to your machine over USB (it should appear under device manager as "iQue Player", as usual)
- Now with the unit still powered on, take the USB-compatible card out, and plug in the non-USB card
- On the PC open ique_diag.exe, and follow the steps in the "Dumping" / "Writing" section.
Make sure not to power off the iQue during this process, as it'll then try to boot up from the non-USB card.