public List <PS4> GetAllPS4s() { List <PS4> ps4s = new List <PS4>(); var allSubs = registryData.GetSubKeys(); if (allSubs == null) { return(ps4s); } foreach (var ps4 in allSubs) { PS4 p = new PS4(); p.Name = ps4; var subKey = registryData.GetSubKey(p.Name); p.Firmware = subKey.GetValue("Firmware").ToString(); p.IPAddress = subKey.GetValue("IPAddress").ToString(); if (Regex.IsMatch(p.IPAddress, IP_REGEX)) { ps4s.Add(p); } } return(ps4s); }
private void RefreshPS4Consoles() { lstPS4s.Items.Clear(); var allPS4s = PS4Consoles.GetAllPS4s(); PS4 defaultPS4 = PS4Consoles.DefaultPS4(); try { int defaultIndex = -1; foreach (var ps4 in allPS4s) { lstPS4s.Items.Add(ps4.Name); if (ps4.Name == defaultPS4.Name) { lstPS4s.SelectedIndex = defaultIndex + 1; } defaultIndex++; } } catch { MessageBox.Show("There was an issue loading your PS4 list. Please contact us via Discord. \n\nIf you already know what a registry is, visit regedit.exe and delete the PS44 that may contain the invalid IP address."); } }
public object ShallowCopy() => MemberwiseClone(); // 앝은복사 Clone public object Clone() { PS4 newPs4 = new PS4(); newPs4.name = name; newPs4.age = age; newPs4.game = new Game(); newPs4.game.titleName = game.titleName; return(newPs4); }
private void btnAdd_Click(object sender, EventArgs e) { PS4 ps4 = new PS4(); ps4.Name = txtName.Text; ps4.IPAddress = txtIP.Text; ps4.Firmware = txtFirmware.Text; PS4Consoles.AddPS4(ps4); RefreshPS4Consoles(); }
private void lstPS4s_SelectedIndexChanged(object sender, EventArgs e) { if (lstPS4s.SelectedItem == null) { return; } string ps4Name = lstPS4s.SelectedItem.ToString(); PS4 ps4 = PS4Consoles.GetPS4Details(ps4Name); lblName.Text = "IP Name : " + ps4.Name; lblIP.Text = "IP Selected : " + ps4.IPAddress; lblFirmware.Text = "IP Firmware : " + ps4.Firmware; }
public void AddPS4(PS4 ps4) { if (!Regex.IsMatch(ps4.IPAddress, IP_REGEX)) { System.Windows.Forms.MessageBox.Show("Ip Not valid"); return; } RegistryData rd = registryData.CreateSubKey(ps4.Name); rd.Add("IPAddress", ps4.IPAddress); rd.Add("Firmware", ps4.Firmware); }
private void addPS4(PS4 ps4) { // Ensure it's not already on our list for (int i = 0; i < ps4s.Count; i++) { if (ps4s[i].IP == ps4.IP) { return; } } // Add it ps4s.Add(ps4); }
public InstructionData(ulong _address) { ArchitectureMode architecture = ArchitectureMode.x86_64; Disassembler.Translator.IncludeAddress = false; Disassembler.Translator.IncludeBinary = false; Instruction[] array = new Disassembler(PS4.ReadMemory(PID, _address, 100), architecture, _address, copyBinaryToInstruction: true, Vendor.Any, 0ul).Disassemble().ToArray(); StringBuilder stringBuilder = new StringBuilder(); Instruction[] bArray = new Disassembler(PS4.ReadMemory(PID, _address - 50, 100), architecture, _address - 50, copyBinaryToInstruction: true, Vendor.Any, 0uL).Disassemble().ToArray(); int num = 0; try { while (true) { if (num >= bArray.Length) { bAddress = bArray[num].Offset; } if (bArray[num].PC == _address) { break; } num++; } int space = 0; for (int i = 0; i < array.Length; i++) { space = 10 - array[i].Bytes.Length; stringBuilder.AppendLine($"0x{array[i].Offset.ToString("X")} | {BitConverter.ToString(array[i].Bytes).Replace("-", " ")}{new string(' ', space * 5)} | {array[i].ToString()}"); } } catch { bAddress = 0; } Length = array[0].Bytes.Length; Bytes = array[0].Bytes; string _SBytes = BitConverter.ToString(array[0].Bytes); SBytes = _SBytes.Replace("-", " "); Operation = array[0].ToString(); Address = array[0].Offset; nAddress = array[1].Offset; try { bAddress = bArray[num].Offset; } catch { bAddress = 0; } fullData = stringBuilder.ToString(); }
// 2. 깊은 복사 // '전체복사' 라고 불림 // 객체가 참조타입의 멤버를 포함할 경우 참조값의 복사가 아닌 참조된 객체 자체가 복사되는 것 // ICloneable 인터페이스 // 닷넷 프레임워크에서는 깊은복사를 위해 ICloneable 인터페이스를 제공함. private void DeepCopyEx() { PS4 myPs4 = new PS4(); myPs4.name = "내 플스"; myPs4.age = 2017; myPs4.game = new Game(); myPs4.game.titleName = "Last of us"; PS4 youPs4 = (PS4)myPs4.Clone(); youPs4.name = "너의 플스"; youPs4.age = 2019; youPs4.game.titleName = "loco loco"; // game.titleName 이 동일한 값이 나오는 것을 알 수 있음 Debug.Log($"{nameof(myPs4.name)} : {myPs4.name}, {nameof(myPs4.age)} : {myPs4.age}, {nameof(myPs4.game.titleName)} : {myPs4.game.titleName}"); Debug.Log($"{nameof(youPs4.name)} : {youPs4.name}, {nameof(youPs4.age)} : {youPs4.age}, {nameof(youPs4.game.titleName)} : {youPs4.game.titleName}"); }
// 1. 얕은 복사 // 걍 '단순복사' 라고도 함 // 객체가 참조타입의 맴버를 가지고 있을 경우 '참조값만 복사'된다. private void ShallowCopyEx() { PS4 myPs4 = new PS4(); myPs4.name = "내 플스"; myPs4.age = 2017; myPs4.game = new Game(); myPs4.game.titleName = "Last of us"; // 얕은 복사 // 해당 객체 내부의 맴버는 참조값(해당 데이터가 있는 위치? 라고 생각하면 좋을듯)만 복사된다. // 즉, 맴버 객체의 데이터가 공유됨 PS4 youPs4 = myPs4.ShallowCopy() as PS4; youPs4.name = "너의 플스"; youPs4.age = 2019; youPs4.game.titleName = "loco loco"; // game.titleName 이 동일한 값이 나오는 것을 알 수 있음 Debug.Log($"{nameof(myPs4.name)} : {myPs4.name}, {nameof(myPs4.age)} : {myPs4.age}, {nameof(myPs4.game.titleName)} : {myPs4.game.titleName}"); Debug.Log($"{nameof(youPs4.name)} : {youPs4.name}, {nameof(youPs4.age)} : {youPs4.age}, {nameof(youPs4.game.titleName)} : {youPs4.game.titleName}"); }
public ActionResult Create(PS4 ps) { try { // TODO: Add insert logic here var data = db.Entry(ps).State = System.Data.Entity.EntityState.Added; int a = db.SaveChanges(); if (a > 0) { return(RedirectToAction("Index")); } else { return(View(data)); } } catch { return(View()); } }
public PS4 GetPS4Details(string ps4Name) { PS4 p = new PS4(); var subKey = registryData.GetSubKey(ps4Name); if (subKey == null) { return(default(PS4)); } p.Firmware = subKey.GetValue("Firmware").ToString(); p.IPAddress = subKey.GetValue("IPAddress").ToString(); p.Name = ps4Name; if (!Regex.IsMatch(p.IPAddress, IP_REGEX)) { return(default(PS4)); } return(p); }
public PS4Dialog() { InitializeComponent(); ps4 = new PS4(); }