Beispiel #1
0
        private void uiToolStrip_ProcessManager_cmbBoxActiveProcess_SelectedIndexChanged(Object sender, EventArgs e)
        {
            try {
                var comboBox = sender as ToolStripComboBox;
                if (comboBox.SelectedIndex < 1)
                {
                    comboBox.SelectedIndex = 1;
                    return;
                }
                String selectedProcessName = (String)uiToolStrip_ProcessManager_cmbBoxActiveProcess.SelectedItem;
                curScanStatus = ScanStatus.FirstScan;
                chkListViewSearchSections.Items.Clear();

                processInfo = Memory.getProcessInfoFromName(selectedProcessName);

                contextMenuChkListBox_btnSelectAll.Checked = false; listProcessMemorySections.Clear();
                foreach (var memorySection in Memory.Sections.getMemorySections(processInfo))
                {
                    listProcessMemorySections.Add(memorySection);

                    ListViewItem listViewItem = new ListViewItem();
                    listViewItem.Tag  = memorySection;
                    listViewItem.Text = memorySection.name;
                    listViewItem.SubItems.Add(memorySection.offset.ToString("X"));
                    listViewItem.SubItems.Add((memorySection.length / 1024).ToString() + "KB");
                    listViewItem.SubItems.Add(memorySection.protection.ToString());
                    chkListViewSearchSections.Items.Add(listViewItem);
                }
                uiToolStrip_lblActiveProcess.Text = String.Format("Process: {0}", selectedProcessName);
                //uiToolStrip_btnOpenPointerScanner.Enabled = true;
            } catch (Exception exception) {
                MessageBox.Show(exception.ToString());
            }
        }
Beispiel #2
0
        private void uiToolStrip_ProcessManager_cmbBoxActiveProcess_SelectedIndexChanged(Object sender, EventArgs e)
        {
            try {
                var comboBox = sender as ToolStripComboBox;
                if (comboBox.SelectedIndex < 1)
                {
                    comboBox.SelectedIndex = 1;
                    return;
                }
                String selectedProcessName = (String)uiToolStrip_ProcessManager_cmbBoxActiveProcess.SelectedItem;
                curScanStatus = ScanStatus.FirstScan;
                chkListViewSearchSections.Items.Clear();

                processInfo = ProcessManager.mInstance.GetProcessInfo(selectedProcessName);
                ProcessManager.mInstance.MappedSectionList.InitMemorySectionList(processInfo);

                for (int i = 0; i < ProcessManager.mInstance.MappedSectionList.Count; i++)
                {
                    chkListViewSearchSections.Items.Add(ProcessManager.mInstance.MappedSectionList.GetSectionName(i));
                }
                uiToolStrip_lblActiveProcess.Text = String.Format("Process: {0}", selectedProcessName);
                //uiToolStrip_btnOpenPointerScanner.Enabled = true;
            } catch (Exception exception) {
                MessageBox.Show(exception.ToString());
            }
        }
Beispiel #3
0
            public static List <librpc.MemorySection> getMemorySections(librpc.ProcessInfo processInfo, librpc.VM_PROT protection = librpc.VM_PROT.RO)
            {
                var listMemoryEntries = new List <librpc.MemorySection>();

                foreach (var memorySection in processInfo.listProcessMemorySections)
                {
                    if ((memorySection.protection & protection) == protection)
                    {
                        listMemoryEntries.Add(memorySection);
                    }
                }

                return(listMemoryEntries);
            }
Beispiel #4
0
            public static String getVersionStr()
            {
                librpc.ProcessInfo processInfo = Memory.getProcessInfoFromName("SceCdlgApp");
                if (processInfo == null)
                {
                    return(String.Empty);
                }
                librpc.MemorySection memorySection = Sections.findMemorySectionByName(processInfo, "libSceCdlgUtilServer.sprx", librpc.VM_PROT.RW);
                if (memorySection == null)
                {
                    return(String.Empty);
                }

                return(Memory.readString(processInfo.id, memorySection.start + 0xC8));
            }
Beispiel #5
0
            public static librpc.MemorySection findMemorySectionByName(librpc.ProcessInfo processInfo, String sectionName, librpc.VM_PROT protection = librpc.VM_PROT.RO)
            {
                librpc.MemorySection result = null;
                foreach (var memorySection in processInfo.listProcessMemorySections)
                {
                    if (memorySection.name == sectionName &&
                        (memorySection.protection & protection) == protection)
                    {
                        result = memorySection;
                        break;
                    }
                }

                return(result);
            }
Beispiel #6
0
 public static void setActiveProcess(librpc.ProcessInfo processInfo)
 {
     info = processInfo;
 }