7 releases
Uses old Rust 2015
0.1.8 | Apr 4, 2021 |
---|---|
0.1.7 | Mar 21, 2021 |
0.1.6 | Jul 14, 2019 |
0.1.5 | Nov 20, 2018 |
0.1.4 | Aug 31, 2018 |
3,056 downloads per month
Used in 6 crates
(4 directly)
57KB
1.5K
SLoC
proc-maps
This crate supports reading virtual memory maps from another process - and supports Linux OSX and Windows operating systems.
Example:
use proc_maps::{get_process_maps, MapRange};
let maps = get_process_maps(pid)?;
for map in maps {
println!("Filename {} Address {} Size {}", map.filename(), map.start(), map.size());
}
This code was originally developed by Julia Evans as part of the rbspy project: https://github.com/rbspy/rbspy.
Release under the MIT License.
lib.rs
:
Get virtual memory maps from another process
This crate provides a function—get_process_maps
that returns a Vec of MapRange
structs.
This code works on Linux, OSX and Windows. Each operating system has different implementations, but the functions and struct's for each OS share the same interface - so this can be used generically across operating systems.
Note: on OSX this requires root access, and even with root will still not work on processes that have System Integrity Protection enabled (anything in /usr/bin for example).
Example
use proc_maps::{get_process_maps, MapRange, Pid};
let maps = get_process_maps(123456 as Pid).unwrap();
for map in maps {
println!("Filename {:?} Address {} Size {}", map.filename(), map.start(), map.size());
}
Dependencies
~120KB