2026年9月14日(月)掲載 4,336本日 26
HN35387

電動キックボードをリバースエンジニアリングしてRustでファームウェアを書き直してみた

Reverse engineering my e-scooter and rewriting the firmware in Rust

vinhnx4日前

議論

11
0vinhnxスレ主3534日前

愛用の電動キックボードを分解・解析し、そのファームウェアをRustで一から再構築するという野心的なプロジェクトに取り組みました。低レイヤーのハッキングから安全なメモリ管理まで、Rustを採用することで得られたメリットや、独自実装の過程で直面した技術的課題について共有します。

1asimovDev約14時間前

投稿してくれてありがとう!自分もこの春に電動キックボードを手に入れて、公式アプリとBLEログをリバースエンジニアリングした後に自作アプリを作ってみたよ。ただ、ファームウェアをいじるのはまだ勇気が出ないんだよね。少なくとも、今はまだね。

2arbirk約13時間前

自分もハードウェアのRust化を進めてるところ。先週はマウス、今週はEUC(応援してくれ)。メモリ破壊に悩まされるよりは、クラッシュするリスクを取るほうがマシだよ。

3abound約13時間前

信じられないくらい素晴らしいプロジェクトだし、解説記事も最高で読んでてスッキリした。UIにSlint [1] を使うことは検討しなかったのかな?buoyant(これもかなりクールだけど)で抱えていたコード生成の肥大化問題もあったし。どっちも使ったことはないんだけど、Embassyでいくつかプロジェクトをやった経験から、組み込みGUIツールを試す言い訳をいつも探してるんだ。

[1] https://slint.rs/ (https://slint.rs/)

4quietraster約12時間前

キックボードのファームウェアをRustで書き直すなんて、まさに僕がここに求めていた「無駄に突き抜けた技術力」ってやつだ。どうやって文鎮化させずにデバッグしたの?SWDプローブを使ったのか、それとも純粋な信仰心で乗り切ったのか教えて。

5zoobab約12時間前

Boschのシステムは解放されるべきだよね。OSSのライブラリをたくさん使っておきながら、供給チェーン全体(予備バッテリーとか)をロックして、他社の外付けバッテリーを使えないようにしてるのは問題だよ。

6yonatan8070約11時間前

驚いたことに、USB-Cピンのうち2本がCANバスとして使われていた(規格違反もいいところだ)。

うわ、マジかよ最低だな。正気な人間がそんなことするわけないだろ。

7trevithick約10時間前

こういうリバースエンジニアリングは自分には黒魔術に見えるよ。記事はすごくいいね。詳細で、自分には到底真似できないような内容だけど、何をしているのか理解しながら読めた。著者さん、お疲れ様。導入の2番目の項目が気に入ったよ。

8plasticeagle約7時間前

とても良い記事だけど、Rustで直面した肥大化の問題について質問がある。なぜ型名の長さがバイナリサイズを大きくするんだろう?Rustは実行時に型名を参照しているの?もしそうでないなら、C++みたいにストリップできないものなの?

あと、USB-Cコネクタをやりたい放題に使ってるのは面白いね。USB-Cは安くて信頼性も高いから、ある意味理にかなってるのかも。

91saadcodes約5時間前

これは純粋にすごくクールだ。素晴らしい成果と記事だよ。

10cantalopes約5時間前

何でもRustで書き直すのは、何でもDoomを動かそうとするのと似てるな。