Exemple #1
0
    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);
    }
Exemple #2
0
        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.");
            }
        }
Exemple #3
0
    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);
    }
Exemple #4
0
        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();
        }
Exemple #5
0
        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;
        }
Exemple #6
0
    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);
    }
Exemple #7
0
        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);
        }
Exemple #8
0
            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();
            }
Exemple #9
0
    // 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}");
    }
Exemple #10
0
    // 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}");
    }
Exemple #11
0
        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());
            }
        }
Exemple #12
0
    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);
    }
Exemple #13
0
 public PS4Dialog()
 {
     InitializeComponent();
     ps4 = new PS4();
 }