diff --git a/src/os/module.rs b/src/os/module.rs index 05272fa..1a30980 100644 --- a/src/os/module.rs +++ b/src/os/module.rs @@ -16,7 +16,6 @@ pub struct ModuleEntry { pub path: PathBuf, pub start_addr: usize, pub data: Vec, - pub module_file_data: Vec, } /// Represents a module loaded in a Windows process. pub struct Module<'a> { @@ -54,7 +53,7 @@ impl<'a> Module<'a> { // parse the elf #[cfg(target_os = "linux")] pub fn parse(name: &'a str, module_entry: &'a ModuleEntry) -> Result { - let elf = Elf::parse(&module_entry.module_file_data)?; + let elf = Elf::parse(&module_entry.data)?; Ok(Self { name, module_info: module_entry, diff --git a/src/os/process.rs b/src/os/process.rs index 4238732..f6a97c7 100644 --- a/src/os/process.rs +++ b/src/os/process.rs @@ -355,19 +355,14 @@ impl Process { for (module_name, (address_space, path)) in modules_info.into_iter() { let (start, end) = address_space; - let mut data = vec![0; (end - start + 1) as usize]; - if let Ok(_) = self.read_memory_raw( - (start as usize).into(), - data.as_mut_ptr() as *mut _, - data.len(), - ) { + // let mut data = vec![0; (end - start + 1) as usize]; + if let Ok(data) = Process::read_elf_file(&path) { self.modules.insert( module_name, ModuleEntry { path: path.clone(), start_addr: start as usize, data: data, - module_file_data: Process::read_elf_file(&path)?, }, ); }