我在linux下劫持了系统调用write ,然后在hached_write函数里面如何获得PID呢?
我在linux下劫持了系统调用write ,然后在hacked_write函数里面如何获得PID呢?
hached_write应该是运行在进程的上下文中,该如何调用函数获得进程的PID?
劫持的方法是编写内核模块,获得sys_call_table ,
然后保存orig_write = sys_call_table[__NR_write];
sys_call_table[__NR_write] = hacked_write
这样劫持的。
#include <linux/syscalls.h>
然后调用sys_getpid()
但是insmod时出现hookwrite: Unknown symbol sys_getpid
当然我使用
long (*orig_getpid)(void);
orig_getpid = sys_call_table[__NR_getpid];
然后在hacked_write里使用orig_getpid()就能得到pid ,, 这个是可以成功,我已经试验了。
请问还有没有更优雅些的方法获得pid呢?