mem_rs/process_module/
read_write.rs

1use crate::memory::{BaseReadWrite, ReadWrite};
2use crate::prelude::ProcessModule;
3
4impl BaseReadWrite for ProcessModule
5{
6    fn read_memory_rel(&self, offset: Option<usize>, buffer: &mut [u8]) -> bool
7    {
8        let mut address = self.base_address;
9        if offset.is_some()
10        {
11            address = address + offset.unwrap(); //unsure if this is intuitive
12        }
13        return self.read_with_handle(self.process_data.borrow().handle, self.process_data.borrow().memory_type.clone(), address, buffer);
14    }
15
16    fn write_memory_rel(&self, offset: Option<usize>, buffer: &[u8]) -> bool
17    {
18        let mut address = self.base_address;
19        if offset.is_some()
20        {
21            address = address + offset.unwrap(); //unsure if this is intuitive
22        }
23        return self.write_with_handle(self.process_data.borrow().handle, self.process_data.borrow().memory_type.clone(), address, buffer);
24    }
25
26    fn read_memory_abs(&self, address: usize, buffer: &mut [u8]) -> bool
27    {
28        return self.read_with_handle(self.process_data.borrow().handle, self.process_data.borrow().memory_type.clone(), address, buffer);
29    }
30
31    fn write_memory_abs(&self, address: usize, buffer: &[u8]) -> bool
32    {
33        return self.write_with_handle(self.process_data.borrow().handle, self.process_data.borrow().memory_type.clone(), address, buffer);
34    }
35}
36
37impl ReadWrite for ProcessModule{}