マスタエディタ:アクセスコントロール情報の各ビットに対し個別にエラーを出すように変更。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlToolsRED@202 7061adef-622a-194b-ae81-725974e89856
This commit is contained in:
nishikawa_takeshi 2009-03-04 11:39:33 +00:00
parent 760b980921
commit 48cf7a88a5
10 changed files with 184 additions and 52 deletions

View File

@ -199,7 +199,7 @@ void Form1::setSrlForms(void)
}
if( this->hSrl->IsCommonClientKeyForDebugger == true )
{
acc += "commonClientKey(Debug).\r\n";
acc += "commonClientKey(Debugger).\r\n";
}
this->tboxAccessOther->Text = acc;

View File

@ -6,7 +6,6 @@
#define METWL_LIGHT_CHECK // 提出条件を緩くするか
// 定数
#define METWL_ERRLIST_NORANGE 0 // エラーのアドレス範囲を指定しないことを表す特別な値
#define METWL_ROMSIZE_MIN 256 // 最小のデバイス容量 256Mbit
#define METWL_ROMSIZE_MAX 4096 // 最大の.. 4Gbit
#define METWL_ROMSIZE_MIN_NAND 1

View File

@ -117,7 +117,7 @@ ECDeliverableResult RCDeliverable::writeSpreadsheet(
}
if( hSrl->IsCommonClientKeyForDebugger )
{
access += "commonClientKey(Debug). ";
access += "commonClientKey(Debugger). ";
}
// 使用ライセンス

View File

@ -308,7 +308,7 @@ namespace MasterEditorTWL
// gridViewの表示形式にあわせる
cli::array<System::Object^>^ getAll( System::Boolean isJapanese )
{
if( (this->begin == METWL_ERRLIST_NORANGE) && (this->end == METWL_ERRLIST_NORANGE) )
if( (this->begin == 0) && (this->end == 0) )
{
if( isJapanese )
return (gcnew array<System::Object^>{this->hName, "-", "-", this->hMsg});

View File

@ -558,28 +558,110 @@ void RCSrl::mrcAccessControl(FILE *fp)
if( (this->pRomHeader->s.access_control.game_card_on != 0) &&
(this->pRomHeader->s.access_control.game_card_nitro_mode != 0) )
{
this->hErrorList->Add( this->makeMrcError("CardAccess") );
this->hErrorList->Add( this->makeMrcError("CardAccessSystem") );
}
if( this->pRomHeader->s.access_control.common_client_key != 0 )
{
this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "Common Client Key") );
}
if( this->pRomHeader->s.access_control.hw_aes_slot_B != 0 )
{
this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "HW AES Slot B for ES") );
}
if( this->pRomHeader->s.access_control.hw_aes_slot_C != 0 )
{
this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "HW AES Slot C for NAM") );
}
if( !this->IsMediaNand && (this->pRomHeader->s.access_control.nand_access != 0) ) // カードアプリのときのみ
{
this->hWarnList->Add( this->makeMrcError("NandAccessSystem") );
}
if( this->pRomHeader->s.access_control.sd_card_access != 0 )
{
this->hWarnList->Add( this->makeMrcError("SDAccessSystem") );
}
if( this->pRomHeader->s.access_control.game_card_on != 0 )
{
this->hWarnList->Add( this->makeMrcError("GameCardNormalAccessSystem") );
}
if( this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForLauncher != 0 )
{
this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "HW AES Slot B (JPEG signature) for the launcher") );
}
if( this->pRomHeader->s.access_control.game_card_nitro_mode != 0 )
{
this->hWarnList->Add( this->makeMrcError("GameCardNTRAccessSystem") );
}
if( !this->IsMediaNand && this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForUser != 0 )
{
this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "HW AES SlotB (JPEG signature) for the user") );
}
if( this->pRomHeader->s.access_control.hw_aes_slot_A_SSLClientCert )
{
this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "HW AES Slot A for the SSL client certification") );
}
if( this->pRomHeader->s.access_control.common_client_key_for_debugger_sysmenu != 0 )
{
this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "Common Client Key for the debugger system menu") );
}
// その他のビット
u32 okbits = 0x80001FFF;
u32 *p = (u32*)&(this->pRomHeader->s);
if( p[ 0x1b4 / 4 ] & ~okbits )
{
this->hErrorList->Add( this->makeMrcError("AccessDefault") );
}
}
else // ユーザアプリ
{
if( this->pRomHeader->s.access_control.common_client_key != 0 )
{
this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "Common Client Key") );
}
if( this->pRomHeader->s.access_control.hw_aes_slot_B != 0 )
{
this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "HW AES Slot B for ES") );
}
if( this->pRomHeader->s.access_control.hw_aes_slot_C != 0 )
{
this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "HW AES Slot C for NAM") );
}
if( !this->IsMediaNand && (this->pRomHeader->s.access_control.nand_access != 0) ) // カードアプリのときのみ
{
this->hErrorList->Add( this->makeMrcError("NandAccessUser") );
}
if( this->pRomHeader->s.access_control.sd_card_access != 0 )
{
this->hErrorList->Add( this->makeMrcError("SDAccess") );
this->hErrorList->Add( this->makeMrcError("SDAccessUser") );
}
if( !this->IsMediaNand ) // カードアプリのときのみ
if( this->pRomHeader->s.access_control.game_card_on != 0 )
{
this->hErrorList->Add( this->makeMrcError("NandAccess") );
this->hErrorList->Add( this->makeMrcError("GameCardNormalAccessUser") );
}
u32 okbits;
if( !this->IsMediaNand )
if( this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForLauncher != 0 )
{
okbits = 0x00000008 | 0x00000010 | 0x00000040; // NAND | SD | Shared2ファイル (それぞれ個別でチェックするためここではチェックしない)
this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "HW AES Slot B (JPEG signature) for the launcher") );
}
else
if( this->pRomHeader->s.access_control.game_card_nitro_mode != 0 )
{
okbits = 0x00000008 | 0x00000010 | 0x00000040 | 0x00000400; // NANDアプリのときはJpegSignフラグは許される
this->hErrorList->Add( this->makeMrcError("GameCardNTRAccessUser") );
}
if( !this->IsMediaNand && this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForUser != 0 )
{
this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "HW AES SlotB (JPEG signature) for the user") );
}
if( this->pRomHeader->s.access_control.hw_aes_slot_A_SSLClientCert )
{
this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "HW AES Slot A for the SSL client certification") );
}
if( this->pRomHeader->s.access_control.common_client_key_for_debugger_sysmenu != 0 )
{
this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "Common Client Key for the debugger system menu") );
}
u32 okbits = 0x80001FFF;
u32 *p = (u32*)&(this->pRomHeader->s);
if( p[ 0x1b4 / 4 ] & ~okbits )
{

View File

@ -222,46 +222,62 @@
</DifferentAppType>
<!-- Access Control -->
<CardAccess>
<CardAccessSystem>
<name>Access Control Information</name>
<sentence>Cannot set the Game Card access method to both Normal mode and NTR mode.</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</CardAccess>
<SDAccess>
<name>Access Control Information</name>
<sentence>Access to the SD Card is not permitted.</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</SDAccess>
<NandAccess>
</CardAccessSystem>
<NandAccessUser>
<name>Access Control Information</name>
<sentence>Access to the NAND flash is not permitted.</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</NandAccess>
</NandAccessUser>
<SDAccessUser>
<name>Access Control Information</name>
<sentence>Access to the SD Card is not permitted.</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</SDAccessUser>
<SDAccessSystem>
<name>Access Control Information</name>
<sentence>The SD Card can be accessed.</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</SDAccessSystem>
<GameCardNormalAccessUser>
<name>Access Control Information</name>
<sentence>Access to the Game Card is not permitted.</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</GameCardNormalAccessUser>
<GameCardNormalAccessSystem>
<name>Access Control Information</name>
<sentence>The Game Card can be accessed.</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</GameCardNormalAccessSystem>
<GameCardNTRAccessUser>
<name>Access Control Information</name>
<sentence>Access to the NTR-compatible region in the Game Card is not permitted.</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</GameCardNTRAccessUser>
<GameCardNTRAccessSystem>
<name>Access Control Information</name>
<sentence>The NTR-compatible region in the Game Card can be accessed.</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</GameCardNTRAccessSystem>
<IllegalAccessUser>
<name>Access Control Information</name>
<sentence>Access to the {0} is not permitted.</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</IllegalAccessUser>
<IllegalAccessSystem>
<name>Access Control Information</name>
<sentence>The {0} can be accessed.</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</IllegalAccessSystem>
<AccessDefault>
<name>Access Control Information</name>
<sentence>Configured not to allow access.</sentence>
<sentence>Illegal access bit(s) are set. This setting is not permitted.</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</AccessDefault>
<!-- Padding -->
<PaddingRead>
<name>Padding</name>
<sentence>Last {0} cannot be read.</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</PaddingRead>
<PaddingValue>
<name>Padding</name>
<sentence>Last {0} must be padded by FFh. The limitations of {1} ROMs are not being observed.</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</PaddingValue>
<!-- Reserved Area -->
<ReservedArea>
<name>Reserved region</name>
<sentence>An illegal value is included. Pad this region with 00h only.</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</ReservedArea>
<!-- Shared2 file -->
<Shared2Disable>
<name>Shared2 file</name>

View File

@ -222,24 +222,59 @@
</DifferentAppType>
<!-- Access Control -->
<CardAccess>
<CardAccessSystem>
<name>アクセスコントロール情報</name>
<sentence>ゲームカードアクセス設定にーマルモードとNTRモードの両方を設定することはできません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</CardAccess>
<SDAccess>
<name>アクセスコントロール情報</name>
<sentence>SDカードへのアクセスは許可されていません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</SDAccess>
<NandAccess>
</CardAccessSystem>
<NandAccessUser>
<name>アクセスコントロール情報</name>
<sentence>ゲームカード用ソフトはNANDフラッシュメモリへのアクセスを許可されていません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</NandAccess>
</NandAccessUser>
<SDAccessUser>
<name>アクセスコントロール情報</name>
<sentence>SDカードへのアクセスは許可されていません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</SDAccessUser>
<SDAccessSystem>
<name>アクセスコントロール情報</name>
<sentence>SDカードへアクセス可能になっています。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</SDAccessSystem>
<GameCardNormalAccessUser>
<name>アクセスコントロール情報</name>
<sentence>ゲームカードへのアクセスは許可されていません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</GameCardNormalAccessUser>
<GameCardNormalAccessSystem>
<name>アクセスコントロール情報</name>
<sentence>ゲームカードへアクセス可能になっています。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</GameCardNormalAccessSystem>
<GameCardNTRAccessUser>
<name>アクセスコントロール情報</name>
<sentence>ゲームカードNTR互換領域へのアクセスは許可されていません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</GameCardNTRAccessUser>
<GameCardNTRAccessSystem>
<name>アクセスコントロール情報</name>
<sentence>ゲームカードNTR互換領域へアクセス可能になっています。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</GameCardNTRAccessSystem>
<IllegalAccessUser>
<name>アクセスコントロール情報</name>
<sentence>{0} へのアクセスは許可されていません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</IllegalAccessUser>
<IllegalAccessSystem>
<name>アクセスコントロール情報</name>
<sentence>{0} へアクセス可能になっています。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</IllegalAccessSystem>
<AccessDefault>
<name>アクセスコントロール情報</name>
<sentence>許可されていないアクセスが設定されています。この設定は許可されていません。</sentence>
<sentence>未定義のアクセスビットが設定されています。この設定は許可されていません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</AccessDefault>