Linux process injection

About

Inject shared object files into running processes.

Uses ptrace to interact with the running target process. Overwrites (and restores) instructions to either call dlopen or __libc_dlopen_mode from within the target process.

Example usage

use so_injection;

fn main() {
    let so_path = "path_to_shared_object";
    so_injection::inject_by_name("top", so_path);

    // or by pid:
    so_injection::inject_by_pid(1337, so_path);
}

To do

  • Injection into (some?) multithreaded processes fails… Needs investigation

Credits