remote_memory icon indicating copy to clipboard operation
remote_memory copied to clipboard

A simple library which provides a way to read and write the memory of other processes

remote_memory Build Status Build status

A modern, easy to used library to read or write a remote processes memory that can be customized to your liking.

supported platforms

The library has been tested to work with OSX, windows and linux operating systems.

usage

By default the library uses jm::process_handle so passing it a process id or native handle is valid.

All of the functions also accept std::error_code as their last parameter.

remote::memory mem = ...;
auto i = mem.read<int>(address); // address can be anything that has size of 4 or 8 bytes
mem.read(another_address, i); // overwrites i
mem.read(another_address, &i, sizeof(i));

mem.write(address, i);
mem.write(address, &i, sizeof(i));

// same as *(*(*address + 0x16) + 0x14) if all of these were byte pointers
mem.traverse_pointers_chain(address, 0x16, 0x4);

// free functions are also present
remote::read_memory(handle, address, &buffer, size);
remote::write_memory(handle, address, &buffer