Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
向用户隐藏进程的一种流行方法是劫持 /proc 目录的迭代函数。这可以按如下方式完成:
struct file *filep = filp_open("/proc", O_RDONLY, 0)); filep->f_op->iterate = p // We swap the pointer with our hacked iterate
我正在研究一种检测方法,我想恢复原来的迭代函数(假设它已经被劫持了)。有没有办法找到用于 /proc 目录的原始迭代函数?
您可以尝试启发式方法。原始函数的地址将与其他 proc 函数位于相同的一般区域,而劫持者函数的地址将明显不同。然后你解析劫持者函数的机器码。劫持者函数在返回之前必须分支到原始函数,因此您查看所有分支指令并检查哪个适合其他原始地址。
我假设您知道您使用的是哪个版本的内核?
只需将该版本的函数复制到您的模块中,并用您的副本地址覆盖迭代指针。
这在功能上应该是等效的,尽管不知道 rouge 模块可能还释放了哪些其他弊端。