private void detachButton_Click(object sender, RoutedEventArgs e) { session.Detach(); session = null; script = null; RefreshAllowedActions(); }
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; }
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(); } }
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(); } }
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(); } }
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(); }