Add ability to spawn or attach by process name

Signed-off-by: Dimitris Zervas <dzervas@dzervas.gr>
This commit is contained in:
Dimitris Zervas
2024-04-15 21:49:55 +03:00
parent b6a48d5155
commit ff5a7f152f
5 changed files with 174 additions and 49 deletions

View File

@ -2,19 +2,26 @@ pub mod injector;
#[cfg(feature = "frida")]
pub mod frida_handler;
pub use injector::attach;
pub use injector::*;
fn main() {
let args: Vec<String> = std::env::args().collect();
if args.len() < 2 {
eprintln!("Usage: {} <PID>", args[0]);
if args.len() >= 2 {
if let Ok(pid) = args[1].parse() {
attach(pid);
return;
} else {
attach_name(args[1].as_ptr(), args[1].len());
return;
}
} else if let Some(spawn_path) = option_env!("TARGET_SPAWN") {
spawn(spawn_path.as_ptr(), spawn_path.len());
return;
} else if let Some(process_name) = option_env!("TARGET_PROCESS") {
attach_name(process_name.as_ptr(), process_name.len());
return;
}
let pid: u32 = args[1].parse().unwrap();
attach(pid);
eprintln!("Usage: {} <PID|Process Name>", args[0]);
}
// #[cfg(test)]
// mod integration_tests;