今回はFirmwareを解凍してみます。
解凍前のファームウエアの先頭から0x80のロケーションから解凍対象のファームウエアが入っています。
先頭の2バイトが圧縮されたブロックのブロックサイズです。曲者はこの2バイトはビッグエンディアンで入っています。ファームウエアの中身はリトルエンディアンです。
先人の遺産をちょこっと流用させていただいて(ソース公開の義務ありかも。指摘あれば公開します。)解凍プログラム書いてみました。
ダウロードはこちら。
対象はv2.11です。2024.3.25現在最新版はv2.13です。同じように解凍できます。
ファイルの先頭はBOOTPRAブロックです。赤枠が次のブロックへのロケーションとなっています。
途中までたどってくるとRTOSブロックがあります。ここがOSとアプリケーションになります。主にこれからここを調べていくことにします。
全体の最後の4バイトはチェックサムです。先頭から4バイト毎にすべて加算すると0になります。
次回から解凍したファームウエアを逆アセンブル、decompileしていきます。