富士胶片固件校验和

逆向工程 固件 吉德拉
2021-06-29 09:13:16

我正在对我的 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
1个回答

我已经想通了。我之前的一个测试做错了,结果证明这只是“将所有固件字节相加并确保它等于 X”的简单情况。