Exemple #1
0
        public void writeXCIToTextbox()
        {
            header = XCIManager.GetXCIHeader(selectXCIDialog.FileName);
            gcInfo = XCIManager.DecryptGamecardInfo(header);

            rtbGameInfo.Text += "[" + selectXCIDialog.SafeFileName + "]\n";
            rtbGameInfo.Text += "Header: " + header.ToString() + "\n";
            rtbGameInfo.Text += "Game Card Info: " + gcInfo.ToString() + "\n";
        }
Exemple #2
0
        // Methods
        internal static gamecard_info DecryptGamecardInfo(xci_header header)
        {
            // REVERSE THA IV
            byte[] iv_flipped = new byte[XCIManager.XCI_IV_SIZE];
            Array.Copy(header.GamecardIV, iv_flipped, XCIManager.XCI_IV_SIZE);
            Array.Reverse(iv_flipped);

            // GameCardInfo Decrypt
            var decrypt        = mainForm.AES128CBC.CreateDecryptor(XCIManager.XCI_GAMECARDINFO_KEY, iv_flipped);
            var gcInfoStream   = new MemoryStream(header.GamecardInfo);
            var gcCryptoStream = new CryptoStream(gcInfoStream, decrypt, CryptoStreamMode.Read);

            // Create the struct
            XCIManager.gamecard_info gamecardInfoStruct = Utils.FromStream <XCIManager.gamecard_info>(gcCryptoStream);

            // Clean stuff up
            gcInfoStream.Close();
            gcCryptoStream.Close();
            decrypt.Dispose();

            return(gamecardInfoStruct);
        }