public override PluginReturns Run(PluginArgument arg) { if (arg.Rows == null || arg.Rows.Length < 2) { SimpleMessage.ShowInfo("Please select two or more assemblies to merge."); return PluginReturns.None; } bool resolveDirAdded = false; try { resolveDirAdded = arg.Host.AddAssemblyResolveDir(arg.SourceDir); frmILMerge frm = new frmILMerge(arg.Host, arg.Rows, arg.SourceDir); frm.ShowDialog(); } catch { throw; } finally { if(resolveDirAdded) arg.Host.RemoveAssemblyResolveDir(arg.SourceDir); } return PluginReturns.Refresh; }
public override PluginReturns Run(PluginArgument arg) { try { if (!SelectRootDirectory(arg.Host, false)) { if (SimpleMessage.Confirm("Failed to locate de4dot! Do you want to download now?") == System.Windows.Forms.DialogResult.Yes) { SimpleProcess.Start("https://bitbucket.org/0xd4d/de4dot/downloads"); } return PluginReturns.None; } var frm = new frmDe4dot(arg.Host, arg.Rows, arg.SourceDir); frm.ShowDialog(); return PluginReturns.Refresh; } catch { throw; } finally { } }
public override PluginReturns Run(PluginArgument arg) { if (arg.Rows == null || arg.Rows.Length < 1) { SimpleMessage.ShowInfo("Please select file to open with Reflector."); return PluginReturns.None; } try { if (!this.SelectReflector(arg.Host, false)) { if (SimpleMessage.Confirm("Failed to locate .Net Reflector! Do you want to download now?") == System.Windows.Forms.DialogResult.Yes) { SimpleProcess.Start("http://www.reflector.net/"); } return PluginReturns.None; } string path = GetReflector(arg.Host); try { if (!RemoteController.Available) { Process p = new Process(); p.StartInfo.FileName = path; p.StartInfo.WorkingDirectory = Path.GetDirectoryName(path); p.Start(); } int count = 0; while (!RemoteController.Available && count < 60) { Thread.Sleep(500); count++; } if (RemoteController.Available) { for (int i = 0; i < arg.Rows.Length; i++) { RemoteController.LoadAssembly(Path.Combine(arg.SourceDir, arg.Rows[i])); } } } catch (Exception ex) { SimpleMessage.ShowException(ex); } } catch { throw; } return PluginReturns.None; }
public override PluginReturns Run(PluginArgument arg) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("Selected directory: \n {0}\n\n", arg.SourceDir); if (arg.Rows != null || arg.Rows.Length > 0) { sb.AppendFormat("Selected file{0}:\n", (arg.Rows != null && arg.Rows.Length > 1) ? "s" : ""); foreach (string file in arg.Rows) { sb.AppendFormat(" {0}\n", file); } } MessageBox.Show(sb.ToString(), "Plugin Sample"); return PluginReturns.None; }
public override PluginReturns Run(PluginArgument arg) { if (arg.Rows == null || arg.Rows.Length < 1) { SimpleMessage.ShowInfo("Please select file to edit."); return PluginReturns.None; } try { if (!this.SelectEditor(arg.Host, false)) return PluginReturns.None; string path = GetEditor(arg.Host); try { Process p = new Process(); p.StartInfo.FileName = path; p.StartInfo.WorkingDirectory = Path.GetDirectoryName(path); p.StartInfo.Arguments = String.Empty; foreach (string file in arg.Rows) { p.StartInfo.Arguments = String.Format("{0} \"{1}\" ", p.StartInfo.Arguments, Path.Combine(arg.SourceDir,file)); } p.Start(); } catch (Exception ex) { SimpleMessage.ShowException(ex); } } catch { throw; } return PluginReturns.None; }
public override PluginReturns Run(PluginArgument arg) { bool resolveDirAdded = false; try { resolveDirAdded = arg.Host.AddAssemblyResolveDir(arg.SourceDir); frmFileDisassembler frm = new frmFileDisassembler(arg.Host, arg.Rows, arg.SourceDir); frm.ShowDialog(); } catch { throw; } finally { if(resolveDirAdded) arg.Host.RemoveAssemblyResolveDir(arg.SourceDir); } return PluginReturns.None; }
public virtual PluginReturns Run(PluginArgument arg) { return(PluginReturns.None); }
void pluginMenu_Click(object sender, EventArgs e) { ToolStripMenuItem mi = (ToolStripMenuItem)sender; IMainPlugin plugin = mi.Tag as IMainPlugin; if (plugin == null) return; //prepare parameters string sourceDir = _form.TreeView.SelectedNode.FullPath; string[] rows = PathUtils.GetFullFileNames(_form.AssemblyDataGrid.SelectedRows, sourceDir); //run plugin bool resolveDirAdded = false; try { resolveDirAdded = _form.AddAssemblyResolveDir(PluginUtils.PluginDir); Config.AddRecentPlugin(plugin.PluginInfo.Title); PluginArgument pa = new PluginArgument(_form, rows, sourceDir); PluginReturns pr = plugin.Run(pa); if (pr == PluginReturns.Refresh) { _form.TreeViewHandler.RefreshNode(_form.TreeView.SelectedNode, true); } } catch (Exception ex) { SimpleMessage.ShowException(ex); } finally { if (resolveDirAdded) _form.RemoveAssemblyResolveDir(PluginUtils.PluginDir); } //dynamic adjust menu position int startIndex = GetPluginMenuStartIndex(); if (cmAssembly.Items.ContainsKey(mi.Name)) { int index = cmAssembly.Items.IndexOf(mi); if (startIndex != index) { cmAssembly.Items.RemoveAt(index); cmAssembly.Items.Insert(startIndex, mi); } } else { cmMore.DropDownItems.Remove(mi); ToolStripMenuItem miLast = (ToolStripMenuItem)cmAssembly.Items[GetPluginMenuEndIndex()]; cmAssembly.Items.Remove(miLast); cmAssembly.Items.Insert(startIndex, mi); cmMore.DropDownItems.Insert(0, miLast); } }
public virtual PluginReturns Run(PluginArgument arg) { return PluginReturns.None; }