NANDアプリの製品版システムコール復号化。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1813 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
nakasima 2008-07-08 03:08:57 +00:00
parent 1f5b8412fd
commit f55ccdae1c
3 changed files with 38 additions and 7 deletions

View File

@ -166,10 +166,16 @@ static void BOOTi_RebootCallback( void** entryp, void* mem_list_v, REBOOTTarget*
// FSによってshared領域にコピーされたランチャー自身のマウントパスのクリア
MI_CpuClearFast((char *)HW_TWL_FS_BOOT_SRL_PATH_BUF, OS_MOUNT_PATH_LEN);
// カードアプリの場合はARM9FLXの先頭2k暗号オブジェクトをデクリプト
if( SYSMi_GetWork()->flags.common.isCardBoot ) {
// NAND/TMPアプリ用KeyTableの生成
if( ! SYSMi_GetWork()->flags.common.isCardBoot )
{
HOTSWi_MakeBlowfishTableDSForNAND();
}
// ARM9FLXの先頭2k暗号オブジェクトをデクリプト
{
// 再配置情報があればそちらのアドレス、なければヘッダ指定のアドレス
void *addr = (SYSMi_GetWork()->romRelocateInfo[0].src != NULL) ? SYSMi_GetWork()->romRelocateInfo[0].src : dh->s.main_ram_address;
HOTSWi_SetSecureSegmentBuffer(HOTSW_MODE1, addr, SECURE_AREA_SIZE);
HOTSW_DecryptObjectFile( addr );
}

View File

@ -1165,6 +1165,13 @@ void HOTSW_SetBootSegmentBuffer(void* buf, u32 size)
*---------------------------------------------------------------------------*/
void HOTSW_SetSecureSegmentBuffer(ModeType type ,void* buf, u32 size)
{
HOTSWi_SetSecureSegmentBuffer(type, buf, size);
// バッファの初期化
MI_CpuClear8(s_pSecureSegBuffer, size);
}
void HOTSWi_SetSecureSegmentBuffer(ModeType type ,void* buf, u32 size)
{
SDK_ASSERT(size > SECURE_SEGMENT_SIZE);
@ -1174,17 +1181,12 @@ void HOTSW_SetSecureSegmentBuffer(ModeType type ,void* buf, u32 size)
s_cbData.pSecureSegBuf = s_pSecureSegBuffer;
// バッファの初期化
MI_CpuClear8(s_pSecureSegBuffer, size);
}
else{
s_pSecure2SegBuffer = (u32 *)buf;
s_Secure2SegBufSize = size;
s_cbData.pSecure2SegBuf = s_pSecure2SegBuffer;
// バッファの初期化
MI_CpuClear8(s_pSecure2SegBuffer, size);
}
}
@ -2378,6 +2380,17 @@ static BOOL CheckExtArm9HashValue(void)
#endif
/*---------------------------------------------------------------------------*
Name: HOTSWi_GetCardBootData
Description:
*---------------------------------------------------------------------------*/
void *HOTSWi_GetCardBootData(void)
{
return &s_cbData;
}
/*---------------------------------------------------------------------------*
Name: DebugPrintErrorMessage

View File

@ -18,6 +18,18 @@
// Function Prototype -------------------------------------------------------
/*---------------------------------------------------------------------------*
Name: MakeBlowfishTableDSForNAND
Description: NANDアプリ用KeyTableの生成
*---------------------------------------------------------------------------*/
void HOTSWi_MakeBlowfishTableDSForNAND(void)
{
CardBootData *cbd = HOTSWi_GetCardBootData();
cbd->pBootSegBuf = (void*)SYSM_APP_ROM_HEADER_BUF;
MakeBlowfishTableDS(cbd, 8);
}
/*---------------------------------------------------------------------------*
Name: MakeBlowfishTableDS