Slide 1

Slide 1 text

インサイド 関西

Slide 2

Slide 2 text

自己紹介 ● るくす ● 神戸大学大学院 ● 興味 ● 専門分野 ローラー 最近はチャージャーも勉強中

Slide 3

Slide 3 text

● 任天堂より 年 月 日に発売されたゲーム機 ● 初期は というコードネームで開発が進められていた ● 本体の左右両側に を接続、分離して遊べる ● ジャイロセンサーやタッチスクリーンも搭載 ● ドックを使うとテレビへの出力も

Slide 4

Slide 4 text

Type CPU Cortex-A57 Memory 4GB GPU 256-core Maxwell Storage Toshiba/Samsung 32GB eMMC Wifi/BT Broadcom BCM4356XKUBG

Slide 5

Slide 5 text

● は の を した物。マイクロカーネル。 ○ ではないので注意 の情報は間違ってます ● ブラウザは ベース に使用 ● 実行バイナリフォーマットも独自の を採用 ● アプリはロード後 と呼ばれるダイナミックリンカに よってアドレス再配置、及び のような初期化処理を行う。

Slide 6

Slide 6 text

バイナリフォーマット ● の独自実行バイナリフォーマット ● ゲームやアプリはこのフォーマット .text section ※各セクション本体は で圧縮されている パッキング

Slide 7

Slide 7 text

バイナリフォーマット ● 独自の動的リンクライブラリフォーマット の 、 の ● 署名された正規の のみロード可能 署名の検証は フォーマットを利 用

Slide 8

Slide 8 text

バイナリフォーマット ● や 内に埋め込まれているフォーマット ● 動的リンクに必要な情報を管理する専用領域 Header(NRO) .text .rodata .data Header(MOD) Module Objects... .dynamic unwind NRO Binary

Slide 9

Slide 9 text

ソフトウェア ● という海外のチームが アプリケーション開発用 の簡単なライブラリとエミュレータを公開 ● をポーティング ○ 個のシステムコールを実装しただけのプロトタイプ ● エミュレータは をベースとした簡易な物 ○ のフック機能を使って、システムコール発行等のイベントをキャッチして ログに出力するだけ。どちらかというと解析用途。 ReSwitched Team

Slide 10

Slide 10 text

解析ツール ● 実行バイナリ解析、変換ツール ○ 用の 実行バイナリを に変換するツール ● 逆アセンブラ ● 逆アセンブラ NRO support by @pancake NSO support by @RKX1209

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

セキュリティ事情 ● チームが エクスプロイトを公開 ○ 元々 氏がデモしていた物を として更に発展 ● カーネルエクスプロイト ○ 氏が 週間前に成功 技術的な詳細は不明 ○ デバッグ用のシステムコール発掘に成功し、デバッガの開発まで行っている ● 任天堂の公式情報によると、 の を利用している ○ 暗号化や署名検証等の な処理は で実行されている可能 性

Slide 13

Slide 13 text

セキュリティ事情

Slide 14

Slide 14 text

エミュレータ ● 現在 エミュレータ、 を開発中 ○ 現段階で公になっている エミュレータはまだ無い ● 進捗状況 ローダー完成。 エミュレータ を開発中 ● 基本的なエミュレーション方式は エミュレータの を参考 ● バイナリから への 変換方式 ● 勿論、法的にグレーな怪しい機能は実装しない

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

今後の課題 ● エミュレーション方式の検討と実装 ○ フォワーディング フルエミュレーション パススルー? ● その他周辺機器のエミュレーション ● デバッガ等の開発環境の整備 これにはカーネルエクスプロイトによるハックが必 要 ● をやめる