예제 #1
0
        private void btnWrite_Click(object sender, EventArgs e)
        {
            DynamicByteProvider dbp = this.hxBox.ByteProvider as DynamicByteProvider;

            dbp.ApplyChanges();

            for (int i = 0; i < dbp.Bytes.Count; i++)
            {
                this.Data[i] = dbp.Bytes[i];
            }

            string AddrStr = "";

            if (this.txtMemAdr.Text.StartsWith("0x"))
            {
                AddrStr = this.txtMemAdr.Text.Substring(2);
            }
            else
            {
                AddrStr = this.txtMemAdr.Text;
            }

            UInt64 Addr = 0;

            UInt64.TryParse(AddrStr, NumberStyles.HexNumber, CultureInfo.CurrentCulture, out Addr);

            Commands.ps4ninja_write_kmem(Addr, (UInt64)this.Data.Length, this.Data, this.Client);
        }
예제 #2
0
        private byte[] GetBytes()
        {
            BytesProvider.ApplyChanges();
            byte[] allBytes = new byte[BytesProvider.Bytes.Count];

            for (int i = 0; i < allBytes.Length; i++)
            {
                allBytes[i] = BytesProvider.Bytes[i];
            }

            return(allBytes);
        }
예제 #3
0
        private void EditHexEditor_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult dr = MessageBox.Show("Do you want to save changes?", "Save", MessageBoxButtons.YesNoCancel);

            if (dr == DialogResult.Cancel)
            {
                e.Cancel = true;
            }
            else if (dr == DialogResult.Yes)
            {
                DynamicByteProvider bp = hexBox.ByteProvider as DynamicByteProvider;
                bp.ApplyChanges();
                bp.Bytes.CopyTo(Globals.romdata);
            }
        }
예제 #4
0
        private void ByteProvider_Changed(object sender, EventArgs e)
        {
            DynamicByteProvider myViewer = (DynamicByteProvider)sender;

            myViewer.ApplyChanges();

            TabPage myPage = tabSettingsDesc.TabPages[tabSettingsDesc.SelectedIndex];

            foreach (ListViewItem item in SettingsList.SelectedItems)
            {
                string FileName = item.Text;
                gGame.Settings[FileName].data[myPage.Name] = myViewer.Bytes.ToArray();

                break;
            }
        }
예제 #5
0
        /// <summary>
        /// Saves the current file.
        /// </summary>
        void SaveFile()
        {
            if (hexBox1.ByteProvider == null)
            {
                return;
            }

            try
            {
                if (File.Exists(_fileName))
                {
                    File.Copy(_fileName, _fileName + "-backup" + DateTime.Now.Ticks.ToString());
                    FileByteProvider        fileByteProvider        = hexBox1.ByteProvider as FileByteProvider;
                    DynamicByteProvider     dynamicByteProvider     = hexBox1.ByteProvider as DynamicByteProvider;
                    DynamicFileByteProvider dynamicFileByteProvider = hexBox1.ByteProvider as DynamicFileByteProvider;
                    if (fileByteProvider != null)
                    {
                        fileByteProvider.ApplyChanges();
                    }
                    else if (dynamicFileByteProvider != null)
                    {
                        dynamicFileByteProvider.ApplyChanges();
                    }
                    else if (dynamicByteProvider != null)
                    {
                        byte[] data = dynamicByteProvider.Bytes.ToArray();
                        using (FileStream stream = File.Open(_fileName, FileMode.Create, FileAccess.Write, FileShare.Read))
                        {
                            stream.Write(data, 0, data.Length);
                        }
                        dynamicByteProvider.ApplyChanges();
                    }
                }
            }
            catch (Exception ex1)
            {
                MessageBox.Show(ex1.Message, "T5Suite 2.0", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
            finally
            {
                ManageAbility();
            }
        }