1 unstable release

0.1.0 Apr 5, 2023

#193 in Windows APIs

GPL-3.0-only

17KB
178 lines

WMem

A basic Windows Memory Manipulation library, aimed at cheat trainers.

Usage Example

Obtaining a handle to the injected process

let handle = Memory::open_current();
/// ...

Writing

// Write "Johnny Smith" to the specified address.
let new_name = b"Johnny Smith";
// + 1 to get a null-byte at the end of the slice when writing it.
Memory::write::<[u8; 12]>(handle, address, *new_name, Some(new_name.len() + 1));

// Write 100 to the specified address.
Memory::write::<i32>(handle, address, 100, None);

Reading

// `read` returns a `Vec<T>` of the type specified for scenarios where you're reading
// an array of bytes.
// If you're just reading a value like `i32` or similar, grab the first entry and continue.

// Read the name of the entity with 32 characters being set as the max capacity.
let name = String::from_utf8(Memory::read::<u8>(handle, address, Some(32))).unwrap();

// Read the health of the entity.
let health = Memory::read::<i32>(handle, address, None)[0];

Dependencies

~240KB