public void FileNameHashing(string dlcRoot, string outRoot) { var rmpb = Directory.GetFiles(dlcRoot, "ResMapPb.bytes", SearchOption.AllDirectories); rmpb.Length.Should().Be(1); var fn = rmpb[0]; var decoder = new ResDecoder(EncryptKey._0xC093D547); var encrypted = File.ReadAllBytes(fn); var result = decoder.TryDecryptBytes(encrypted, out var decrypted); result.Should().BeTrue(); var decryptedDumpPath = Path.Combine(outRoot, "decrypt.bin"); File.WriteAllBytes(decryptedDumpPath, decrypted); var outDir = Path.Combine(outRoot, "rawProto"); Directory.CreateDirectory(outDir); var decompressed = FileUtil.DecompressZlib(decrypted); var path = Path.Combine(outDir, "PbResMap.pb"); File.WriteAllBytes(path, decompressed); }
public void DeriveKey(uint salt, byte[] actualDerived) { var derived = ResDecoder.GenerateDerivedKey(salt); derived.SequenceEqual(actualDerived).Should().BeTrue(); }
public void DeriveKeyEmptySalt(uint salt) { var derived = ResDecoder.GenerateDerivedKey(salt); derived.SequenceEqual(ResDecoder.MasterKey).Should().BeTrue(); }