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()); } }
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()); } }
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); }
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)); }
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); }
public static void setActiveProcess(librpc.ProcessInfo processInfo) { info = processInfo; }