fix a multitude of clippy warns
This commit is contained in:
@@ -8,6 +8,9 @@ use windows::Win32::System::Threading::{
|
|||||||
#[derive(Debug, Default, Clone)]
|
#[derive(Debug, Default, Clone)]
|
||||||
pub struct Handle(pub HANDLE);
|
pub struct Handle(pub HANDLE);
|
||||||
|
|
||||||
|
unsafe impl Send for Handle {}
|
||||||
|
unsafe impl Sync for Handle {}
|
||||||
|
|
||||||
impl Deref for Handle {
|
impl Deref for Handle {
|
||||||
type Target = HANDLE;
|
type Target = HANDLE;
|
||||||
|
|
||||||
|
|||||||
+11
-23
@@ -1,51 +1,39 @@
|
|||||||
use super::handle::Handle;
|
use super::handle::Handle;
|
||||||
|
|
||||||
use std::ffi::c_void;
|
use std::{ffi::c_void, ptr};
|
||||||
|
|
||||||
use windows::Win32::System::Diagnostics::Debug::{ReadProcessMemory, WriteProcessMemory};
|
use windows::Win32::System::Diagnostics::Debug::{ReadProcessMemory, WriteProcessMemory};
|
||||||
|
|
||||||
pub fn read_process_memory<T>(
|
pub fn read<T>(handle: &Handle, address: usize, value: &mut T) -> Result<(), crate::Error> {
|
||||||
handle: &Handle,
|
|
||||||
address: usize,
|
|
||||||
value: &mut T,
|
|
||||||
) -> Result<(), crate::Error> {
|
|
||||||
unsafe {
|
unsafe {
|
||||||
match ReadProcessMemory(
|
match ReadProcessMemory(
|
||||||
handle.0,
|
handle.0,
|
||||||
address as *const c_void,
|
address as *const c_void,
|
||||||
value as *mut T as *mut c_void,
|
(ptr::from_mut::<T>(value)).cast::<c_void>(),
|
||||||
size_of::<T>(),
|
size_of::<T>(),
|
||||||
None,
|
None,
|
||||||
) {
|
) {
|
||||||
Ok(()) => return Ok(()),
|
Ok(()) => Ok(()),
|
||||||
Err(why) => {
|
Err(why) => Err(crate::Error::MemoryError(format!(
|
||||||
return Err(crate::Error::MemoryError(format!(
|
|
||||||
"failed to read memory: {why}"
|
"failed to read memory: {why}"
|
||||||
)));
|
))),
|
||||||
}
|
}
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn write_process_memory<T>(
|
pub fn write<T>(handle: &Handle, address: usize, value: &mut T) -> Result<(), crate::Error> {
|
||||||
handle: &Handle,
|
|
||||||
address: usize,
|
|
||||||
value: &mut T,
|
|
||||||
) -> Result<(), crate::Error> {
|
|
||||||
unsafe {
|
unsafe {
|
||||||
match WriteProcessMemory(
|
match WriteProcessMemory(
|
||||||
handle.0,
|
handle.0,
|
||||||
address as *const c_void,
|
address as *const c_void,
|
||||||
value as *mut T as *mut c_void,
|
(ptr::from_mut::<T>(value)).cast::<c_void>(),
|
||||||
size_of::<T>(),
|
size_of::<T>(),
|
||||||
None,
|
None,
|
||||||
) {
|
) {
|
||||||
Ok(()) => return Ok(()),
|
Ok(()) => Ok(()),
|
||||||
Err(why) => {
|
Err(why) => Err(crate::Error::MemoryError(format!(
|
||||||
return Err(crate::Error::MemoryError(format!(
|
|
||||||
"failed to write memory: {why}"
|
"failed to write memory: {why}"
|
||||||
)));
|
))),
|
||||||
}
|
}
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
#![allow(clippy::module_inception)]
|
||||||
|
|
||||||
mod handle;
|
mod handle;
|
||||||
mod memory;
|
mod memory;
|
||||||
mod process;
|
mod process;
|
||||||
|
|||||||
@@ -1,8 +1,4 @@
|
|||||||
use super::{
|
use super::{handle::Handle, memory, snapshot};
|
||||||
handle::Handle,
|
|
||||||
memory::{read_process_memory, write_process_memory},
|
|
||||||
snapshot,
|
|
||||||
};
|
|
||||||
|
|
||||||
use derive_more::derive::Display;
|
use derive_more::derive::Display;
|
||||||
|
|
||||||
@@ -70,7 +66,7 @@ impl Process {
|
|||||||
|
|
||||||
pub fn read_mem<T: Default>(&self, address: usize) -> Result<T, crate::Error> {
|
pub fn read_mem<T: Default>(&self, address: usize) -> Result<T, crate::Error> {
|
||||||
let mut value = Default::default();
|
let mut value = Default::default();
|
||||||
read_process_memory(&self.handle, address, &mut value)?;
|
memory::read(&self.handle, address, &mut value)?;
|
||||||
Ok(value)
|
Ok(value)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,7 +92,7 @@ impl Process {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn write_mem<T: Default>(&self, address: usize, mut value: T) -> Result<(), crate::Error> {
|
pub fn write_mem<T: Default>(&self, address: usize, mut value: T) -> Result<(), crate::Error> {
|
||||||
write_process_memory(&self.handle, address, &mut value)?;
|
memory::write(&self.handle, address, &mut value)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ impl Module {
|
|||||||
let path = String::from_utf16_lossy(&module_entry_32_w.szExePath)
|
let path = String::from_utf16_lossy(&module_entry_32_w.szExePath)
|
||||||
.trim_end_matches('\0')
|
.trim_end_matches('\0')
|
||||||
.to_string();
|
.to_string();
|
||||||
let module = Module {
|
let module = Self {
|
||||||
process_id: pid,
|
process_id: pid,
|
||||||
name,
|
name,
|
||||||
path,
|
path,
|
||||||
|
|||||||
Reference in New Issue
Block a user