A crate to read memory from another process. Code originally taken from Julia Evans' excellent ruby-stacktrace project.
extern crate read_process_memory;
use std::convert::TryInto;
use std::io;
use read_process_memory::{Pid, ProcessHandle, CopyAddress, copy_address};
// Try to read `size` bytes at `address` from the process `pid`.
fn read_some_memory(pid: Pid, address: usize, size: usize) -> io::Result<()> {
let handle: ProcessHandle = pid.try_into()?;
let _bytes = copy_address(address, size, &handle)?;
println!("Read {} bytes", size);
Ok(())
}
fn main() {
read_some_memory(123 as Pid, 0x100000, 100).unwrap();
}