private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { comboBox2.Font = new Font(comboBox2.Font, FontStyle.Regular); Process current = Process.GetProcessById((comboBox2.SelectedItem as cbProcess).id); comboBox1.Items.Clear(); try { cbModule[] modules = new cbModule[current.Modules.Count]; for (int i = 0; i < current.Modules.Count; i++) { modules[i] = new cbModule { name = current.Modules[i].ModuleName, basee = current.Modules[i].BaseAddress, entry = current.Modules[i].EntryPointAddress, file = current.Modules[i].FileName, mSize = current.Modules[i].ModuleMemorySize } } ; comboBox1.Items.AddRange(modules); foreach (cbModule module in modules) { if (module.basee == current.MainModule.BaseAddress) { comboBox1.SelectedItem = module; } } } catch (Exception ex) { cbModule module = new cbModule { name = "odmowa dostępu", basee = IntPtr.Zero, entry = IntPtr.Zero, file = "odmowa dostępu" }; comboBox1.Items.Add(module); comboBox1.SelectedItem = module; } if ((comboBox2.SelectedItem as cbProcess).id == Process.GetCurrentProcess().Id) { bLoadLibrary.Enabled = true; bFreeLibrary.Enabled = true; } else { bLoadLibrary.Enabled = false; bFreeLibrary.Enabled = false; } }
private void loadProcesses() { comboBox2.Items.Clear(); Process[] processTable = Process.GetProcesses(); cbProcess[] processes = new cbProcess[processTable.Length]; for (int i = 0; i < processTable.Length; i++) { processes[i] = new cbProcess { id = processTable[i].Id, name = processTable[i].ProcessName } } ; comboBox2.Items.AddRange(processes); Process current = Process.GetCurrentProcess(); foreach (cbProcess pr in processes) { if (pr.id == current.Id) { comboBox2.SelectedItem = pr; } } comboBox1.Items.Clear(); cbModule[] modules = new cbModule[current.Modules.Count]; for (int i = 0; i < current.Modules.Count; i++) { modules[i] = new cbModule { name = current.Modules[i].ModuleName, basee = current.Modules[i].BaseAddress, entry = current.Modules[i].EntryPointAddress, file = current.Modules[i].FileName, mSize = current.Modules[i].ModuleMemorySize } } ; comboBox1.Items.AddRange(modules); foreach (cbModule module in modules) { if (module.basee == current.MainModule.BaseAddress) { comboBox1.SelectedItem = module; } } }
private void comboBox2_KeyDown(object sender, KeyEventArgs e) { if ((comboBox1.SelectedItem as cbModule).name != "odmowa dostępu" && e.KeyCode == Keys.Right) { cbModule lastModule = comboBox1.SelectedItem as cbModule; foreach (cbModule currentModule in comboBox1.Items) { comboBox1.SelectedItem = currentModule; comboBox1_KeyDown(null, new KeyEventArgs(Keys.Right)); } comboBox1.SelectedItem = lastModule; } if ((comboBox1.SelectedItem as cbModule).name != "odmowa dostępu" && e.KeyCode == Keys.Left) { cbModule lastModule = comboBox1.SelectedItem as cbModule; foreach (cbModule currentModule in comboBox1.Items) { comboBox1.SelectedItem = currentModule; comboBox1_KeyDown(null, new KeyEventArgs(Keys.Left)); } comboBox1.SelectedItem = lastModule; } }