using System; using System.Collections.Generic; using System.Linq; using System.Text; using TwlBackupBlock; namespace FalsifyTwlBackup { partial class Program { static void FalsifyingDataCategory1xx(int improperNo, Properties prop, byte[] improperData) { Blocks blocksForFalsifying = (Blocks)prop.decryptedBlocks.Clone(); HeaderBody header; header = (HeaderBody)blocksForFalsifying.header.body; SignatureBody signature; signature = (SignatureBody)blocksForFalsifying.signature.body; byte[] outData; //[1xx] 不正なデータ挿入 //------------------------------------ //[テンプレート] //case (番号): // (差し替えの場合)ReplaceImproperData(blocksForFalsifying[(差替え場所のindex)].body, improperData); // outData = MergeEncryptBody(blocksForFalsifying, prop.keyData, prop.macKeyData, improperData, (不正データ挿入箇所), NC_MAC_AND_HASHSET); // OutputFalsifyingData(improperNo, prop.outFolderPath, outData); // break; switch (improperNo) { case 100: outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, FRONT_BANNER, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 101: ReplaceImproperData(blocksForFalsifying[SECTION_BANNER].body, improperData); outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, NONE, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 102: outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, REAR_BANNER, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 103: outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, FRONT_HEADER, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 104: outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, REAR_HEADER, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 105: outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, FRONT_SIGNATURE, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 106: outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, REAR_SIGNATURE, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 107: outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, FRONT_TMD, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 108: ReplaceImproperData(blocksForFalsifying[SECTION_TMD].body, improperData); outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, NONE, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 109: outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, REAR_TMD, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 110: outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, FRONT_CONTENT, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 111: ReplaceImproperData(blocksForFalsifying[SECTION_CONTENT].body, improperData); outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, NONE, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 112: outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, REAR_CONTENT, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 113: outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, FRONT_PUBLIC_SAVE, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 114: ReplaceImproperData(blocksForFalsifying[SECTION_PUBLIC_SAVE].body, improperData); outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, NONE, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 115: outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, REAR_PUBLIC_SAVE, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 116: outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, FRONT_SUB_BANNER, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 117: ReplaceImproperData(blocksForFalsifying[SECTION_SUB_BANNER].body, improperData); outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, NONE, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; case 118: outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, REAR_SUB_BANNER, NC_MAC_AND_HASHSET); OutputFalsifiedData(improperNo, prop.outFolderPath, outData); break; // ありえない default: throw new InvalidOperationException(); } } } }