Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hello Box Demo

injrs

DLL injector library and tool written in Rust. Rust 实现的DLL注入工具/库

CI crates.io Documentation dependency status Apache-2.0

Install

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

Usage

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

DLL Demo

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

Usage as library

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 process = 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.

About

🌈 A DLL injector library and CLI written in Rust.

Topics

Resources

Stars

38 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages