From 977b3e310a29cb0f59a1a4d8f230d8f564cfb6a1 Mon Sep 17 00:00:00 2001 From: Adir Shitrit Date: Sat, 8 Nov 2025 12:20:02 +0200 Subject: [PATCH] add target PID option to CLI --- ghost-cli/src/main.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/ghost-cli/src/main.rs b/ghost-cli/src/main.rs index 0450c0d..c26aa4a 100644 --- a/ghost-cli/src/main.rs +++ b/ghost-cli/src/main.rs @@ -24,16 +24,33 @@ fn main() -> Result<()> { .help("Enable verbose output") .action(clap::ArgAction::SetTrue) ) + .arg( + Arg::new("pid") + .short('p') + .long("pid") + .value_name("PID") + .help("Target specific process ID") + ) .get_matches(); let format = matches.get_one::("format").unwrap(); let verbose = matches.get_flag("verbose"); + let target_pid = matches.get_one::("pid"); println!("Ghost v0.1.0 - Process Injection Detection\n"); let scan_start = Instant::now(); let mut engine = DetectionEngine::new(); - let processes = process::enumerate_processes()?; + + let processes = if let Some(pid_str) = target_pid { + let pid: u32 = pid_str.parse().expect("Invalid PID format"); + process::enumerate_processes()? + .into_iter() + .filter(|p| p.pid == pid) + .collect() + } else { + process::enumerate_processes()? + }; println!("Scanning {} processes...\n", processes.len());