Example #1
0
        private void replaceKernelButton_Click(object sender, EventArgs e)
        {
            var ofd = new OpenFileDialog();
            var sfd = new SaveFileDialog()
            {
                Filter = "Binary Files (*.bin)|*.bin|All Files|*"
            };

            if (ofd.ShowDialog() == DialogResult.OK && sfd.ShowDialog() == DialogResult.OK)
            {
                var inputStream = File.OpenRead(ofd.FileName);
                var ms          = new MemoryStream();

                rom.SE.WriteNewKernel(inputStream, ms);
                ms.Seek(0, SeekOrigin.Begin);

                inputStream.Close();

                var outputStream = File.Create(sfd.FileName);

                var key1 = rom.SC.GetDigestKey(new byte[0x10]);
                var key2 = rom.SD.GetDigestKey(key1);

                byte[] digestKey;
                CXBootloader.EncryptDecrypt(ms, outputStream, key2, out digestKey);

                ms.Close();
                outputStream.Close();
            }
        }
Example #2
0
        public void Read(XeReader reader)
        {
            reader.Seek(0, SeekOrigin.Begin);

            magic   = reader.ReadUInt16();
            version = reader.ReadUInt16();

            reader.Seek(0x08, SeekOrigin.Begin);
            bootloaderOffset = reader.ReadUInt32();
            length           = reader.ReadUInt32();
            copyright        = reader.ReadString(0x37);

            reader.Seek(0x60, SeekOrigin.Begin);
            kvOffset = reader.ReadUInt32();

            reader.Seek(0x78, SeekOrigin.Begin);
            smcSize   = reader.ReadUInt32();
            smcOffset = reader.ReadUInt32();

            reader.Seek(smcOffset, SeekOrigin.Begin);
            SMC = new SMC();
            SMC.Read(reader, (int)smcSize);

            reader.Seek(bootloaderOffset, SeekOrigin.Begin);

            SB = new CXBootloader(Stream);

            SC = new CXBootloader(Stream);

            SD = new CXBootloader(Stream);

            SE = new CEBootloader(Stream);
        }