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
インサイドNintendo Switch
Search
Ren Kimura
November 18, 2017
Programming
18
12k
インサイドNintendo Switch
My talk @ kernelvm 関西 #8
Ren Kimura
November 18, 2017
Tweet
Share
More Decks by Ren Kimura
See All by Ren Kimura
Introduction to Fuzzing
rkx1209
6
4.1k
ARM TrustZone エクスプロイト入門
rkx1209
7
7.8k
The Game is Over. Nintendo switch has been totally compromised
rkx1209
9
5k
More efficient remote debugging with Thin Hypervisor
rkx1209
3
2.5k
Reverse Debugging with radare2
rkx1209
6
1.8k
カーネルエクスプロイトによるシステム権限奪取
rkx1209
13
7.6k
$Hell on Sony Snatch the Kernel privilage from Browser
rkx1209
6
25k
Linuxカーネルクローンの作り方
rkx1209
3
940
解析基盤技術を用いた効率的なソフトウェアテスト
rkx1209
2
1.4k
Other Decks in Programming
See All in Programming
Effective Signals in Angular 19+: Rules and Helpers
manfredsteyer
PRO
0
110
Beyond ORM
77web
7
940
[JAWS-UG横浜 #76] イケてるアップデートを宇宙いち早く紹介するよ!
maroon1st
0
480
「Chatwork」Android版アプリを 支える単体テストの現在
okuzawats
0
180
テストコード書いてみませんか?
onopon
2
130
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
3
480
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
4
290
useSyncExternalStoreを使いまくる
ssssota
6
1.2k
Recoilを剥がしている話
kirik
5
6.8k
StarlingMonkeyを触ってみた話 - 2024冬
syumai
3
270
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
830
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Six Lessons from altMBA
skipperchong
27
3.5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
Designing Experiences People Love
moore
138
23k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Agile that works and the tools we love
rasmusluckow
328
21k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Gamification - CAS2011
davidbonilla
80
5.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Designing for Performance
lara
604
68k
Writing Fast Ruby
sferik
628
61k
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
今後の課題 • エミュレーション方式の検討と実装 ◦ フォワーディング フルエミュレーション パススルー? • その他周辺機器のエミュレーション •
デバッガ等の開発環境の整備 これにはカーネルエクスプロイトによるハックが必 要 • をやめる