FATALを仕掛ける数と種類を増やす

ホワイトリストチェックを開発版でも行うよう変更(ただし開発版ではホワイトリスト署名つきの製品NTRカードが動かないはずなので注意)

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2345 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yoshida_teruhisa 2008-09-01 01:54:59 +00:00
parent 2f1ecb7cd3
commit 599d8ddde3
4 changed files with 28 additions and 4 deletions

View File

@ -851,4 +851,8 @@ static char *s_strError[ FATAL_ERROR_MAX ] = {
"FATAL_ERROR_LOAD_READMODULE_FAILED",
"FATAL_ERROR_NINTENDO_LOGO_CHECK_FAILED",
"FATAL_ERROR_SYSMENU_VERSION",
"FATAL_ERROR_DHT_PHASE1_CALC_FAILED",
"FATAL_ERROR_LOAD_UNKNOWN_BOOTTYPE",
"FATAL_ERROR_LOAD_AUTH_HEADER_FAILED",
"FATAL_ERROR_LOAD_NEVER_STARTED",
};

View File

@ -555,6 +555,7 @@ static void SYSMi_LoadTitleThreadFunc( TitleProperty *pBootTitle )
break;
default:
// unknown
UTL_SetFatalError(FATAL_ERROR_LOAD_UNKNOWN_BOOTTYPE);
return;
}
@ -693,6 +694,7 @@ OS_TPrintf("RebootSystem failed: cant read file(%p, %d, %d, %d)\n", &s_authcode,
// ※ROMヘッダ認証
if( !SYSMi_AuthenticateHeader( pBootTitle, head ) )
{
UTL_SetFatalError(FATAL_ERROR_LOAD_AUTH_HEADER_FAILED);
goto ERROR;
}
@ -1360,7 +1362,8 @@ static BOOL SYSMi_AuthenticateNTRCardAppHeader( TitleProperty *pBootTitle, ROM_H
{
BOOL ret = TRUE;
#define DEV_WHITELIST_CHECK_SKIP
// 一時的に開発版でもハッシュチェックを行うように変更2008/09/01
//#define DEV_WHITELIST_CHECK_SKIP
#ifdef DEV_WHITELIST_CHECK_SKIP
// 開発版ではハッシュチェックスルーフラグを立てる
if( SCFG_GetBondingOption() != 0 )
@ -1441,7 +1444,7 @@ static BOOL SYSMi_AuthenticateNTRCardTitle( TitleProperty *pBootTitle)
{
OS_TPrintf("DHT Phase1 failed: hash calc failed.\n");
if(!s_b_dev) {
UTL_SetFatalError(FATAL_ERROR_DHT_PHASE1_FAILED);
UTL_SetFatalError(FATAL_ERROR_DHT_PHASE1_CALC_FAILED);
return FALSE;
}
}
@ -1594,6 +1597,14 @@ static BOOL SYSMi_AuthenticateTitleCore( TitleProperty *pBootTitle)
// 認証処理のスレッド
static void SYSMi_AuthenticateTitleThreadFunc( TitleProperty *pBootTitle )
{
// ロード開始してませんよ
if( !s_loadstart )
{
UTL_SetFatalError(FATAL_ERROR_LOAD_NEVER_STARTED);
return;
}
// ロード中
if( !SYSM_IsLoadTitleFinished() ) {
UTL_SetFatalError(FATAL_ERROR_LOAD_UNFINISHED);

View File

@ -116,7 +116,12 @@ static const char *fatal_error_msg[FATAL_ERROR_MAX] =
"LOAD_READDLSIGN_FAILED",
"LOAD_RELOCATEINFO_FAILED",
"LOAD_READMODULE_FAILED",
"NINTENDO_LOGO_CHECK_FAILED"
"NINTENDO_LOGO_CHECK_FAILED",
"SYSMENU_VERSION",
"DHT_PHASE1_CALC_FAILED",
"LOAD_UNKNOWN_BOOTTYPE",
"LOAD_AUTH_HEADER_FAILED",
"LOAD_NEVER_STARTED"
};
//#define DEBUG_LAUNCHER_DUMP

View File

@ -74,8 +74,12 @@ typedef enum FatalErrorCode {
FATAL_ERROR_LOAD_READMODULE_FAILED = 42,
FATAL_ERROR_NINTENDO_LOGO_CHECK_FAILED = 43,
FATAL_ERROR_SYSMENU_VERSION = 44,
FATAL_ERROR_DHT_PHASE1_CALC_FAILED = 45,
FATAL_ERROR_LOAD_UNKNOWN_BOOTTYPE = 46,
FATAL_ERROR_LOAD_AUTH_HEADER_FAILED = 47,
FATAL_ERROR_LOAD_NEVER_STARTED = 48,
FATAL_ERROR_MAX = 45
FATAL_ERROR_MAX = 49
}FatalErrorCode;