A Rust library for dealing with memory regions.
It is implemented using platform specific APIs (e.g VirtualQuery
,
VirtualLock
, mprotect
, mlock
).
https://docs.rs/region
Add this to your Cargo.toml
:
toml
[dependencies]
region = "1.0"
and this to your crate root:
rust
extern crate region;
```rust let ret5 = [0xB8, 0x05, 0x00, 0x00, 0x00, 0xC3];
// Page size let pz = region::page::size(); let pc = region::page::ceil(1234); let pf = region::page::floor(1234);
// VirtualQuery | '/proc/self/maps' let q = region::query(ret5.asptr())?; let qr = region::queryrange(ret5.as_ptr(), ret5.len())?;
// VirtualProtect | mprotect region::protect(ret5.as_ptr(), ret5.len(), Protection::ReadWriteExecute)?;
// VirtualLock | mlock let guard = region::lock(ret5.as_ptr(), ret5.len())?; ```
This library has (so far) support for Windows
, Linux
& macOS
.