예제 #1
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);
        }
예제 #2
0
        public void Read(XeReader reader)
        {
            reader.Seek(Origin, SeekOrigin.Begin);

            // First read the header
            var header = new byte[0x10];

            reader.Read(header, 0, 0x10);

            // Parse info bits
            magic      = BufferUtils.ToUInt16(header, 0x00);
            version    = BufferUtils.ToUInt16(header, 0x02);
            unkWord1   = BufferUtils.ToUInt16(header, 0x04);
            unkWord2   = BufferUtils.ToUInt16(header, 0x06);
            entryPoint = BufferUtils.ToUInt32(header, 0x08);
            length     = BufferUtils.ToUInt32(header, 0x0c);

            hmacSalt = new byte[0x10];
            reader.Read(hmacSalt, 0, 0x10);

            reader.Seek(Origin + length, SeekOrigin.Begin);
        }
예제 #3
0
파일: SMC.cs 프로젝트: yui-konnu/XeTool
 public void Read(XeReader reader, int length)
 {
     data = new byte[length];
     reader.Read(data, 0, length);
 }
예제 #4
0
        public void Read()
        {
            var reader = new XeReader(Stream);

            Read(reader);
        }