我正在对我的 Fujifilm HS20EXR 固件进行逆向工程。
我已经弄清楚了大部分,但我目前坚持我相当确定的是校验和。如果我修改它,相机说固件坏了。当然,当我修改固件有效负载时也会发生同样的事情。我尝试过 CRC32、CRC16、MD5sum,但我不知道如何重现校验和。
以下是固件文件的简要布局:
Size in bytes Description
4 Hardware or OS version
512 Model information (consistent on firmware updates for same model)
8 Firmware version
4 Checksum (different on all firmwares) In this case, `8A 73 D8 D4`, or 0xd4d8738a.
4 Checked several firmwares, generally just "1".
variable Payload (bit flipped)
(我已经对有效载荷进行了反汇编,但我无法
将字符串正确引用到代码中。)
任何意见或建议都会有很大帮助。
我已将代码存储在https://github.com/petabyt/fujifilm。如果你想尝试一下,你应该能够运行:
wget https://dl.fujifilm-x.com/support/firmware/hs20WAkw7ifA/FPUPDATE.DAT -O hs20exr.DAT
make t=u f=hs20exr.DAT