当前位置:首页 >> 北海电脑维修
电脑学习-Linux设置系统下藏匿文件教程
    电脑维修技术网是一个可以让一个什么都不懂的菜鸟也能够维护自己电脑的网站,内容覆盖、计算机资讯、电脑入门基础知识、各种电脑故障维护、还有电脑及热门游戏操作技巧,同时还提供常用软件和操作系统下载。

Linux下隐藏文件,目前通用的隐藏文件方法还是hooksys_getdents64系统调用, 大致流程就是先调用原始的sys_getdents64系统调用,然后在在buf中做过滤。修改sys_call_table是比较原始的rk技术了,碰到好点的管理员, 基本上gdb一下vmlinux就能检测出来。 如何想做到更加隐蔽的话,就要寻找新的技术。 inline hook也是目前比较流行的做法,不容易检测。本文通过讲解一种利用inline hook内核中某函数, 来达到隐藏文件的方法。

一. 概述

目前通用的隐藏文件方法还是hooksys_getdents64系统调用, 大致流程就是先调用原始的sys_getdents64系统调用,然后在在buf中做过滤。修改sys_call_table是比较原始的rk技术了,碰到好点的管理员, 基本上gdb一下vmlinux就能检测出来。 如何想做到更加隐蔽的话,就要寻找新的技术。 inline hook也是目前比较流行的做法,不容易检测。本文通过讲解一种利用inline hook内核中某函数, 来达到隐藏文件的方法。

二. 剖析sys_getdnts64系统调用

想隐藏文件, 还是要从sys_dents64系统调用下手。 去看下它在内核中是如何实现的。

代码在linux-2.6.26/fs/readdir.c中:

asmlinkage long sys_getdents64(unsigned int fd, struct linux_dirent64

__user * dirent, unsigned int count)

{

struct file * file;

struct linux_dirent64 __user * lastdirent;

struct getdents_callback64 buf;

int error;

error = -EFAULT;

if (!access_ok(VERIFY_WRITE, dirent, count))

goto out;

error = -EBADF;

file = fget(fd);

if (!file)

goto out;

buf.current_dir = dirent;

buf.previous = NULL;

buf.count = count;

buf.error = 0;

error = vfs_readdir(file, filldir64, &buf);

if (error < 0)

goto out_putf;

error = buf.error;

lastdirent = buf.previous;

if (lastdirent) {

typeof(lastdirent->d_off) d_off = file->f_pos;

error = -EFAULT;

if (__put_user(d_off, &lastdirent->d_off))

goto out_putf;

error = count - buf.count;

}

out_putf:

fput(file);

out:

return error;

}

首先调用access_ok来验证是下用户空间的dirent地址是否越界,是否可写。 接着根据fd,利用fget找到对应的file结构。 接着出现了一个填充buf数据结构的操作,先不管它是干什么的,接着往下看。

vfs_readdir(file, filldir64, &buf);

函数最终还是调用vfs层的vfs_readdir来获取文件列表的。 到这,我们可以是否通过hookvfs_readdir来达到隐藏文件的效果呢。 继续跟踪vfs_readdir看看这个想法是否可行。

源代码在同一文件中:

int vfs_readdir(struct file *file, filldir_t filler, void *buf)

{

struct inode *inode = file->f_path.dentry->d_inode;

int res = -ENOTDIR;

if (!file->f_op || !file->f_op->readdir)

goto out;

res = security_file_permission(file, MAY_READ);

if (res)

goto out;



    随着电脑使用时间越来越长,故障也就越来越多,要不断学习新的知识。学习电脑故障和电脑知识大全,帮助您更好的学习电脑!... 如果您喜欢,请记住我们的网站!
本文关键词:Linux操作系统下隐藏文件
版权所有:北联电脑-北海上门电脑维修电话:18777903410
我们的服务
专业快速解决电脑 网络问题 北海电脑维修服务技术支持
专注电脑方面使用问题 为您快速解决电脑使用中的问题
专业化超过8年的电脑维修技术 积累了大量的电脑维修经验
如果您有电脑网络故障问题 请电话联系:18777903410