Ejemplo n.º 1
0
        private void GetsmcbtnClick(object sender, EventArgs e)
        {
            _sw = Stopwatch.StartNew();
            var ofd = new OpenFileDialog();

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

            bw.DoWork += (o, args) => {
                try {
                    using (var reader = new NANDReader(ofd.FileName)) {
                        AddOutput("Grabbing SMC from NAND: ");
                        var data = _x360NAND.GetSmc(reader, true);
                        var smc  = new Smc();
                        var type = smc.GetType(ref data);
                        AddOutput("\r\nSMC Version: {0} [{1}]", smc.GetVersion(ref data), smc.GetMotherBoardFromVersion(ref data));
                        AddOutput("\r\nSMC Type: {0}", type);
                        if (type == Smc.SmcTypes.Jtag || type == Smc.SmcTypes.RJtag)
                        {
                            Smc.JtagsmcPatches.AnalyseSmc(ref data);
                        }
                        AddOutput("\r\nSMC Glitch Patched: {0}", smc.CheckGlitchPatch(ref data) ? "Yes" : "No");
                    }
                }
                catch (X360UtilsException ex) {
                    AddOutput("FAILED!");
                    AddException(ex.ToString());
                }
                AddOutput(Environment.NewLine);
                AddDone();
            };
            bw.RunWorkerCompleted += BwCompleted;
            bw.RunWorkerAsync();
        }