Digic8 Oracle
Where
Talks
hack.lu 2025
Duration
31 min
Shows how emulating a camera's firmware crypto routine can decrypt and verify Canon DIGIC 8 update files.
Summary
Laurent Clevy opens with his interest in Canon digital cameras as a playground for file formats and cryptography, and his goal of running native code on a recent EOS model. He examines Canon's firmware update files, which contain a small updater that runs a stripped-down operating system to write new firmware to flash. Both parts are signed and encrypted, and a region table defines which byte ranges each signature covers.
Comparing the old and new formats, the layout is largely unchanged, but the signature section now holds four values instead of two and the decryption routine is smaller, so old keys no longer work. He dumped firmware with a hidden script, then ran a crypto routine copied into RAM under Unicorn emulation without extracting its algorithm or key. Since one key is reused across several DIGIC 8 models, a dump from one camera could decrypt an update for another, which he calls an oracle. Crypto constants such as an S-box and the SHA-256 K table then helped locate hashing and verification functions, which he matched to the region table before scripting decryption and signature checks.
The main takeaway is that asymmetric signatures make forging valid updates far harder on newer cameras, and Canon changed keys again later. In questions, he noted that no integrity check was found at boot, so writing flash directly would be risky. For practitioners, emulation offered a quick route to understanding an unfamiliar scheme with little manual reversing.
Related talks
Talks·50 min
Average Joe
Shows how consumer router firmware is pulled from debug ports and flash chips, then tested for a buffer overflow.
Talks·53 min
yltsi
Ranks ways to source hardware for embedded security research by cost, effort, ownership and ethical risk.
Talks
Shows how a 1983 Apple II hardware copy protection is cracked without any prior knowledge of its design.


