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

View File

@ -74,8 +74,12 @@ typedef enum FatalErrorCode {
FATAL_ERROR_LOAD_READMODULE_FAILED = 42, FATAL_ERROR_LOAD_READMODULE_FAILED = 42,
FATAL_ERROR_NINTENDO_LOGO_CHECK_FAILED = 43, FATAL_ERROR_NINTENDO_LOGO_CHECK_FAILED = 43,
FATAL_ERROR_SYSMENU_VERSION = 44, 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; }FatalErrorCode;