mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
マスタリングツール関連のドキュメントを追加。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2259 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
2fbcd7c486
commit
8342327d46
87
docs/マスタリングツール/ビルド方法.txt
Normal file
87
docs/マスタリングツール/ビルド方法.txt
Normal 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の村上豊さんのみです。
|
||||
村上豊さんにお問い合わせください。
|
||||
|
||||
以上
|
||||
BIN
docs/マスタリングツール/仕様概要.pdf
Normal file
BIN
docs/マスタリングツール/仕様概要.pdf
Normal file
Binary file not shown.
BIN
docs/マスタリングツール/仕様概要.ppt
Normal file
BIN
docs/マスタリングツール/仕様概要.ppt
Normal file
Binary file not shown.
66
docs/マスタリングツール/使用方法.txt
Normal file
66
docs/マスタリングツール/使用方法.txt
Normal 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文字の文字列に置き換え、
|
||||
ゲームコードがその文字列であるとみなして、マスタリング処理を実行します。
|
||||
|
||||
以上
|
||||
BIN
docs/マスタリングツール/内部仕様.vsd
Normal file
BIN
docs/マスタリングツール/内部仕様.vsd
Normal file
Binary file not shown.
BIN
docs/マスタリングツール/外部仕様.xls
Normal file
BIN
docs/マスタリングツール/外部仕様.xls
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user