11

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

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

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

4

2 回答 2

1

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

于 2015-09-15T07:17:37.447 回答
0

我假设您知道您使用的是哪个版本的内核?

只需将该版本的函数复制到您的模块中,并用您的副本地址覆盖迭代指针。

这在功能上应该是等效的,尽管不知道 rouge 模块可能还释放了哪些其他弊端。

于 2015-10-29T21:08:15.643 回答