ctr_test_tools/TwlBkpCheck/Windows/FalsifyTwlBackup/Category3xx.cs
n2460 f20e008a2d FalsifyTwlBackup:カテゴリ毎に関数分けを行った。
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_test_tools@29 6b0af911-cb57-b745-895f-eec5701120e1
2011-10-20 02:37:08 +00:00

66 lines
2.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TwlBackupBlock;
namespace FalsifyTwlBackup
{
partial class Program
{
static void FalsifyingDataCategory3xx(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;
//[3xx] 署名ブロック改ざん
//------------------------------------
//[テンプレート]
//case (番号):
// signature.(変更箇所)++;
// outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, NONE, NC_MAC_AND_HASHSET);
// OutputFalsifyingData(improperNo, prop.outFolderPath, outData);
// break;
switch (improperNo)
{
case 300:
signature.digest.banner[0]++;
outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, NONE, NC_MAC_AND_HASHSET);
OutputFalsifiedData(improperNo, prop.outFolderPath, outData);
break;
case 301:
signature.sign[0]++;
outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, NONE, NC_MAC_AND_HASHSET);
OutputFalsifiedData(improperNo, prop.outFolderPath, outData);
break;
case 302:
signature.cert[0][0]++;
outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, NONE, NC_MAC_AND_HASHSET);
OutputFalsifiedData(improperNo, prop.outFolderPath, outData);
break;
case 303:
signature.digest.banner[0]++;
signature.sign[0]++;
signature.cert[0][0]++;
outData = MergeEncryptBody(blocksForFalsifying, prop, improperData, NONE, NC_MAC_AND_HASHSET);
OutputFalsifiedData(improperNo, prop.outFolderPath, outData);
break;
// ありえない
default:
throw new InvalidOperationException();
}
}
}
}