Example #1
0
 private void detachButton_Click(object sender, RoutedEventArgs e)
 {
     session.Detach();
     session = null;
     script  = null;
     RefreshAllowedActions();
 }
Example #2
0
        private void Hook(string targetProcess, string scriptLocation)
        {
            try
            {
                Devices       = new List <Frida.Device>();
                Processes     = new List <Frida.Process>();
                deviceManager = new Frida.DeviceManager(Dispatcher.CurrentDispatcher);
                var devices = deviceManager.EnumerateDevices();
                //we want the local device
                var device = devices.Where(x => x.Name == "Local System").FirstOrDefault();
                if (device == null)
                {
                    Console.WriteLine("[*] Failed to select device!");
                    return;
                }
                var processes = device.EnumerateProcesses();
                foreach (var process in processes)
                {
                    Processes.Add(process);
                }
                Console.WriteLine(String.Format("[*] Got {0} processes...", Processes.Count));

                //find the process
                var target = Processes.Where(x => x.Name == targetProcess).FirstOrDefault();
                if (target == null)
                {
                    foreach (Frida.Process p in Processes)
                    {
                        Console.WriteLine(p.Name);
                    }
                    Console.WriteLine("[*] Failed to identify target process!");
                    return;
                }
                Console.WriteLine(String.Format("[*] Process {0} found...", targetProcess));
                session = device.Attach(target.Pid);
                Console.WriteLine(String.Format("[*] Hooked process with PID {0}", target.Pid.ToString()));
                //Inject the script...
                Console.WriteLine("[*] Injecting script...");
                try
                {
                    Console.WriteLine(String.Format("[*] Loading script from {0}...", scriptLocation));
                    string scriptText = File.ReadAllText(scriptLocation);
                    script = session.CreateScript(scriptText);
                    Console.WriteLine("[*] Script loaded...");
                    script.Message += new Frida.ScriptMessageHandler(script_Message);
                    script.Load();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("[*] Error loading script!");
                    Console.WriteLine(ex.ToString());
                    return;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("[*] Fail!");
            }
        }
 private void loadButton_Click(object sender, RoutedEventArgs e)
 {
     session         = localdevice.Attach(ggproc.Pid);
     script          = session.CreateScript(scriptsource);
     script.Message += Script_Message;
     script.Load();
     loadButton.IsEnabled = false;
 }
Example #4
0
 private void session_Detached(object sender, EventArgs e)
 {
     if (sender == session)
     {
         debugConsole.Items.Add("Detached from Session with Pid: " + session.Pid);
         session = null;
         script  = null;
         RefreshAllowedActions();
     }
 }
Example #5
0
 private void session_Detached(object sender, Frida.SessionDetachedEventArgs e)
 {
     if (sender == session)
     {
         debugConsole.Items.Add($"Detached from Session with PID {session.Pid} ({e.Reason})");
         session = null;
         script  = null;
         RefreshAllowedActions();
     }
 }
Example #6
0
 private void session_Detached(object sender, EventArgs e)
 {
     if (sender == session)
     {
         Module.Output.AppendLine("Detached from Session with Pid: " + session.Pid);
         session = null;
         script  = null;
         RefreshAllowedActions();
     }
 }
Example #7
0
        private void attachButton_Click(object sender, RoutedEventArgs e)
        {
            var device  = deviceList.SelectedItem as Frida.Device;
            var process = processList.SelectedItem as Frida.Process;

            try
            {
                session = device.Attach(process.Pid);
            }
            catch (Exception ex)
            {
                debugConsole.Items.Add("Attach failed: " + ex.Message);
                return;
            }
            session.Detached += new EventHandler(session_Detached);
            debugConsole.Items.Add("Attached to " + session.Pid);
            RefreshAllowedActions();
        }
Example #8
0
        private void attachButton_Click(object sender, RoutedEventArgs e)
        {
            var device = deviceList.SelectedItem as Frida.Device;
            var process = processList.SelectedItem as Frida.Process;

            try
            {
                session = device.Attach(process.Pid);
            }
            catch (Exception ex)
            {
                debugConsole.Items.Add("Attach failed: " + ex.Message);
                return;
            }
            session.Detached += new EventHandler(session_Detached);
            debugConsole.Items.Add("Attached to " + session.Pid);
            RefreshAllowedActions();
        }
Example #9
0
 private void session_Detached(object sender, EventArgs e)
 {
     if (sender == session)
     {
         debugConsole.Items.Add("Detached from Session with Pid: " + session.Pid);
         session = null;
         script = null;
         RefreshAllowedActions();
     }
 }
Example #10
0
 private void detachButton_Click(object sender, RoutedEventArgs e)
 {
     session.Detach();
     session = null;
     script = null;
     RefreshAllowedActions();
 }