mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
とりあえず実機ではハッシュが合うようにした。
・ハッシュを保存するところを0x02000400に ・ARM9のハッシュを0x800ずらしたところから計算(makerom.TWLもそれに合わせている) ・SHA-1コンテキストをMMEMのおしりの方にstaticで持たせてみた。 くらい? git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@334 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
4182e17ba0
commit
ecd52da240
@ -180,12 +180,6 @@ TwlSpMain(void)
|
||||
|
||||
BOOT_Init();
|
||||
|
||||
// 活栓挿抜機能初期化
|
||||
HOTSW_Init();
|
||||
|
||||
// カードがささっていたらブート開始
|
||||
(void)HOTSW_Boot();
|
||||
|
||||
while (TRUE)
|
||||
{
|
||||
OS_Halt();
|
||||
|
||||
@ -54,18 +54,22 @@ void RelocateCheckerInit( void )
|
||||
//PutStringUTF16( 1 * 8, 0 * 8, TXT_COLOR_BLUE, (const u16 *)L"RelocateChecker");
|
||||
//PutStringUTF16( 4 * 8, 8 * 8, TXT_COLOR_BLACK, (const u16 *)L"Under Construction...");
|
||||
|
||||
test = (u32 *)0x02000000;
|
||||
PrintfSJIS(0,0,TXT_COLOR_BLUE, "%8x %8x %8x",*(test+5),*(test+6),*(test+7));
|
||||
PrintfSJIS(0,2*8,TXT_COLOR_BLUE, "%8x %8x:arm9",*(test+8),*(test+9));
|
||||
test = (u32 *)0x02000400;
|
||||
PrintfSJIS(0,0*8,TXT_COLOR_BLUE, "%8x %8x %8x",*(test+0),*(test+1),*(test+2));
|
||||
PrintfSJIS(0,2*8,TXT_COLOR_BLUE, "%8x %8x:arm9",*(test+3),*(test+4));
|
||||
|
||||
PrintfSJIS(0,4*8,TXT_COLOR_BLUE, "%8x %8x %8x",*(test+0),*(test+1),*(test+2));
|
||||
PrintfSJIS(0,6*8,TXT_COLOR_BLUE, "%8x %8x:arm7",*(test+3),*(test+4));
|
||||
test = (u32 *)0x02000420;
|
||||
PrintfSJIS(0,6*8,TXT_COLOR_BLUE, "%8x %8x %8x",*(test+0),*(test+1),*(test+2));
|
||||
PrintfSJIS(0,8*8,TXT_COLOR_BLUE, "%8x %8x:arm7",*(test+3),*(test+4));
|
||||
|
||||
PrintfSJIS(0,8*8,TXT_COLOR_BLUE, "%8x %8x %8x",*(test+10),*(test+11),*(test+12));
|
||||
PrintfSJIS(0,10*8,TXT_COLOR_BLUE, "%8x %8x:arm9ltd",*(test+13),*(test+14));
|
||||
|
||||
PrintfSJIS(0,12*8,TXT_COLOR_BLUE, "%8x %8x %8x",*(test+15),*(test+16),*(test+17));
|
||||
PrintfSJIS(0,14*8,TXT_COLOR_BLUE, "%8x %8x:arm7ltd",*(test+18),*(test+19));
|
||||
test = (u32 *)0x02000440;
|
||||
PrintfSJIS(0,12*8,TXT_COLOR_BLUE, "%8x %8x %8x",*(test+0),*(test+1),*(test+2));
|
||||
PrintfSJIS(0,14*8,TXT_COLOR_BLUE, "%8x %8x:arm9ltd",*(test+3),*(test+4));
|
||||
|
||||
test = (u32 *)0x02000460;
|
||||
PrintfSJIS(0,18*8,TXT_COLOR_BLUE, "%8x %8x %8x",*(test+0),*(test+1),*(test+2));
|
||||
PrintfSJIS(0,20*8,TXT_COLOR_BLUE, "%8x %8x:arm7ltd",*(test+3),*(test+4));
|
||||
|
||||
GetAndDrawRTCData( &g_rtcDraw, TRUE );
|
||||
|
||||
GXS_SetVisiblePlane( GX_PLANEMASK_BG0 );
|
||||
|
||||
@ -327,43 +327,44 @@ _start(void)
|
||||
|
||||
static void INITi_SetHMACSHA1ToAppParam(void)
|
||||
{
|
||||
#define DGT_TGT_ADDR ( HW_MAIN_MEM + 0x0400 )
|
||||
/*
|
||||
SVCHMACSHA1Context con;
|
||||
// arm9_flx
|
||||
SVC_HMACSHA1Init(&con, (void *)s_digestDefaultKey, DIGEST_HASH_BLOCK_SIZE_SHA1);
|
||||
SVC_HMACSHA1Update(&con, (void *)(*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x028)), *((u32 *)(HW_TWL_ROM_HEADER_BUF + 0x02c)));
|
||||
SVC_HMACSHA1GetHash(&con, (void *)HW_MAIN_MEM);
|
||||
SVC_HMACSHA1GetHash(&con, (void *)DGT_TGT_ADDR);
|
||||
// arm7_flx
|
||||
SVC_HMACSHA1Init(&con, (void *)s_digestDefaultKey, DIGEST_HASH_BLOCK_SIZE_SHA1);
|
||||
SVC_HMACSHA1Update(&con, (void *)(*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x038)), *((u32 *)(HW_TWL_ROM_HEADER_BUF + 0x03c)));
|
||||
SVC_HMACSHA1GetHash(&con, (void *)(HW_MAIN_MEM + SVC_SHA1_DIGEST_SIZE));
|
||||
SVC_HMACSHA1GetHash(&con, (void *)(DGT_TGT_ADDR + SVC_SHA1_DIGEST_SIZE));
|
||||
// arm9_ltd
|
||||
SVC_HMACSHA1Init(&con, (void *)s_digestDefaultKey, DIGEST_HASH_BLOCK_SIZE_SHA1);
|
||||
SVC_HMACSHA1Update(&con, (void *)(*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x1c8)), *((u32 *)(HW_TWL_ROM_HEADER_BUF + 0x1cc)));
|
||||
SVC_HMACSHA1GetHash(&con, (void *)(HW_MAIN_MEM + 2 * SVC_SHA1_DIGEST_SIZE));
|
||||
SVC_HMACSHA1GetHash(&con, (void *)(DGT_TGT_ADDR + 2 * SVC_SHA1_DIGEST_SIZE));
|
||||
// arm7_ltd
|
||||
SVC_HMACSHA1Init(&con, (void *)s_digestDefaultKey, DIGEST_HASH_BLOCK_SIZE_SHA1);
|
||||
SVC_HMACSHA1Update(&con, (void *)(*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x1d8)), *((u32 *)(HW_TWL_ROM_HEADER_BUF + 0x1dc)));
|
||||
SVC_HMACSHA1GetHash(&con, (void *)(HW_MAIN_MEM + 3 * SVC_SHA1_DIGEST_SIZE));
|
||||
SVC_HMACSHA1GetHash(&con, (void *)(DGT_TGT_ADDR + 3 * SVC_SHA1_DIGEST_SIZE));
|
||||
*/
|
||||
|
||||
SVCSHA1Context con;
|
||||
SVCSHA1Context *pCon = ( SVCSHA1Context * ) 0x037c0000;
|
||||
// arm9_flx
|
||||
SVC_SHA1Init(&con);
|
||||
SVC_SHA1Update(&con, (void *)(*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x038)), *((u32 *)(HW_TWL_ROM_HEADER_BUF + 0x03c)));
|
||||
SVC_SHA1GetHash(&con, (void *)HW_MAIN_MEM);
|
||||
SVC_SHA1Init(pCon);
|
||||
SVC_SHA1Update(pCon, (void *)( (*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x028)) + 0x800 ), ( *((u32 *)(HW_TWL_ROM_HEADER_BUF + 0x02c)) - 0x800 ) );
|
||||
SVC_SHA1GetHash(pCon, (void *)DGT_TGT_ADDR);
|
||||
// arm7_flx
|
||||
SVC_SHA1Init(&con);
|
||||
SVC_SHA1Update(&con, (void *)(*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x028)), *((u32 *)(HW_TWL_ROM_HEADER_BUF + 0x02c)));
|
||||
SVC_SHA1GetHash(&con, (void *)(HW_MAIN_MEM + SVC_SHA1_DIGEST_SIZE));
|
||||
SVC_SHA1Init(pCon);
|
||||
SVC_SHA1Update(pCon, (void *)(*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x038)), *((u32 *)(HW_TWL_ROM_HEADER_BUF + 0x03c)));
|
||||
SVC_SHA1GetHash(pCon, (void *)(DGT_TGT_ADDR + 32));
|
||||
// arm9_ltd
|
||||
SVC_SHA1Init(&con);
|
||||
SVC_SHA1Update(&con, (void *)(*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x1c8)), *((u32 *)(HW_TWL_ROM_HEADER_BUF + 0x1cc)));
|
||||
SVC_SHA1GetHash(&con, (void *)(HW_MAIN_MEM + 2 * SVC_SHA1_DIGEST_SIZE));
|
||||
SVC_SHA1Init(pCon);
|
||||
SVC_SHA1Update(pCon, (void *)(*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x1c8)), *((u32 *)(HW_TWL_ROM_HEADER_BUF + 0x1cc)));
|
||||
SVC_SHA1GetHash(pCon, (void *)(DGT_TGT_ADDR + 64));
|
||||
// arm7_ltd
|
||||
SVC_SHA1Init(&con);
|
||||
SVC_SHA1Update(&con, (void *)(*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x1d8)), *((u32 *)(HW_TWL_ROM_HEADER_BUF + 0x1dc)));
|
||||
SVC_SHA1GetHash(&con, (void *)(HW_MAIN_MEM + 3 * SVC_SHA1_DIGEST_SIZE));
|
||||
SVC_SHA1Init(pCon);
|
||||
SVC_SHA1Update(pCon, (void *)(*(u32 *)(HW_TWL_ROM_HEADER_BUF + 0x1d8)), *((u32 *)(HW_TWL_ROM_HEADER_BUF + 0x1dc)));
|
||||
SVC_SHA1GetHash(pCon, (void *)(DGT_TGT_ADDR + 96));
|
||||
|
||||
}
|
||||
/*
|
||||
|
||||
Loading…
Reference in New Issue
Block a user