예제 #1
0
        public bool Load()
        {
            // read each XBFS header
            XbfsHeaders = new List <XbfsHeader>();
            foreach (int offset in XbfsOffsets)
            {
                _io.Stream.Position = offset;
                var header = _io.Reader.ReadStruct <XbfsHeader>();
                XbfsHeaders.Add(header);
            }

            long spDataSize = SeekToFile("sp_s.cfg");

            if (spDataSize <= 0)
            {
                return(true);
            }

            // SP_S.cfg: (secure processor secured config? there's also a blank sp_d.cfg which is probably secure processor decrypted config)
            // 0x0    - 0x200   - signature?
            // 0x200  - 0x5200  - encrypted data? maybe loaded and decrypted into PSP memory?
            // 0x5200 - 0x5400  - blank
            // 0x5400 - 0x5800  - console certificate
            // 0x5800 - 0x6000  - unknown data, looks like it has some hashes and the OSIG of the BR drive
            // 0x6000 - 0x6600  - encrypted data?
            // 0x6600 - 0x7400  - blank
            // 0x7400 - 0x7410  - unknown data, hash maybe
            // 0x7410 - 0x40000 - blank

            _io.Stream.Position += 0x5400; // seek to start of unencrypted data in sp_s (console certificate)
            ConsoleCert          = _io.Reader.ReadStruct <ConsoleEndorsementCert>();

            return(true);
        }
예제 #2
0
        public bool Load()
        {
            // read each XBFS header
            XbfsHeaders = new List<XbfsHeader>();
            foreach (int offset in XbfsOffsets)
            {
                _io.Stream.Position = offset;
                var header = _io.Reader.ReadStruct<XbfsHeader>();
                XbfsHeaders.Add(header);
            }

            long spDataSize = SeekToFile("sp_s.cfg");
            if (spDataSize <= 0)
                return true;

            // SP_S.cfg: (secure processor secured config? there's also a blank sp_d.cfg which is probably secure processor decrypted config)
            // 0x0    - 0x200   - signature?
            // 0x200  - 0x5200  - encrypted data? maybe loaded and decrypted into PSP memory?
            // 0x5200 - 0x5400  - blank
            // 0x5400 - 0x5800  - console certificate
            // 0x5800 - 0x6000  - unknown data, looks like it has some hashes and the OSIG of the BR drive
            // 0x6000 - 0x6600  - encrypted data?
            // 0x6600 - 0x7400  - blank
            // 0x7400 - 0x7410  - unknown data, hash maybe
            // 0x7410 - 0x40000 - blank

            _io.Stream.Position += 0x5400; // seek to start of unencrypted data in sp_s (console certificate)
            ConsoleCert = _io.Reader.ReadStruct<ConsoleEndorsementCert>();

            return true;
        }