TwlIPL/build/tests/HashCheckTemplate/memo.txt
yoshida_teruhisa ba33d15e41 メモ追加
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1971 b08762b0-b915-fc4b-9d8c-17b2551a87ff
2008-07-24 02:21:23 +00:00

16 lines
994 B
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

【デバッガでうまく動かない】
どうやらデバッガはコードにいろいろ埋めるらしいので、起動時には既にロード済みROMの内容が違うっぽい→SHA1計算アウト。
単体ブートならOK。
【暗号化領域】
ARM9FLXの先頭0x800バイト(2kバイト)は暗号化されている(暗号化領域)。で、ランチャーがブート直前に暗号化を解除する。
ヘッダに埋め込まれているARM9FLXのハッシュは、暗号化された状態でのハッシュである。
HashCheckTemplateでARM9FLXのハッシュを計算する時点では、すでに暗号化が解除されているため、計算が合わない。
どうにかして解除前の暗号化領域を手に入れる必要がある。
が、実はHashCheckTemplateでは、この領域を00で埋めれば計算が合う。
HashCheckTemplateのようなテストプログラムでは、暗号化領域は00で埋められるためである。
【暗号化領域が00であった事の確認】
暗号解除時、先頭0x800バイトのうち先頭2バイトの暗号解除結果が"encryObj"でない場合は全体の暗号解除をせず、特殊処理として未定義命令コード0xe7ffdeffで埋められる。
よって、暗号化領域に当たる部分が実行時に未定義命令コードで埋まってるのを確認すれば良い。