Closed loongs-zhang closed 2 years ago
fn abs(i: i32) -> i32 { unsafe { let original = libc::dlsym(libc::RTLD_DEFAULT, "abs".as_ptr() as *const _) as *mut fn(i32) -> i32; //如何正确地hook系统函数abs? //这里会调用失败 let result = (*original)(i); println!("{}", result); result } } fn main() { println!("{}", abs(-1)); }
你要通过 ffi 来调用
use std::os::raw::c_int; // import an external function from libc extern "C" { fn abs(args: c_int) -> c_int; }