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