Пример #1
0
        private void testKvInfobtn_Click(object sender, EventArgs e)
        {
            _sw = Stopwatch.StartNew();
            var ofd = new OpenFileDialog();

            if (ofd.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            var nand = ofd.FileName;

            ofd.FileName = "cpukey.txt";
            if (ofd.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            var bw = new BackgroundWorker();

            bw.DoWork += (o, args) => {
                try {
                    var keyutils = new CpukeyUtils();
                    var key      = keyutils.GetCPUKeyFromTextFile(ofd.FileName);
                    using (var reader = new NANDReader(nand)) {
                        AddOutput("Grabbing & Decrypting KV From NAND: ");
                        var kv     = _x360NAND.GetKeyVault(reader, key);
                        var kvinfo = new Keyvault();
                        AddOutput(Environment.NewLine);
                        AddOutput("Console ID: {0}", kvinfo.GetConsoleID(ref kv));
                        AddOutput(Environment.NewLine);
                        AddOutput("Console Serial: {0}", kvinfo.GetConsoleSerial(ref kv));
                        AddOutput(Environment.NewLine);
                        AddOutput("DVDKey: {0}", kvinfo.GetDVDKey(ref kv));
                        AddOutput(Environment.NewLine);
                        AddOutput("FCRT Flag: 0x{0:X}", kvinfo.GetFCRTFlag(ref kv));
                        AddOutput(Environment.NewLine);
                        AddOutput("FCRT Required: {0}", kvinfo.FCRTRequired(ref kv));
                        AddOutput(Environment.NewLine);
                        AddOutput("FCRT Used: {0}", kvinfo.FCRTUsed(ref kv));
                        AddOutput(Environment.NewLine);
                        AddOutput("Game Region: {0}", kvinfo.GetGameRegion(ref kv, true));
                        AddOutput(Environment.NewLine);
                        AddOutput("MFR-Date (DDMMYY): {0}", kvinfo.GetMfrDate(ref kv, Keyvault.DateFormats.DDMMYY));
                        AddOutput(Environment.NewLine);
                        AddOutput("OSIG: {0}", kvinfo.GetOSIGData(ref kv));
                    }
                }
                catch (X360UtilsException ex) {
                    AddOutput("FAILED!");
                    AddException(ex.ToString());
                }
                AddOutput(Environment.NewLine);
                AddDone();
            };
            bw.RunWorkerCompleted += BwCompleted;
            bw.RunWorkerAsync();
        }