From 4cade41cb1b499760d7cd92469b046b00ea4cd06 Mon Sep 17 00:00:00 2001 From: n2460 Date: Sat, 22 Oct 2011 11:50:39 +0000 Subject: [PATCH] =?UTF-8?q?TWLBackupBlock:BkpType=20=E3=81=AE=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=81=A8=E3=80=81Blocks=20=E3=81=AB=20private=20save?= =?UTF-8?q?=20=E8=BF=BD=E5=8A=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_test_tools@33 6b0af911-cb57-b745-895f-eec5701120e1 --- TwlBkpCheck/Windows/TWLBackupBlock/Blocks.cs | 24 ++++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/TwlBkpCheck/Windows/TWLBackupBlock/Blocks.cs b/TwlBkpCheck/Windows/TWLBackupBlock/Blocks.cs index bd424d2..22d787c 100644 --- a/TwlBkpCheck/Windows/TWLBackupBlock/Blocks.cs +++ b/TwlBkpCheck/Windows/TWLBackupBlock/Blocks.cs @@ -3,20 +3,28 @@ using System.Diagnostics; namespace TwlBackupBlock { + public enum BkpType + { + NORMAL, + WITH_PRIVATE_SAVE, + LEGACY + }; + /// /// ブロックの集合です。 /// public class Blocks : ICloneable { - private const int NUM_BLOCKS = 14; + private const int NUM_BLOCKS = 15; public Block banner; public Block header; public Block signature; public Block tmd; public Block[] content; - public Block saveData; + public Block publicSave; public Block subBanner; + public Block privateSave; /// /// Blocksクラスの新しいインスタンスを初期化します。 @@ -32,8 +40,9 @@ namespace TwlBackupBlock { content[i] = new Block(); } - saveData = new Block(); + publicSave = new Block(); subBanner = new Block(); + privateSave = new Block(); } /// @@ -57,8 +66,9 @@ namespace TwlBackupBlock case 1: return header; case 2: return signature; case 3: return tmd; - case 12: return saveData; + case 12: return publicSave; case 13: return subBanner; + case 14: return privateSave; default: Debug.Assert(false); return null; // never reach @@ -96,8 +106,12 @@ namespace TwlBackupBlock newBlocks.content[i] = (Block)content[i].Clone(); } } - newBlocks.saveData = (Block)saveData.Clone(); + newBlocks.publicSave = (Block)publicSave.Clone(); newBlocks.subBanner = (Block)subBanner.Clone(); + if (privateSave.body != null) + { + newBlocks.privateSave = (Block)privateSave.Clone(); + } return newBlocks; } }