Linux内核模块:重新劫持虚拟文件系统的迭代功能

Ale*_*See 11 c linux kernel rootkit

从用户隐藏进程的一种流行方法是劫持/ proc目录的iterate函数.这可以按如下方式完成:

struct file *filep = filp_open("/proc", O_RDONLY, 0));
filep->f_op->iterate = p // We swap the pointer with our hacked iterate
Run Code Online (Sandbox Code Playgroud)

我正在研究一种检测方法,我希望恢复原始的迭代功能(假设它已经被劫持).有没有办法找到用于/ proc目录的原始迭代函数?

小智 1

您可以尝试启发式方法。原始函数的地址将与其他 proc 函数位于相同的通用区域中,而劫持者函数的地址将明显不同。然后解析劫持者函数的机器代码。劫持者函数在返回之前必须分支到原始函数,因此您查看所有分支指令并检查哪一条指令适合其他原始地址。