今回はFirmwareを解凍してみます。

解凍前のファームウエアの先頭から0x80のロケーションから解凍対象のファームウエアが入っています。

先頭の2バイトが圧縮されたブロックのブロックサイズです。曲者はこの2バイトはビッグエンディアンで入っています。ファームウエアの中身はリトルエンディアンです。

先人の遺産をちょこっと流用させていただいて(ソース公開の義務ありかも。指摘あれば公開します。)解凍プログラム書いてみました。

 

ダウロードはこちら。

 

対象はv2.11です。2024.3.25現在最新版はv2.13です。同じように解凍できます。

 

 

ファイルの先頭はBOOTPRAブロックです。赤枠が次のブロックへのロケーションとなっています。

 

途中までたどってくるとRTOSブロックがあります。ここがOSとアプリケーションになります。主にこれからここを調べていくことにします。

 

全体の最後の4バイトはチェックサムです。先頭から4バイト毎にすべて加算すると0になります。

 

次回から解凍したファームウエアを逆アセンブル、decompileしていきます。