13 个版本
使用旧的 Rust 2015
0.3.2 | 2023 年 9 月 27 日 |
---|---|
0.3.1 | 2023 年 4 月 26 日 |
0.3.0 | 2022 年 10 月 2 日 |
0.2.1 | 2022 年 5 月 2 日 |
0.1.5 | 2018 年 11 月 20 日 |
在 Unix API 中排名 50
每月下载量 8,886
在 26 个crate中使用(其中16个直接使用)
175KB
5.5K SLoC
proc-maps
此crate支持从另一个进程读取虚拟内存映射,并支持 Linux、macOS、Windows 和 FreeBSD 操作系统。
示例
use proc_maps::get_process_maps;
let maps = get_process_maps(pid)?;
for map in maps {
println!("Filename {:?} Address {} Size {}", map.filename(), map.start(), map.size());
}
此代码最初由 Julia Evans 作为 rbspy 项目的部分开发: https://github.com/rbspy/rbspy。
在 MIT 许可证下发布。
lib.rs
:
从另一个进程获取虚拟内存映射
此crate提供了一个函数——get_process_maps
,该函数返回一个包含 MapRange
结构体的 Vec。
此代码在 Linux、macOS 和 Windows 上工作。每个操作系统都有不同的实现,但所有操作系统共享相同的接口 - 因此可以在操作系统之间通用。
注意:在 macOS 上这需要 root 权限,即使有 root 权限,在启用系统完整性保护的进程中也无法工作(例如 /usr/bin 中的任何内容)。
示例
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());
}
依赖项
~0–7MB
~38K SLoC