YOTSUHACK

WORK

未知の OS を搭載した SHARP Brain 2021年モデルにて自作プログラムと U-Boot の動作に成功

f:id:puhitaku:20211117192911j:plain
Brain PW-B1 の基板

2021年に発売された新世代の SHARP Brain はハードウェアを一新して未知の OS を搭載してリリースされました。発売日に購入してこれらの変更を確認した後、私が発足した電子辞書ハックコミュニティ Brain Hackers のメンバー同士で協力しリバースエンジニアリングを進めました。

OS は後に μITRON ベースの RTOS と判明しましたが、追加アプリの仕様*1が当初不明だったためまず自作バイナリを動かす試みから始まりました。幸いにも外部から追加できるアプリのバイナリは先頭から機械語が並んでいる素朴なバイナリであることが判明したため、アセンブリ(後に libc のない簡素な C プログラム)で無限ループするか即座に return するだけのシンプルなバイナリを作成し実機で実行することに成功しました。

OS の API(Syscall, libc)も内部のページテーブルもまったく不明なため、画面の描画はおろか GPIO すら操作できないという状況でした。それを踏まえ考案した「正常に動けば無限ループし、異常が発生したら本体を再起動する」という1ビットの出力のみでリバースエンジニアリングを実行しました。仮想アドレス→物理アドレスの対応を探るための二分探索などを経て、ついに発売から1ヶ月未満で U-Boot の動作を達成できました。

2021年11月現在ではメンバーの貢献もあり、Linux kernel の実機動作も成功しています。

リポジトリ

github.com/brain-hackers/u-boot-brain

github.com

*1:以前は Windows CE が動いていたため exe (PE) だった

CONTACT

Takumi Sueda a.k.a. puhitaku
Sole Proprietorship / Freelance

末田 卓巳 (puhitaku)
屋号: ヨツハック
個人事業主 / フリーランス

FROM A COMPUTER WITH