From b697873d146c306e3ee4cfc6104180b34f2ded9a Mon Sep 17 00:00:00 2001 From: nishikawa_takeshi Date: Thu, 25 Sep 2008 07:01:37 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=9E=E3=82=B9=E3=82=BF=E3=82=A8=E3=83=87?= =?UTF-8?q?=E3=82=A3=E3=82=BF:SRL=E3=82=92=E8=AA=AD=E3=81=BF=E8=BE=BC?= =?UTF-8?q?=E3=82=93=E3=81=A0=E7=8A=B6=E6=85=8B=E3=81=A7=E5=88=A5=E3=81=AE?= =?UTF-8?q?SRL=E3=82=92=E5=86=8D=E5=BA=A6=E8=AA=AD=E3=81=BF=E8=BE=BC?= =?UTF-8?q?=E3=82=93=E3=81=A7=E7=BD=B2=E5=90=8D=E3=82=A8=E3=83=A9=E3=83=BC?= =?UTF-8?q?=E3=81=A8=E3=81=AA=E3=81=A3=E3=81=9F=E3=81=A8=E3=81=8D=E3=81=AB?= =?UTF-8?q?=E5=89=8D=E3=81=AE=E3=82=A8=E3=83=A9=E3=83=BC=E6=83=85=E5=A0=B1?= =?UTF-8?q?=E3=81=8C=E6=B6=88=E3=81=88=E3=82=8B=E3=83=90=E3=82=B0=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2550 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../tools/MasterEditorTWL/MasterEditorTWL.ncb | Bin 11258880 -> 11267072 bytes .../tools/MasterEditorTWL/MasterEditorTWL.suo | Bin 57344 -> 59392 bytes .../MasterEditorTWL/Debug/BuildLog.htm | Bin 17502 -> 17502 bytes .../MasterEditorTWL/Release/BuildLog.htm | Bin 17682 -> 17702 bytes .../MasterEditorTWL/MasterEditorTWL/srl.cpp | 57 ++++++++++++++---- .../MasterEditorTWL/MasterEditorTWL/srl.h | 16 +++++ 6 files changed, 60 insertions(+), 13 deletions(-) diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL.ncb b/build/tools/MasterEditorTWL/MasterEditorTWL.ncb index 6af778b8c8aebaafb1f25b3ca8107e1c98974086..ecf5f183724df3489ff49f74a22882a88ee49906 100644 GIT binary patch delta 20754 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 delta 31801 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 diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL.suo b/build/tools/MasterEditorTWL/MasterEditorTWL.suo index 0b42579ef0f82b160071f3971340e3a708b0d209..c33acaf5c29f2af029bb0023c150ef0e669a1e3f 100644 GIT binary patch delta 2902 zcmbuBdr(wW9LMjudv_TS5O5VtTtHMZAAsX4kVG*}OWC#5CLX>@1r-sn)YJvkOh-xf zmpb^$7)LE1AV(=5DEXSSL}1L=+PpHZtJnhEv>Ds<1|g63p4rl`OHWUYu z-DC}a4<-#tho(T8&>K)RM1`iX0ciY%n1c&*p?OdaG#|=^7C?DW0#xc4;4_$covms9Vhk;ebc$^GIMPQqev5Eks)`;W zj5Xh&!K#Li*2WqmVf1Pgd6w3O6djrHMTAbn(TjZ0J>*m0+PCJK|brPtk zjV=nND8nlM9^>%g5y=9_6+a^j*XXVE{T+wHBtzT~t1T!XW0oIxw|U`osKJ(IZQQf|#)eL!+VBRGCi}9}?c!JZD^|8^ouJ*+hsLAEL<+Gd^g{Y!DwdW_;klVzf}0 zVGsvb>J0H-=U5HEi-gB2n$dIoVITuK3UO5)+bW3T1ms~S+lZ$9s2GpEPWfMv-A&4p z#ynBA)GB1;r*{P1vxSS`=ewo3FhurTds9&VtU;8U7bHh*S+1KCar02mw42YOR6I?Wq>QGne40(5?dpWVqLb#Kyj^gccJ{JPk{lD2q3C65<(&Zg=U6gF%>(P?^-v zEKI(9J@Kgsq^58OJqX)Ded5D-2binAP8YuXKH~-_(Fgmsx@Pw9va)jY%%g%HR3=j5 za+{aybn3_mvUl{CHPs^owJVuR$H#cxniVAuLABouqhYRMFYTZom!Rr$KARKhr~Q%M z>VzKf)4lPO3f(K8b;xUdB00}F4bROh%$g4IuFO*9A;|m&=AE@nu?S?RV#SJeM_#Ge zYQ?O`*$~GX$kWGKc!RxHY?0Li zw{Jq9XjO}Xw!-r-&`!l7;L8=;^B?w=Vh0uLih7ms_-IlwZu2ZWufsWNIM=~hr>+2K zm*Mfz8WiJ|X=H%7s~G!x@Qm*(#xKGq28aO6I`_g62+x=gEHhq^f%xLdO>nc9G#+Lo z3S9ABH`HR`gXOaGD+HDi|2hb0k3)?GM9Pj_NtpVDi#g49i9icOEIoH z1Z#@dmzIFcLReW0To%!&Yy=teiQ^(nK1x{-oJo)bU*MB?q?omcSvI4l z`>CU4KJzi-s<_8=d{w47`9{=Io5pNL^OdM2lZ_+&zvVFL%z9@3`~A=FoO92)=XGo9 zgKEADsym>IQFKsG6xnoDPj(K`G;J6(7#a=bK|`T8q2W+2lm=x%E+_@cfkr@2nwy)+ z6=aP|L?$09P_R%%ls8jNP)z5E03}c6F(s@lsLXrTeoO=b zX|mclZlS|QcdC5BMVYZ_zKGvMNDWGkaxvX(mv0J(X-oOZT`0vci&UzL9PV%NcVw1X zSWp<&T1b^qt3tMc9D)jD2Wx()=ucG+x0oOwI@;()L)M8rUt(`z=+#AbPm)!-I&TR# z-$(6GA)ln4){S(5LDj#$B}~|Rl><)e&?rtponwP_n|DATn4wH8V+tn#lR*=>SD z0sNCtnB0knCo8khTMYlay;b0C&&G*X90ww1u&1!m6I-gx9R2c=+%cZQfX`1V)b&99 zPMO$R#4-<2n@@mIJWe_iJ1;nf~R0T1c2{E%md^dBN1u_Q%trnx4)BJ3hrrv{;j-Eu^$zSL!1k7Iu5mVd;*?3ZcvN|_zT1x zUsEg=@f^hI52&^64b9!sn9nCe-T?nV?V*36RyG_4n^wy~WX8S(raNM(ViEB7AWl_^ zb%5t@2B#Tdd@Jz$Ilq;3Rg8TjJmdR{@j^u7kLNTNk$d6Z`IF4``Y6Wt z+XDtjX)WwUf2Kb&PB^Ek$c=O42S?`$H&>sga98+rcuwys#=ab$>s2Zi13v?P6yjXP zI>A@LbNWOv9_J!>zPc7a#ooc<^I8`f*gagS3-qaK{2mIKB|;yAm2|tg|Nt8KgS3WDqR;5Vr1zhgo(2Da)lx4Wz*?6VQRogL+I>v itL$2D7N&E^TKw6eXU*by$4KtD)=}uUbb0!Es`w9*q(sR8 diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm b/build/tools/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm index 92fcd773a9608b378884cc4af432f1aba527ac19..c47a85b51b26155af696471d72c1489a9f145a9d 100644 GIT binary patch delta 279 zcmccD!FaEOaf2C~urY%hq*+$$Zs`GdR&BT&); ztIj#Xd>q&$H}92pX9Y@FV%6oPIDrqFoA*k)vjQbduDq0X!Np4gdfE diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/Release/BuildLog.htm b/build/tools/MasterEditorTWL/MasterEditorTWL/Release/BuildLog.htm index ebd8ad1fad5270278760cf105a13defc767cec43..6bf07e65d5fde38eedc66aaa3d245736440d21e4 100644 GIT binary patch delta 280 zcmbQ##kj1Caf2P3urY%Xg9(EHg9Q*8f@zb@{%q5^u}Mt6D;>Leg9#VoWCJ!npaNqo zI@dF8))8C4idFWmbT~-D1YO%?e>UUI6^ai)W@1Qg&NL`x1WK5q>)QO@u$l>*1kjn% Xo2Qu=fpnQ+=(=h85xc}~b8}t*DPA)# delta 260 zcmZ41#W<;paf2P3paFv!gE504gAs!XkY&zbv^kJ%IyV;K--4x#Kw)zX)$5ry8;LDo z#gv=;TQGKViM-h62$?4=Kxqq9t&;=Uj5jwaKH$TY+FWV?w#*WX4g(_(CZG;9smdecryptRomHeader(); + if( r != ECSrlResult::NOERROR ) + { + (void)fclose(fp); + return r; + } +#endif //#ifdef METWL_WHETHER_SIGN_DECRYPT + // エラーリストをクリア this->hErrorList = gcnew System::Collections::Generic::List; this->hWarnList = gcnew System::Collections::Generic::List; @@ -88,16 +98,6 @@ ECSrlResult RCSrl::readFromFile( System::String ^filename ) // ROMヘッダの値をROM固有情報フィールドに反映させる (void)this->setRomInfo(); -#ifdef METWL_WHETHER_SIGN_DECRYPT - // ひととおり読んだあとに署名チェック - r = this->decryptRomHeader(); - if( r != ECSrlResult::NOERROR ) - { - (void)fclose(fp); - return r; - } -#endif //#ifdef METWL_WHETHER_SIGN_DECRYPT - // すべて設定したあとにMRC { ECSrlResult r; @@ -662,23 +662,25 @@ ECSrlResult RCSrl::decryptRomHeader(void) // (1) 公開鍵で復号した結果(ブロック)をローカル変数(original)に格納 // (2) ブロックから余分な部分を取り除いて引数(pDst)にコピー + ECAppType type = this->selectAppType(); + // 鍵を選ぶ #ifdef METWL_VER_APPTYPE_LAUNCHER - if( *this->hIsAppLauncher ) + if( type == ECAppType::LAUNCHER ) { publicKey = (u8*)g_devPubKey_DER_launcher; } else #endif //METWL_VER_APPTYPE_LAUNCHER #ifdef METWL_VER_APPTYPE_SECURE - if( *this->hIsAppSecure ) + if( type == ECAppType::SECURE ) { publicKey = (u8*)g_devPubKey_DER_secure; } else #endif //METWL_VER_APPTYPE_SECURE #ifdef METWL_VER_APPTYPE_SYSTEM - if( *this->hIsAppSystem ) + if( type == ECAppType::SYSTEM ) { publicKey = (u8*)g_devPubKey_DER_system; } @@ -715,6 +717,35 @@ ECSrlResult RCSrl::decryptRomHeader(void) return (ECSrlResult::NOERROR); } +// +// アプリ種別の判定 +// +ECAppType RCSrl::selectAppType(void) +{ + ECAppType type = ECAppType::ILLEGAL; + + u8 *idL = this->pRomHeader->s.titleID_Lo; + u32 idH = this->pRomHeader->s.titleID_Hi; + + if( (idL[3]=='H') && (idL[2]=='N') && (idL[1]=='A') ) // ランチャアプリかどうかはTitleID_Loの値で決定 + { + type = ECAppType::LAUNCHER; + } + else if( idH & TITLE_ID_HI_SECURE_FLAG_MASK ) // 各ビットは排他的とは限らないのでelse ifにはならない + { + type = ECAppType::SECURE; + } + else if( (idH & TITLE_ID_HI_APP_TYPE_MASK) == 1 ) + { + type = ECAppType::SYSTEM; + } + else if( (idH & TITLE_ID_HI_APP_TYPE_MASK) == 0 ) + { + type = ECAppType::USER; + } + return type; +} + // // DSダウンロード署名がSRLに格納されているか調べる // diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/srl.h b/build/tools/MasterEditorTWL/MasterEditorTWL/srl.h index a3a44d3d..532f3fb7 100644 --- a/build/tools/MasterEditorTWL/MasterEditorTWL/srl.h +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/srl.h @@ -38,6 +38,21 @@ namespace MasterEditorTWL ERROR_PLATFORM, }; + // ------------------------------------------------------------------- + // Type : enum class + // Name : ECAppType + // + // Description : RCSrlクラスのアプリ種別を宣言 + // ------------------------------------------------------------------- + enum class ECAppType + { + USER = 0, + SYSTEM, + SECURE, + LAUNCHER, + ILLEGAL, // 不定 + }; + // ------------------------------------------------------------------- // Type : ref class // Name : RCSDKVersion @@ -362,6 +377,7 @@ namespace MasterEditorTWL // @arg [in] 入力ファイルのFP (->SRL読み込み時に実行されるべき)] ECSrlResult searchSDKVersion( FILE *fp ); // SDKバージョンを取得する ECSrlResult searchLicenses( FILE *fp ); // 使用ライセンスを取得する + ECAppType selectAppType(void); // MRC(Master ROM Checker)機能 ECSrlResult mrc( FILE *fp );