private void buttonStruct_Click(object sender, EventArgs e) { int selectionStart = (int)hexBoxMemory.SelectionStart; List <string> structNames = new List <string>(Program.Structs.Keys); structNames.Sort(); ListPickerWindow lpw = new ListPickerWindow(structNames.ToArray()); lpw.Text = "Select a Struct"; if (lpw.ShowDialog() == DialogResult.OK) { if (Program.Structs.ContainsKey(lpw.SelectedItem)) { // stupid TreeViewAdv only works on the one thread Program.HackerWindow.BeginInvoke(new MethodInvoker(delegate { StructWindow sw = new StructWindow(_pid, (_address.Increment(selectionStart)), Program.Structs[lpw.SelectedItem]); try { sw.Show(); sw.Activate(); } catch { } })); } } }
private void buttonInspectPEB_Click(object sender, EventArgs e) { try { if (!Program.Structs.ContainsKey("PEB")) throw new Exception("The struct 'PEB' has not been loaded. Make sure structs.txt was loaded successfully."); using (ProcessHandle phandle = new ProcessHandle(_pid, Program.MinProcessQueryRights)) { IntPtr baseAddress = phandle.GetBasicInformation().PebBaseAddress; Program.HackerWindow.BeginInvoke(new MethodInvoker(() => { StructWindow sw = new StructWindow(_pid, baseAddress, Program.Structs["PEB"]); try { sw.Show(); sw.Activate(); } catch { } })); } } catch (Exception ex) { PhUtils.ShowException("Unable to inspect the PEB", ex); } }
private void buttonStruct_Click(object sender, EventArgs e) { int selectionStart = (int)hexBoxMemory.SelectionStart; List<string> structNames = new List<string>(Program.Structs.Keys); structNames.Sort(); ListPickerWindow lpw = new ListPickerWindow(structNames.ToArray()); lpw.Text = "Select a Struct"; if (lpw.ShowDialog() == DialogResult.OK) { if (Program.Structs.ContainsKey(lpw.SelectedItem)) { // stupid TreeViewAdv only works on the one thread Program.HackerWindow.BeginInvoke(new MethodInvoker(delegate { StructWindow sw = new StructWindow(_pid, (_address.Increment(selectionStart)), Program.Structs[lpw.SelectedItem]); try { sw.Show(); sw.Activate(); } catch { } })); } } }