Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
インサイドNintendo Switch
Search
Ren Kimura
November 18, 2017
Programming
18
13k
インサイドNintendo Switch
My talk @ kernelvm 関西 #8
Ren Kimura
November 18, 2017
Tweet
Share
More Decks by Ren Kimura
See All by Ren Kimura
脅威解析概論
rkx1209
0
76
Ideas for defeating Anti-Deep-Fakes
rkx1209
0
80
セキュリティベンチャーのリスク管理
rkx1209
0
130
ファジング+トリアージ技術を用いた脆弱性解析自動化
rkx1209
0
120
Introduction to Fuzzing
rkx1209
6
4.3k
ARM TrustZone エクスプロイト入門
rkx1209
7
8.4k
The Game is Over. Nintendo switch has been totally compromised
rkx1209
9
5.2k
More efficient remote debugging with Thin Hypervisor
rkx1209
3
2.6k
Reverse Debugging with radare2
rkx1209
6
2k
Other Decks in Programming
See All in Programming
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
110
俺流レスポンシブコーディング 2025
tak_dcxi
13
7.7k
Querying Design System デザインシステムの意思決定を支える構造検索
ikumatadokoro
1
1.2k
【CA.ai #3】ワークフローから見直すAIエージェント — 必要な場面と“選ばない”判断
satoaoaka
0
210
分散DBって何者なんだ... Spannerから学ぶRDBとの違い
iwashi623
0
170
20 years of Symfony, what's next?
fabpot
2
310
開発に寄りそう自動テストの実現
goyoki
1
370
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
400
AIコードレビューがチームの"文脈"を 読めるようになるまで
marutaku
0
310
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
330
connect-python: convenient protobuf RPC for Python
anuraaga
0
350
Integrating WordPress and Symfony
alexandresalome
0
120
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.5k
GitHub's CSS Performance
jonrohan
1032
470k
Speed Design
sergeychernyshev
33
1.4k
Thoughts on Productivity
jonyablonski
73
5k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Into the Great Unknown - MozCon
thekraken
40
2.2k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Navigating Team Friction
lara
191
16k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Transcript
インサイド 関西
自己紹介 • るくす • 神戸大学大学院 • 興味 • 専門分野 ローラー
最近はチャージャーも勉強中
• 任天堂より 年 月 日に発売されたゲーム機 • 初期は というコードネームで開発が進められていた • 本体の左右両側に
を接続、分離して遊べる • ジャイロセンサーやタッチスクリーンも搭載 • ドックを使うとテレビへの出力も
Type CPU Cortex-A57 Memory 4GB GPU 256-core Maxwell Storage Toshiba/Samsung
32GB eMMC Wifi/BT Broadcom BCM4356XKUBG
• は の を した物。マイクロカーネル。 ◦ ではないので注意 の情報は間違ってます • ブラウザは
ベース に使用 • 実行バイナリフォーマットも独自の を採用 • アプリはロード後 と呼ばれるダイナミックリンカに よってアドレス再配置、及び のような初期化処理を行う。
バイナリフォーマット • の独自実行バイナリフォーマット • ゲームやアプリはこのフォーマット .text section ※各セクション本体は で圧縮されている パッキング
バイナリフォーマット • 独自の動的リンクライブラリフォーマット の 、 の • 署名された正規の のみロード可能 署名の検証は
フォーマットを利 用
バイナリフォーマット • や 内に埋め込まれているフォーマット • 動的リンクに必要な情報を管理する専用領域 Header(NRO) .text .rodata .data
Header(MOD) Module Objects... .dynamic unwind NRO Binary
ソフトウェア • という海外のチームが アプリケーション開発用 の簡単なライブラリとエミュレータを公開 • をポーティング ◦ 個のシステムコールを実装しただけのプロトタイプ •
エミュレータは をベースとした簡易な物 ◦ のフック機能を使って、システムコール発行等のイベントをキャッチして ログに出力するだけ。どちらかというと解析用途。 ReSwitched Team
解析ツール • 実行バイナリ解析、変換ツール ◦ 用の 実行バイナリを に変換するツール • 逆アセンブラ •
逆アセンブラ NRO support by @pancake NSO support by @RKX1209
None
セキュリティ事情 • チームが エクスプロイトを公開 ◦ 元々 氏がデモしていた物を として更に発展 • カーネルエクスプロイト
◦ 氏が 週間前に成功 技術的な詳細は不明 ◦ デバッグ用のシステムコール発掘に成功し、デバッガの開発まで行っている • 任天堂の公式情報によると、 の を利用している ◦ 暗号化や署名検証等の な処理は で実行されている可能 性
セキュリティ事情
エミュレータ • 現在 エミュレータ、 を開発中 ◦ 現段階で公になっている エミュレータはまだ無い • 進捗状況
ローダー完成。 エミュレータ を開発中 • 基本的なエミュレーション方式は エミュレータの を参考 • バイナリから への 変換方式 • 勿論、法的にグレーな怪しい機能は実装しない
None
今後の課題 • エミュレーション方式の検討と実装 ◦ フォワーディング フルエミュレーション パススルー? • その他周辺機器のエミュレーション •
デバッガ等の開発環境の整備 これにはカーネルエクスプロイトによるハックが必 要 • をやめる