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.
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);
}- Injection into (some?) multithreaded processes fails… Needs investigation