private void button1_Click(object sender, EventArgs e) { Win32Assembly assembly = ((AssemblyReference)treeView1.SelectedNode.Tag).assembly; if (assembly != null) { List<DataGridViewColumn> columns = new List<DataGridViewColumn>(); DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn(); column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; column.HeaderText = "Name"; columns.Add(column); column = new DataGridViewTextBoxColumn(); column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; column.HeaderText = "RVA"; columns.Add(column); List<DataGridViewRow> rows = new List<DataGridViewRow>(); foreach (ExportMethod meth in assembly.LibraryExports) { DataGridViewRow row = new DataGridViewRow(); DataGridViewTextBoxCell cell = new DataGridViewTextBoxCell(); cell.Value = meth.Name; row.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); cell.Value = "0x" + ((long)meth.RVA).ToString("x8").ToUpper(); row.Cells.Add(cell); rows.Add(row); } ListDlg dlg = new ListDlg(columns.ToArray(), rows.ToArray(), "Exports of " + Path.GetFileName(assembly.Path), false); dlg.Show(); } }
private void button2_Click(object sender, EventArgs e) { Win32Assembly assembly; if (treeView1.SelectedNode.Parent == null) assembly = this.assembly; else assembly = ((AssemblyReference)treeView1.SelectedNode.Parent.Tag).assembly; if (assembly != null) { List<DataGridViewColumn> columns = new List<DataGridViewColumn>(); DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn(); column = new DataGridViewTextBoxColumn(); column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; column.HeaderText = "Name"; columns.Add(column); column = new DataGridViewTextBoxColumn(); column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; column.HeaderText = "Ordinal"; columns.Add(column); column = new DataGridViewTextBoxColumn(); column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; column.HeaderText = "RVA"; columns.Add(column); column = new DataGridViewTextBoxColumn(); column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; column.HeaderText = "Value"; columns.Add(column); List<DataGridViewRow> rows = new List<DataGridViewRow>(); foreach (LibraryReference lib in assembly.LibraryImports) { if (lib.LibraryName == treeView1.SelectedNode.Text) { foreach (ImportMethod meth in lib.ImportMethods) { DataGridViewRow row = new DataGridViewRow(); DataGridViewTextBoxCell cell = new DataGridViewTextBoxCell(); cell.Value = meth.Name; row.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); cell.Value = "0x" + ((long)meth.Ordinal).ToString("x8").ToUpper(); row.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); cell.Value = "0x" + ((long)meth.RVA).ToString("x8").ToUpper(); row.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); cell.Value = "0x" + ((long)meth.OriginalThunkValue).ToString("x8").ToUpper(); row.Cells.Add(cell); rows.Add(row); } } } ListDlg dlg = new ListDlg(columns.ToArray(), rows.ToArray(), "Methods of current dll used by " + Path.GetFileName(assembly.Path), false); dlg.Show(); } }