rhai-memflow
This crate provides the memory introspection library [Memflow] to [Rhai], an embedded scripting language and evaluation engine for [Rust].
[Memflow] is a library that allows live memory introspection of running systems and their snapshots.
Cargo.toml
```toml [dependencies] rhai-memflow = "0.1"
rhai-memflow
uses version ^0.2.0-beta
, this .memflow = { version = "^0.2.0-beta", features = ["plugins"] } ```
```js let calcproc = OS.process("CalculatorApp.exe"); let modbase = calc_proc.mod("CalculatorApp.dll").base;
// Our native! native COFFHeader { ^ 6, // Pad 6 bytes. sections: UInt16, timestamp: UInt32 };
let coffheader = calcproc.read(COFFHeader, modbase + 0x40); print(coffheader); ```
```rust use memflow::prelude::v1::*; use rhai::{packages::Package, Engine, Scope};
// Create our inventory and OS. let inventory = Inventory::scan(); let os = inventory.builder().os_chain(chain).build()?;
// Register our memflow package. let mut engine = Engine::new(); let package = MemflowPackage::new(); package.registerintoengine(&mut engine);
// Add our OS to rhai scope. let mut scope = Scope::new(); let sharedos: SharedOs = RefCell::new(os); scope.pushconstant("OS", shared_os);
// Run our script. engine .evalwithscope::<()>(&mut scope, include_str!("script.rhai")) .expect("eval failed"); ```