Crates.io | injrs |
lib.rs | injrs |
version | 0.1.2 |
source | src |
created_at | 2021-10-20 09:22:11.162989 |
updated_at | 2021-10-22 00:58:21.90426 |
description | DLL injector library and tool written in Rust. Rust 实现的DLL注入工具/库。 |
homepage | |
repository | |
max_upload_size | |
id | 467806 |
size | 27,488 |
Go to releases page download the latest binary.
Or if you have rust installed, use cargo to install:
cargo install injrs
Install rust if you don't have.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
At most time, you can use injrs
as a simple tool.
USAGE:
injrs PROCESS_NAME/PID [Libraies...]
EXAMPLES:
1. Inject test.dll to process Calc.exe
$ injrs Calc.exe test.dll
2. Inject test.dll and demo.dll to process with PID: 1888
$ injrs 1888 test.dll demo.dll
The code in examples/hellobox is a simple message box dll for testing injector.
You can build with command:
cargo build --release --example hellobox
Build target will locate in:
target/i686-pc-windows-msvc/release/examples/hellobox.dll
Try to inject the demo dll to your target process:
injrs PID/PNAME target/i686-pc-windows-msvc/release/examples/hellobox.dll
You also can write a injector project using injrs
as a library.
use injrs::process_windows::*;
use injrs::inject_windows::*;
fn main() {
let name = "Calc.exe";
let dll = "./my-demo-dll.dll";
let p = Process::find_first_by_name(name).unwrap();
print!("inject dll to process => ");
match process.inject(dll) {
Err(e) => {
println!("error: {}", e);
},
Ok(_) => {
println!("success");
}
}
}
for more detail you can check src/main.rs.