Example #1
0
        private void btnInject_Click(object sender, EventArgs e)
        {
            MonoProcess target = (MonoProcess)cbProcesses.SelectedItem;

            if (target == null)
            {
                return;
            }

            target.Process.Refresh();
            if (target.Process.HasExited)
            {
                OnError("The target process has exited");
                return;
            }

            string assembly, name_space, klass, method;

            if (string.IsNullOrEmpty((assembly = txtAssembly.Text)))
            {
                return;
            }
            if (string.IsNullOrEmpty((name_space = txtNamespace.Text)))
            {
                return;
            }
            if (string.IsNullOrEmpty((klass = txtClass.Text)))
            {
                return;
            }
            if (string.IsNullOrEmpty((method = txtMethod.Text)))
            {
                return;
            }

            byte[] data = null;
            try { data = File.ReadAllBytes(assembly); }
            catch (Exception ex)
            {
                OnError($"Could not read the file '{assembly}': {ex.Message}");
                return;
            }

            try
            {
                Injector.Instance.Inject(new InjectionConfig
                {
                    Process      = target.Process,
                    Assembly     = data,
                    AssemblyPath = assembly,
                    Namespace    = name_space,
                    Class        = klass,
                    Method       = method
                });
            }
            catch (Exception ex)
            {
                OnError($"An error occurred during injection: {ex.Message}{Environment.NewLine}{ex.StackTrace}");
            }
        }
Example #2
0
        private void btnInject_Click(object sender, EventArgs e)
        {
            MonoProcess target = (MonoProcess)cbProcesses.SelectedItem;

            if (target == null)
            {
                return;
            }

            target.Process.Refresh();

            if (target.Process.HasExited)
            {
                OnError("The target process has exited");
                return;
            }

            if (_injector == null || _injector.ProcessHandle != target.Process.Handle)
            {
                _injector = new Injector(target.Process.Handle);
            }

            string assembly = txtAssembly.Text;

            if (!Utils.ReadFile(assembly, out byte[] bytes))
Example #3
0
 private void RefreshProcesses()
 {
     cbProcesses.Items.Clear();
     cbProcesses.ResetText();
     cbProcesses.Items.AddRange(MonoProcess.GetProcesses());
     if (cbProcesses.Items.Count > 0)
     {
         cbProcesses.SelectedIndex = 0;
     }
 }