コード例 #1
0
ファイル: PGT.cs プロジェクト: metaboss/MysteryGiftTool
        private void refreshData(byte[] data)
        {
            byte[] ekdata = new byte[PKX.SIZE_4PARTY];
            Array.Copy(data, 8, ekdata, 0, ekdata.Length);
            bool empty = ekdata.SequenceEqual(new byte[ekdata.Length]);

            PK = new PK4(empty ? ekdata : PKX.decryptArray45(ekdata));

            Unknown = new byte[0x10];
            Array.Copy(data, 0xF4, Unknown, 0, 0x10);
            RAW = data;
        }
コード例 #2
0
ファイル: PKMConverter.cs プロジェクト: Rocci1212/PKHeX
        public static void checkEncrypted(ref byte[] pkm)
        {
            int format = getPKMDataFormat(pkm);

            switch (format)
            {
            case 1:
            case 2:     // no encryption
                return;

            case 3:
                if (pkm.Length == PKX.SIZE_3CSTORED || pkm.Length == PKX.SIZE_3XSTORED)
                {
                    return;     // no encryption for C/XD
                }
                ushort chk = 0;
                for (int i = 0x20; i < PKX.SIZE_3STORED; i += 2)
                {
                    chk += BitConverter.ToUInt16(pkm, i);
                }
                if (chk != BitConverter.ToUInt16(pkm, 0x1C))
                {
                    pkm = PKX.decryptArray3(pkm);
                }
                return;

            case 4:
            case 5:
                if (BitConverter.ToUInt16(pkm, 4) != 0)     // BK4
                {
                    return;
                }
                if (BitConverter.ToUInt32(pkm, 0x64) != 0)
                {
                    pkm = PKX.decryptArray45(pkm);
                }
                return;

            case 6:
            case 7:
                if (BitConverter.ToUInt16(pkm, 0xC8) != 0 && BitConverter.ToUInt16(pkm, 0x58) != 0)
                {
                    pkm = PKX.decryptArray(pkm);
                }
                return;

            default:
                return;     // bad!
            }
        }
コード例 #3
0
ファイル: SAV5.cs プロジェクト: tkfltkgk/PKHeX
 public override byte[] decryptPKM(byte[] data)
 {
     return(PKX.decryptArray45(data));
 }