Skip to content

Instantly share code, notes, and snippets.

@kurosabo
Last active August 3, 2023 03:16
Show Gist options
  • Save kurosabo/28b68409ef37f66e652ba068099a7cf3 to your computer and use it in GitHub Desktop.
Save kurosabo/28b68409ef37f66e652ba068099a7cf3 to your computer and use it in GitHub Desktop.

ファームウェアデコード

デコード方法は公開されているOSSソースコードに含まれている。
WAX206_V1.0.4.0_Source.rar\WAX206_V1.0.4.0_Source\tools\imgencoder\ 以下
なんと鍵までOSSとして公開されている。

適当にデコードするpythonスクリプトを書いた。

Telnetの有効化

  1. WEBインターフェースにログイン
  2. /debug_detail.htm にアクセス
  3. style="display: hidden" になってるEnable Telnetボタンを表示させる
  4. Enable Telnetボタンを押す
  5. Telnetは admin / WEBインターフェースパスワード でログインできる

参考文献

#!/usr/bin/env python3
import pathlib
from Crypto.Cipher import AES
key = rb"he9-4+M!)d6=m~we1,q2a3d1n&2*Z^%8"
iv = rb"J%1iQl8$=lm-;8AE"
fwfile = pathlib.Path('WAX206_Firmware_V1.0.4.0.img').open('rb')
header_size = 532
fwfile.read(header_size)
block_size = 0x20000
decfile = bytearray()
while block := fwfile.read(block_size):
block += b'\x00' * ((-len(block)) % 16)
aes = AES.new(key=key, mode=AES.MODE_CBC, iv=iv)
decfile.extend(aes.decrypt(block))
pathlib.Path('WAX206_Firmware_V1.0.4.0.dec.img').write_bytes(decfile)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment