コード例 #1
0
        public keyForm()
        {
            InitializeComponent();

            Shown += (s, e) => { LoadKeys(); };

            importButton.Click += (s, e) =>
            {
                using (OpenFileDialog open = new OpenFileDialog())
                {
                    open.Filter = "Xbox 360 Keyvault (*.bin)|*.bin|All Files (*.*)|*.*";
                    if (open.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }
                    string consoleSerial, motherboardSerial;
                    if (XCalcSig.FromKV(open.FileName, out consoleSerial, out motherboardSerial))
                    {
                        consoleSerialBox.Text     = consoleSerial;
                        motherboardSerialBox.Text = motherboardSerial;
                        return;
                    }
                    MessageBox.Show("Failed to read KV file");
                }
            };

            removeButton.Click += (s, e) =>
            {
                if (!(Equals(null, keyList.Items) && keyList.Items.Count > 0))
                {
                    foreach (ListViewItem item in keyList.CheckedItems)
                    {
                        keys.Remove(item.Text, item.SubItems[1].Text.ToBytes(true));
                        keyList.Items.Remove(item);
                    }
                    LoadKeys();
                }
            };

            makeButton.Click += (s, e) =>
            {
                if (makeAliasBox.Text.Length == 0)
                {
                    MessageBox.Show("Alias name must not be empty");
                    return;
                }
                long consoleSerial;
                if (consoleSerialBox.Text.Length != 12 || !long.TryParse(consoleSerialBox.Text, out consoleSerial))
                {
                    MessageBox.Show("Invalid console serial");
                    return;
                }
                if (motherboardSerialBox.Text.Length != 16 || !motherboardSerialBox.Text.IsHex())
                {
                    MessageBox.Show("Invalid motherboard serial");
                    return;
                }
                string alias = makeAliasBox.Text;
                if (keys.Contains(alias))
                {
                    MessageBox.Show("Alias already in use");
                    return;
                }
                byte[] key = XCalcSig.MakeXboxHDKey(consoleSerialBox.Text, motherboardSerialBox.Text);
                if (keys.Contains(key))
                {
                    MessageBox.Show("Key already added under another alias");
                    return;
                }
                keys.Add(new UI.Keys.Key()
                {
                    alias = alias, key = key
                });
                LoadKeys();
            };

            addKeyButton.Click += (s, e) =>
            {
                if (addAliasBox.Text.Length == 0)
                {
                    MessageBox.Show("Alias name must not be empty");
                    return;
                }
                if (keyBox.Text.Length != 32 || !keyBox.Text.IsHex())
                {
                    MessageBox.Show("Invalid XboxHDKey");
                    return;
                }
                string alias = addAliasBox.Text;
                if (keys.Contains(alias))
                {
                    MessageBox.Show("Alias already in use");
                    return;
                }
                byte[] key = keyBox.Text.ToBytes(true);
                if (keys.Contains(key))
                {
                    MessageBox.Show("Key already added under another alias");
                    return;
                }
                keys.Add(new UI.Keys.Key()
                {
                    alias = alias, key = key
                });
                LoadKeys();
            };
        }