マスタリングツール関連のドキュメントを追加。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2259 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
nishikawa_takeshi 2008-08-25 06:38:54 +00:00
parent 2fbcd7c486
commit 8342327d46
6 changed files with 153 additions and 0 deletions

View File

@ -0,0 +1,87 @@
* ---------------------------------------------------
*
* TWL マスタリングツール 作成方法
*
* ---------------------------------------------------
* ---------------------------------------------------
* 手順
* ---------------------------------------------------
マスタリングツールは、TWLにおける暗号の秘密鍵を内部に持つツールです。
そのため、このツールが流出するとTWLの暗号が破られてしまいます。
(自作のゲームソフトや違法なゲームソフトを量産機で起動できてしまいます。)
その対策として、マスタリングツールの実行バイナリ(.exe)自体に暗号をかけ、
特殊なUSBキーをPCに挿さないと、復号できない仕組みを導入しています。
この対策によって、マスタリングツールの実行バイナリが流出しても、
秘密鍵が漏れることはないうえ、USBキーを持たないユーザは実行できません。
上記の対策を実現するために、マスタリングツールの作成方法は、
以下の2ステップに分かれます。
(Step1.) マスタリングツールのコンパイル
(Step2.) 実行バイナリの暗号化
[用語の定義]
・エンベロープ: Step2.の実行バイナリの暗号化処理
・ドングル: ツール実行のために必要な特殊なUSBキー
* ---------------------------------------------------
* (Step1.) マスタリングツールのコンパイル
* ---------------------------------------------------
このステップでは、マスタリングツールのソースをコンパイルします。
(注意!)
この作業だけでは、マスタリングツールの実行バイナリは暗号化されないため、
ツールが流出すると、誰でもマスタリングが可能になってしまいます。
(1) 準備
以下のパッケージが必要です。
○ TWLIPL_private
マスタリングツールのソースを含むパッケージ。
秘密鍵の生データを含むため、流出させない管理が必要です。
そのため、USBメモリ内にリポジトリとツリーが置かれ、
そのUSBメモリは指紋認証キャビネットで管理されています。
したがって、このパッケージを入手するには、
指紋認証キャビネットへの指紋の登録が必要です。
○ TwlSDK
いくつかのライブラリを使用しています。
○ TwlIPL
いくつかのインクルードファイルを使用しています。
ビルド前に、以下の環境変数に各ツリーのルートを指定しておく必要があります。
-- TWLSDK_ROOT
-- TWL_IPL_RED_ROOT
-- TWL_IPL_RED_PRIVATE_ROOT
(2) 方法
make してください。
(3) ビルドスイッチ
mastering.h には、各種のビルドスイッチが宣言されていますので、
適宜、変更してください。
* ---------------------------------------------------
* (Step2.) 実行バイナリの暗号化(エンベロープ)
* ---------------------------------------------------
(1) 準備
以下の機材が必要です。
○ エンベロープ用USBキー
実行用のUSBキーとは異なります。ソフトGの村上豊さんが所有しています。
○ エンベロープソフト
PCソフトです。ソフトGが所有しています。
(2) 方法
現在、エンベロープが可能なのは、ソフトGの村上豊さんのみです。
村上豊さんにお問い合わせください。
以上

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,66 @@
* ---------------------------------------------------
*
* TWL マスタリングツール 使用方法
*
* ---------------------------------------------------
(1) マスタリングツールとは
PC用ツール。
TWLのROMバイナリに含まれる開発機用の暗号データを量産機用データに置き換える。
(2) 使用に必要な機材
・マスタリングツール実行バイナリ(mastering.TWL.exe)
・Windows XP搭載PC
・cygwin
・実行用USBキー(通称 USBドングル)
(3) 使用方法
コマンドラインから以下の引数をつけて実行してください。
% mastering.TWL.exe [オプション] input_file output_file
○引数
input_file : 開発機用ROMファイル(srl)名
output_file : 量産機用ROMファイル(srl)名
(注意)
・input_file と output_file に同じ名前を指定することはできません。エラーとなります。
・output_file と同じ名前のファイルが存在すると、上書き確認メッセージが出力されます。
このとき'y'を入力すると出力データが上書きされます。
一方、'n'を入力するとマスタリングをせずに終了します。
○実行結果
成功すると、"mastering succeeded" の文字が表示されてプログラムが終了します。
失敗すると、エラーが発生した箇所と要因およびエラーコードが表示されてプログラムが終了します。
失敗したときには output_file は自動的に削除されます。
output_file に既存のファイル名を指定したときには、失敗時に削除されますのでご注意ください。
○特殊な入力に対する処理
ゲームコードが"NTRJ"であるプログラム(検査用プログラムなど)は、
以下の点で、通常のゲームソフトとはマスタリング処理が異なります。
・KeyTable2の算出が不可能であるとみなされ、エラー終了となる。
後述の -t オプションで強制的に算出可能。
・KeyTable1領域にデータが強制的にライトされる。
○通常オプション
-h : 使用方法を表示して終了します。
-v : 処理の経過などの詳細なメッセージを表示します。
-r : 逆マスタリング(逆変換)モード。
マスタリング後のROMファイルをマスタリング前のROMファイルに戻します。
-f : 上書き確認をせずに output_file にマスタリング後のROMデータをライトします。
○特殊オプション
-s : SDカードブートアプリ専用の秘密鍵で署名をつけます。
input_file がセキュアアプリであるときのみ指定可能です。
-t : input_file のゲームコードが"NTRJ"であるときにも、
エラー終了せずに、強制的に KeyTable2 を算出してライトします。
-p : ROMヘッダ内の開発用暗号が旧バージョンで、かつROMファイルがクローンブート対応ソフトのとき、
マスタリングによって署名に矛盾が生じるため、本来では、エラー終了しますが、
このオプションによって、上記のエラー判定なしにマスタリングが実行されます。
-g NEW_GAME_CODE :
input_file のゲームコードが"NTRJ"のときのみ、
ROMヘッダ内のゲームコード(およびTITLE ID)を
NEW_GAME_CODE で指定した任意の4文字の文字列に置き換え、
ゲームコードがその文字列であるとみなして、マスタリング処理を実行します。
以上

Binary file not shown.

Binary file not shown.