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
13k
インサイドNintendo Switch
My talk @ kernelvm 関西 #8
Ren Kimura
November 18, 2017
Tweet
Share
More Decks by Ren Kimura
See All by Ren Kimura
Ideas for defeating Anti-Deep-Fakes
rkx1209
0
54
セキュリティベンチャーのリスク管理
rkx1209
0
100
ファジング+トリアージ技術を用いた脆弱性解析自動化
rkx1209
0
98
Introduction to Fuzzing
rkx1209
6
4.3k
ARM TrustZone エクスプロイト入門
rkx1209
7
8.2k
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
1.9k
カーネルエクスプロイトによるシステム権限奪取
rkx1209
13
7.8k
Other Decks in Programming
See All in Programming
DataformでPythonする / dataform-de-python
snhryt
0
120
PHPUnitの限界をPlaywrightで補完するテストアプローチ
yuzneri
0
360
대규모 트래픽을 처리하는 프론트 개발자의 전략
maryang
0
100
202507_ADKで始めるエージェント開発の基本 〜デモを通じて紹介〜(奥田りさ)The Basics of Agent Development with ADK — A Demo-Focused Introduction
risatube
PRO
6
1.3k
ZeroETLで始めるDynamoDBとS3の連携
afooooil
0
140
AI時代の『改訂新版 良いコード/悪いコードで学ぶ設計入門』 / ai-good-code-bad-code
minodriven
23
10k
バイブコーディング超えてバイブデプロイ〜CloudflareMCPで実現する、未来のアプリケーションデリバリー〜
azukiazusa1
3
760
バイブコーディングの正体——AIエージェントはソフトウェア開発を変えるか?
stakaya
4
460
Amazon Q CLI開発で学んだAIコーディングツールの使い方
licux
3
130
JetBrainsのAI機能の紹介 #jjug
yusuke
0
160
decksh - a little language for decks
ajstarks
4
21k
リバースエンジニアリング新時代へ! GhidraとClaude DesktopをMCPで繋ぐ/findy202507
tkmru
5
1.7k
Featured
See All Featured
Docker and Python
trallard
45
3.5k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
The Cult of Friendly URLs
andyhume
79
6.5k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
400
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
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
今後の課題 • エミュレーション方式の検討と実装 ◦ フォワーディング フルエミュレーション パススルー? • その他周辺機器のエミュレーション •
デバッガ等の開発環境の整備 これにはカーネルエクスプロイトによるハックが必 要 • をやめる