Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
kernelvm-brain-net
Search
らすぴー
May 11, 2025
Technology
0
770
kernelvm-brain-net
「電子辞書Brainをネットにつなげてみた」
らすぴー
May 11, 2025
Tweet
Share
More Decks by らすぴー
See All by らすぴー
kernel-vm-ittekita-yuukousai
raspython3
0
58
pyconjp2024-wince
raspython3
0
10
seccamp2024-edictionary-python-TLS
raspython3
0
13
Other Decks in Technology
See All in Technology
急成長を支える基盤作り〜地道な改善からコツコツと〜 #cre_meetup
stefafafan
0
120
Javaで作る RAGを活用した Q&Aアプリケーション
recruitengineers
PRO
1
110
HiMoR: Monocular Deformable Gaussian Reconstruction with Hierarchical Motion Representation
spatial_ai_network
0
110
AWS Summit Japan 2025 Community Stage - App workflow automation by AWS Step Functions
matsuihidetoshi
1
260
Fabric + Databricks 2025.6 の最新情報ピックアップ
ryomaru0825
1
130
AWS テクニカルサポートとエンドカスタマーの中間地点から見えるより良いサポートの活用方法
kazzpapa3
2
540
5min GuardDuty Extended Threat Detection EKS
takakuni
0
140
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
270
AIのAIによるAIのための出力評価と改善
chocoyama
2
550
Snowflake Summit 2025 データエンジニアリング関連新機能紹介 / Snowflake Summit 2025 What's New about Data Engineering
tiltmax3
0
310
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
180
A2Aのクライアントを自作する
rynsuke
1
170
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Designing for humans not robots
tammielis
253
25k
Become a Pro
speakerdeck
PRO
28
5.4k
Unsuck your backbone
ammeep
671
58k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Practical Orchestrator
shlominoach
188
11k
Rails Girls Zürich Keynote
gr2m
94
14k
Producing Creativity
orderedlist
PRO
346
40k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Gamification - CAS2011
davidbonilla
81
5.3k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Transcript
@raspython3
活動名 RasPython3 / らすぴー X: @raspython3 普段やってること 各種ウェブツールづくり Discordのボットづくり Linuxいじり
電子辞書いじり ネットワーク関連 etc.
• 低レイヤー初心者 • 低レイヤーの祭典で発表する癖に低レイヤー初心者(オイ) • お手柔らかに… • 登壇初心者 • 軽いノリで登壇してるくせに発表慣れしていません(なぜ)
• 発表資料は多分読みにくいです(致命的) • 声も聞き取りづらいかもしれません(絶望的) • 盛り上げようとしてスベることが多々あります(悲惨) • 温かい目で見守ってくださると幸いです…
None
• SHARPの電子辞書シリーズ • Windows CE(WinCE)が動作 • 2021年以降のモデルは別OS • 2chなどで自作アプリやハックが 盛んだった
SHARP Brain SH-PW7-W 自分が持ってる機体の色違い
None
• 以前から「ネットに繋げたい」という 話題はあった • 2013年 Wi-Fi内蔵のmicroSDアダプタが発見される https://web.archive.org/web/20210128000211/https://awabi.5ch.net/test/ read.cgi/dgoods/1356628236/ >>41 •
2014年 Grain氏が前述アダプタを活用するツールの開発開始 https://web.archive.org/web/20210128233622/https://yomogi.5ch.net/test /read.cgi/dgoods/1407588165/ >>12 PQI Air Card
• 2015年 Grain氏のツール開発ペースがゆっくりだったためかアンチ出現 ネットの話題になるとスレが荒れるように • 以降、ネットの話題を出すとスレが激しく荒れる • Grain氏のツールも(調べた限り)現在まで公開されていない • 「ネット接続は不可能」とされ、ネットの話題はタブーに
• 2019年-2020年 puhitaku氏らがBrainで動作するLinux「Brainux」を開発 Brainuxの登場により、 USBでPCと接続することで Brainがインターネットに つながるように! Brainux
• RNDIS(Remote Network Driver Interface Specification) ↑重要(後で出てきます) • Microsoftが作ったプロトコル •
USBなどを仮想ネットワークアダプタ として扱う(のだと思う) https://learn.microsoft.com/ja-jp/windows-hardware/drivers/network/overview-of-remote-ndis--rndis-
None
遡ること1か月前… (kernelvmで発表するのにちょうどいいネタないかなぁ…) (…せや!) (Brain→)
を使わずにネットつなげてみよ!
『Brainux抜きの ── WinCEのBrainで ── ネットに接続する』 2008年にBrainが発売されてから数多くの先人が 挑戦し儚くも散っていった、いわば 「絶対に越えられない壁」であった
だから開始当初は 「どうせ無理だけどね」 ぐらいにしか思っていなかった
これがBrainの歴史を大きく変えることになるとは 夢にも思っていなかったのである────── (諸説あり)
None
• 作戦 Brainuxと同じ方法(RNDIS)でつなげよう! • 根拠 Brainuxが動いていても、ハード面での 違いはない →ソフト面をどうにかしたら 動くんじゃね?
• コントロールパネルにRNDISの項目あったはず… • RNDISに切り替えても何も起こらないけどね
• 切り替えた時にログが出てるぞ!?
• 以下の表のように対応してた IOCTL_UFN_CHANGE_CURRENT_CLIENT USBFN_1_0 -> ? コントロールパネルでの項目名 Serial_Class ActiveSync Mass_Storage_Class
MSC RNDIS RNDIS Personal_HealthCare_Class PHDC
• どこだったっけ… • レジストリだ!!!
• USBのファンクションドライバの項目がある • コントロールパネルで切り替えても うんともすんともな項目は、レジストリのキーが存在しない (RNDISやPersonal_HealthCare_Classが無いよね)
• ほかの項目のレジストリを見る限り、レジストリ設定と ドライバのDLL(動的リンクライブラリ)しか見つからなかった • レジストリ設定とドライバを用意したら動くのでは?
• 実験 ほかのドライバのレジストリ設定をコピペしてみる • 結果 コントロールパネルでRNDISを選択すると、コピペ元の ドライバが動作した(成功) • この方針でよさそう
• レジストリ設定とDLLはどうやって用意すれば…? • レジストリ設定のほうはネットで漁りまくってなんとなーく わかった • ドライバの書き方が… • 低レイヤーもっと早く入門しておけばよかった…
• 調べて分かったこと • Windows系OSのRNDISドライバはMicrosoftが用意しているらしい • WinCEもどうやら上に同じのよう • 自分で書くのはすぐには難しそう
• ん?待てよ • 「MicrosoftがRNDISドライバ用意してる」 • じゃあRNDIS有効化したWinCEをビルドできるのでは? • ビルドしたWinCEからRNDISのドライバを取り出せば勝ち
• WinCEはMicrosoft Visual Studio 2005/2008(VS2005/2008) でビルドできる • VS2005/2008の評価版なら何とか入手可能 • ビルドのやり方はこのページを参考に
https://brain.fandom.com/ja/wiki/CE%E3%82%92%E3%83%93%E3 %83%AB%E3%83%89%E3%81%99%E3%82%8B
None
• RNDISの項目を発見
• ビルド成功! • RNDISのドライバと、ついでにレジストリ設定も入手 • これで必要なものはそろった
• BrainにRNDISのあれこれを送り込んで、USBでPCと接続 • コントロールパネルでRNDISを選択すると…あれ?
• BrainがなぜかCOMポートとして認識される • 原因 レジストリに追加の設定が必要だった • レジストリを更新して再トライ
キタ━━━━━━━━!!
• Brainuxと同じようにPCの設定をしてやれば… • 作業開始から1週間で ネット接続に成功 • 無事kernelvmのネタ にできました
None
None
• 結構いろいろできる 実は本日の発表は… 電子辞書を使ってやってました。
• ウェブサイト閲覧 • Opera miniやその他ブラウザでサイト閲覧が可能 • HTML5対応のブラウザも存在 • リモートデスクトップ •
今使ってるやつ • WinCEで動作するVNCサーバーがある • マウスとキーボードが使えるのがすごくうれしい
• ファイルサーバー • FTPサーバーが動作する(Pythonのpyftpdlibなど) • リモートデスクトップと組み合わせて完全リモート開発も • その他 • オンラインゲーム
• Simutrans, etc. • サーバー運用 • Python3.10も動作する • というかほぼなんでもできると思う(プログラムを書けば)
None
• Chromebookとは • Google開発の「ChromeOS」搭載のノートPC • ICT教育推進で学校での導入が進む • らすぴー自身も高校で使ってた • これを使ってPythonをBrainに移植したり(?)
• 使わない授業で机の上に出していると 注意されることも(当たり前) NEC Chromebook Y2
• Chromebook+Brainでネットサーフィンがしたいじゃない? • 全学生の夢!(諸説あり) • 先生にとってはそれをされると嫌だとは思うけどね… • Brainuxでは駄目なのか? • 先生が近づいてきたときにとっさに言い訳できない
• 「今何やってたの?ちょっとそれ見せて」で詰む • WinCEならすぐに「ただの電子辞書」に偽装できる
• 実際に試してみた • 結果 • BrainとChromebookの接続は成功 • イーサネットとして認識された • Brainからインターネットには出られなかった
• Wi-Fiとイーサネットのブリッジのやり方が不明 • 誰か詳しい方~() • ちなみに悪用は防げる • 電子辞書にケーブル刺してる学生がいたら怪しいね • 良い子のみんなは真似しないでね
• リモートデスクトップはできた • Chormebookのほうに VNCサーバーを入れれば BrainからChromebookを 操作できるかも?
• まさか1週間で成功するとは思わなかったよね… • 現在進行形で状況が変化しているので興味ある方は Brain Hackersをぜひ覗きに来てください • ご清聴ありがとうございました