Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
kernelvm-brain-net
Search
らすぴー
May 11, 2025
Technology
0
940
kernelvm-brain-net
「電子辞書Brainをネットにつなげてみた」
らすぴー
May 11, 2025
Tweet
Share
More Decks by らすぴー
See All by らすぴー
限界環境CPython rev. seccamp2025
raspython3
0
28
kernel-vm-ittekita-yuukousai
raspython3
0
72
pyconjp2024-wince
raspython3
0
21
seccamp2024-edictionary-python-TLS
raspython3
0
22
Other Decks in Technology
See All in Technology
20251219 OpenIDファウンデーション・ジャパン紹介 / OpenID Foundation Japan Intro
oidfj
0
290
障害対応訓練、その前に
coconala_engineer
0
140
Kiro を用いたペアプロのススメ
taikis
3
920
AIBuildersDay_track_A_iidaxs
iidaxs
3
400
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
4
140
寫了幾年 Code,然後呢?軟體工程師必須重新認識的 DevOps
cheng_wei_chen
1
1.5k
シニアソフトウェアエンジニアになるためには
kworkdev
PRO
3
200
IAMユーザーゼロの運用は果たして可能なのか
yama3133
2
510
Amazon Bedrock Knowledge Bases × メタデータ活用で実現する検証可能な RAG 設計
tomoaki25
6
1.4k
大企業でもできる!ボトムアップで拡大させるプラットフォームの作り方
findy_eventslides
1
860
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
7
1.6k
Lookerで実現するセキュアな外部データ提供
zozotech
PRO
0
180
Featured
See All Featured
How to Ace a Technical Interview
jacobian
281
24k
My Coaching Mixtape
mlcsv
0
7
30 Presentation Tips
portentint
PRO
1
170
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
64
Git: the NoSQL Database
bkeepers
PRO
432
66k
Deep Space Network (abreviated)
tonyrice
0
18
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The SEO identity crisis: Don't let AI make you average
varn
0
32
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
400
Building Adaptive Systems
keathley
44
2.9k
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をぜひ覗きに来てください • ご清聴ありがとうございました