1 unstable release
0.1.0 | Apr 25, 2021 |
---|
#4 in #shared-libraries
34KB
702 lines
Injex
- aims to provide a library in rust to alter other processes
- at the moment only linux is supported, if i enter a state where i am satisfied with the linux implementation i will look at OpenBSD/Mac/Windows
Example
use injex::prelude::*;
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
let anon = AnonManipulator::new("game_name")?;
inject(&anon, anon.pid(), "path/to/dynamic_library")?;
Ok(())
}
// Dynamic Library in its own crate
use std::thread;
use injex::prelude::*;
#[link_section = ".init_array"]
static INITIALIZE: fn() = init;
fn init() {
thread::spawn(move || -> thread::Result<()> {
let manipulator = InternalManipulator {}
println!("{:?}", manipulator.memory_maps());
let address = manipulator.find(0, 1024, &[0, 3, 10, 32, 1]).unwrap();
loop {
manipulator.write(address, &[255, 255, 255, 255]).unwrap();
}
});
}
Credit
https://github.com/DavidBuchanan314/dlinject
- my injection function is basically a rewrite of dlinject in rust
LICENSE
- MIT
Dependencies
~2.8–5.5MB
~97K SLoC