開発環境構築と3DS Homebrew開発

Nintendo 3DSに関する話題
フォーラムルール
フォーラムをご利用するにあたってのルールは以下に記載してあります。
初めてご利用になる方へ:最初にお読みください

開発環境構築と3DS Homebrew開発

未読記事by 173210 » 2014年5月18日(日) 21:28

はじめに
 現在3DSハックでは大きな成果が挙げられています。特にGatewayチームによるDS Profile Exploitやその他の脆弱性はとても強い権限でコードを実行することを可能にしています。今や3DS向けのHomebrewを作成することも、制限はあるものの容易に出来ます。
 しかし、3DSに対する注目は大きいものではありません。多くの人はHomebrewが開発可能であることを知ってさえもいません。実際、私がHello Worldを開発してスクリーンショットを上げた時には、多くの人がそれに驚き、どんどんリツイートされました。
 そこで、この状況を日本で少しでも改善し、受験が終わって私が開発に戻った時に他人の成果を流用するため、このスレッドを立てました。

このスレッドについて
 このスレッドでは3DS開発に関する情報を共有します。関連する話題は自由に書き込んでください。
 専門的な話題を多く含みます。プログラミングに関する知識 (C言語, GCC, GNU make等) が必要です。
最後に編集したユーザー 173210 [ 2014年5月18日(日) 22:30 ], 累計 1 回
173210
 
記事: 23
登録日時: 2011年7月12日(火) 20:09

開発環境構築と3DS Homebrew開発

スポンサードリンク

スポンサードリンク
 

開発環境構築とHomebrew開発

未読記事by 173210 » 2014年5月18日(日) 21:29

環境構築
1. devkitARMをインストールする
2. Pythonをインストールする
これらの方法は割愛します。詳細はググってください。
3. 1, 2でインストールしたプログラムにパスを通す
Windowsの場合、通常、devkitARMのバイナリへのパスは次のようになっています。
コード: 全て選択
C:\devkitPro\devkitARM\bin

これらを環境変数PATHに追加してください。詳細はググってください。

これで準備は完了です。次のコマンドで動作確認できます。
コード: 全て選択
arm-none-eabi-gcc -v
python --version


Homebrew開発
 ここではDS Profile Exploitについて説明します。
 ここではいくつかの専門用語が出てきます。不明な用語があった場合には3dbrewを参照してください。

DS Profile Exploitでできること
 DS Profile ExploitではARMv6kのコードを実行できます。

 3dsploit.pyとS0.DAT
  DS Profile Exploitで使用出来るLauncher.datを作成するツールは2つあります。
 ひとつは3dsploit.pyで、もうひとつはS0.DATです。
 それぞれ以下で入手できます。
 naehrwert/p3ds · GitHub
 173210/ctrhw · GitHub
  これらはそれぞれバイナリが読み込まれるアドレスとフレームバッファのアドレスが異なります。
 ・3dsploit.py
  バイナリ: 0x080C3EE0
  上画面左: 0x20184E60, 0x201CB370
  上画面右: 0x20282160, 0x202C8670
  下画面: 0x202118E0, 0x20249CF0
 ・S0.DAT
  バイナリ: 0xF1000000
  上画面左: 0xF0184E60, 0xF01CB370
  上画面右: 0xF0282160, 0xF02C8670
  下画面: 0xF02118E0, 0xF0249CF0

  S0.DATは3dsploit.pyより強い権限でコードを実行できます。例えば、Configuration Memoryの読み書きができます。

 Service
  3DSではファイル操作等のほとんどのことをServiceを用いて行います。
 しかしDS Profile Exploitでは完全には扱えていません。使えないものと考えたほうが良いでしょう。

 SVC (Supervisor Call, System Call)
  これは自由に扱えます。スレッドの作成等が可能です。

プログラムの作成
 これは説明するよりコードを見たほうがいいと思うので、既存のHomebrewのコードを紹介します。

 173210/ctrhw · GitHub
 St4rk/Chip8-ARM11 · GitHub
 insaneKane/3DS_Homebrew_Stuff2 · GitHub
 Aliakr18/mandelbrot · GitHub
 nop90/3DS_Homebrew · GitHub
173210
 
記事: 23
登録日時: 2011年7月12日(火) 20:09


Return to 3DS

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[22人]

cron