九色成人免费视频_久久一区视频_视频一区国产精品_精品视频在线观看

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁(yè) > 幫助中心>文章內(nèi)容

Linux操作系統(tǒng)下隱藏文件的新方法

發(fā)布時(shí)間:  2012/8/11 9:13:21
 一. 概述

目前通用的隱藏文件方法還是hooksys_getdents64系統(tǒng)調(diào)用, 大致流程就是先調(diào)用原始的sys_getdents64系統(tǒng)調(diào)用,然后在在buf中做過(guò)濾。修改sys_call_table是比較原始的rk技術(shù)了,碰到好點(diǎn)的管理員, 基本上gdb一下vmlinux就能檢測(cè)出來(lái)。 如何想做到更加隱蔽的話,就要尋找新的技術(shù)。 inline hook也是目前比較流行的做法,不容易檢測(cè)。本文通過(guò)講解一種利用inline hook內(nèi)核中某函數(shù), 來(lái)達(dá)到隱藏文件的方法。

二. 剖析sys_getdnts64系統(tǒng)調(diào)用

想隱藏文件, 還是要從sys_dents64系統(tǒng)調(diào)用下手。 去看下它在內(nèi)核中是如何實(shí)現(xiàn)的。

代碼在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;
    }


 

首先調(diào)用access_ok來(lái)驗(yàn)證是下用戶空間的dirent地址是否越界,是否可寫(xiě)。 接著根據(jù)fd,利用fget找到對(duì)應(yīng)的file結(jié)構(gòu)。 接著出現(xiàn)了一個(gè)填充buf數(shù)據(jù)結(jié)構(gòu)的操作,先不管它是干什么的,接著往下看。

vfs_readdir(file, filldir64, &buf);

函數(shù)最終還是調(diào)用vfs層的vfs_readdir來(lái)獲取文件列表的。 到這,我們可以是否通過(guò)hookvfs_readdir來(lái)達(dá)到隱藏文件的效果呢。 繼續(xù)跟蹤vfs_readdir看看這個(gè)想法是否可行。

 

源代碼在同一文件中:


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;

    res = mutex_lock_killable(&inode->i_mutex);
    if (res)
    goto out;

    res = -ENOENT;
    if (!IS_DEADDIR(inode)) {
    res = file->f_op->readdir(file, buf, filler);
    file_accessed(file);
    }
    mutex_unlock(&inode->i_mutex);
    out:
    return res;
    }
EXPORT_SYMBOL(vfs_readdir);


 

它有3個(gè)參數(shù),第一個(gè)是通過(guò)fget得到的file結(jié)構(gòu)指針, 第2個(gè)通過(guò)結(jié)合上下文可得知,這是一個(gè)回調(diào)函數(shù)用來(lái)填充第3個(gè)參數(shù)開(kāi)始的用戶空間的指針。 接著看看它具體是怎么實(shí)現(xiàn)的。

通過(guò)security_file_permission()驗(yàn)證后, 在用mutex_lock_killable()對(duì)inode結(jié)構(gòu)加了鎖。然后調(diào)用ile->f_op->readdir(file, buf, filler);通過(guò)進(jìn)一步的底層函數(shù)來(lái)對(duì)buf進(jìn)行填充。這個(gè)buf就是用戶空間strcut dirent64結(jié)構(gòu)的開(kāi)始地址。

所以到這里我們可以斷定通過(guò)hook vfs_readdir函數(shù)對(duì)buf做過(guò)濾還是可以完成隱藏文件的功能。而且vfs_readdir的地址是導(dǎo)出的, 這樣就不用復(fù)雜的方法找它的地址了。

但是還有沒(méi)有更進(jìn)一步的方法呢? 前面不是提到過(guò)有個(gè)filldir64函數(shù)嗎, 它用來(lái)填充buf結(jié)構(gòu)的。也許通過(guò)hook它來(lái)做更隱蔽的隱藏文件方法。 繼續(xù)跟蹤filldir64,看看它是怎么實(shí)現(xiàn)的。


static int filldir64(void * __buf, const char * name, int namlen, loff_t offset,
    u64 ino, unsigned int d_type)
    {
    struct linux_dirent64 __user *dirent;
    struct getdents_callback64 * buf = (struct getdents_callback64 *) __buf;
    int reclen = ALIGN(NAME_OFFSET(dirent) + namlen + 1, sizeof(u64));

    buf->error = -EINVAL;
    if (reclen > buf->count)
    return -EINVAL;
    dirent = buf->previous;
    if (dirent) {
    if (__put_user(offset, &dirent->d_off))
    goto efault;
    }
    dirent = buf->current_dir;
    if (__put_user(ino, &dirent->d_ino))
    goto efault;
    if (__put_user(0, &dirent->d_off))
    goto efault;
    if (__put_user(reclen, &dirent->d_reclen))
    goto efault;
    if (__put_user(d_type, &dirent->d_type))
    goto efault;
    if (copy_to_user(dirent->d_name, name, namlen))
    goto efault;
    if (__put_user(0, dirent->d_name + namlen))
    goto efault;
    buf->previous = dirent;
    dirent = (void __user *)dirent + reclen;
    buf->current_dir = dirent;
    buf->count -= reclen;
    return 0;
    efault:
    buf->error = -EFAULT;
    return -EFAULT;
    }


 

先把參數(shù)buf轉(zhuǎn)換成struct getdents_callback64的結(jié)構(gòu)指針。


struct getdents_callback64 {
    struct linux_dirent64 __user * current_dir;
    struct linux_dirent64 __user * previous;
    int count;
    int error;
    };

 

current_dir始終指向當(dāng)前的struct dirent64結(jié)構(gòu),filldir64每次只填充一個(gè)dirent64結(jié)構(gòu)。

它是被file->f_op->readdir循環(huán)調(diào)用的。 通過(guò)代碼可以看出是把dirent64結(jié)構(gòu)的相關(guān)項(xiàng)拷貝到用戶空間的dirent64結(jié)構(gòu)中, 然后更新相應(yīng)的指針。

所以通過(guò)分析filldir64代碼, 可以判定通過(guò)判斷參數(shù)name,看它是否是我們想隱藏的文件,是的話,return 0就好了。

三. 擴(kuò)展

通過(guò)分析sys_getdents64代碼的實(shí)現(xiàn),我們可以了解到通過(guò)hook內(nèi)核函數(shù)的方法,來(lái)完成rootkit的功能是很簡(jiǎn)單和方便的。 關(guān)鍵你能了解它的實(shí)現(xiàn)邏輯。 對(duì)linux平臺(tái)來(lái)說(shuō),閱讀內(nèi)核源代碼是開(kāi)發(fā)rootkit的根本。 如何hook? 最簡(jiǎn)單的就是修改函數(shù)的前幾個(gè)字節(jié),jmp到我們的新函數(shù)中去, 在新函數(shù)完成類(lèi)似函數(shù)的功能。 根本不必在跳回原函數(shù)了, 有了內(nèi)核源代碼在手,原函數(shù)怎么實(shí)現(xiàn),我們就怎么copy過(guò)去給它在實(shí)現(xiàn)一次。 所在linux實(shí)現(xiàn)rk也有很方便的一點(diǎn),就是它的內(nèi)核源代碼是公開(kāi)的, 好好閱讀源代碼吧, 你會(huì)有更多的收獲。


本文出自:億恩科技【www.23lll.com】

服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專(zhuān)注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問(wèn):河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      0
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線

     
     
    九色成人免费视频_久久一区视频_视频一区国产精品_精品视频在线观看
    亚洲精品一二区| 午夜精品视频| 一区二区三区精密机械公司| 精品1区2区3区4区| 国产欧美一区二区三区久久人妖| 欧美激情乱人伦| 美国十次成人| 久久免费视频在线| 久久精品一区蜜桃臀影院| 亚洲女人天堂av| 亚洲午夜久久久久久久久电影院| 亚洲免费成人av电影| 亚洲区国产区| 亚洲啪啪91| 亚洲国产小视频| 久久精品首页| 久久国产日韩欧美| 欧美一区二区视频免费观看| 欧美一区二区成人| 久久福利资源站| 亚洲第一区在线观看| 久久精品国产一区二区三区免费看| 亚洲欧美日韩视频二区| 香蕉久久夜色精品国产| 欧美在线免费一级片| 久久国产毛片| 亚洲高清免费在线| 亚洲激情视频在线| 日韩视频一区二区在线观看| 一本一本久久a久久精品综合麻豆| 亚洲美女视频网| 中文在线资源观看视频网站免费不卡| 亚洲美女中出| 一区二区三区视频在线播放| 亚洲免费视频中文字幕| 亚洲欧美综合精品久久成人| 亚洲欧美日韩中文在线制服| 久久av一区| 每日更新成人在线视频| 欧美激情亚洲视频| 欧美视频一区二区三区在线观看| 国产精品黄视频| 国产日韩欧美视频| 影音先锋久久资源网| 亚洲日本一区二区三区| 一区二区欧美在线| 亚洲欧美一区二区激情| 久久精品一本| aa亚洲婷婷| 篠田优中文在线播放第一区| 久久精品亚洲精品| 欧美黄色视屏| 欧美性淫爽ww久久久久无| 国产欧美日韩视频| 精品动漫3d一区二区三区| 亚洲日本va午夜在线影院| 亚洲午夜视频在线观看| 久久gogo国模裸体人体| 99综合电影在线视频| 亚洲一区欧美二区| 久久人人爽爽爽人久久久| 欧美精品久久久久久久免费观看| 国产精品久久一区二区三区| 国产在线视频欧美| 亚洲三级国产| 午夜国产不卡在线观看视频| 亚洲国产日韩欧美在线99 | 亚洲第一区在线| 日韩一区二区精品视频| 亚洲欧美国产不卡| 久久亚洲一区| 国产精品久久久久7777婷婷| 激情av一区| 一道本一区二区| 亚洲第一精品久久忘忧草社区| 久久婷婷国产综合精品青草| 欧美粗暴jizz性欧美20| 国产精品久久久久久av下载红粉 | 亚久久调教视频| 日韩一区二区免费看| 欧美在线观看日本一区| 欧美激情无毛| 国产亚洲精品美女| 9i看片成人免费高清| 亚洲丰满在线| 亚洲欧美国产精品专区久久| 欧美高清视频www夜色资源网| 国产伦精品一区二区三区高清| 亚洲欧洲日本一区二区三区| 欧美一区二区视频免费观看| 亚洲香蕉伊综合在人在线视看| 久久在线91| 国产伦精品一区二区三区视频黑人| 亚洲片在线资源| 久久se精品一区精品二区| 亚洲欧美电影在线观看| 欧美精品在线一区| 精品不卡一区二区三区| 亚洲欧美成人| 亚洲亚洲精品在线观看 | 在线成人免费观看| 欧美一区二区成人| 亚洲欧美综合v| 欧美日本一区二区三区| 激情五月婷婷综合| 欧美一级视频免费在线观看| 亚洲女同同性videoxma| 欧美日韩亚洲一区二区三区在线| 1024欧美极品| 久久精品国产成人| 久久国产欧美日韩精品| 国产麻豆日韩欧美久久| 中文国产一区| 中文欧美在线视频| 欧美精品日韩| 亚洲欧洲日本一区二区三区| 亚洲三级电影在线观看| 久久影视精品| 激情久久久久久久久久久久久久久久| 亚洲欧美三级伦理| 午夜一区二区三区不卡视频| 国产精品久久久久久久第一福利 | 久久精品官网| 国产女主播视频一区二区| 亚洲视频国产视频| 亚洲一区二区三区免费在线观看| 欧美精品久久久久久久久老牛影院 | 国产精品乱码人人做人人爱| 日韩图片一区| 99热在这里有精品免费| 欧美日韩国产一级| 99这里有精品| 亚洲免费在线视频| 国产精品免费久久久久久| 亚洲一区二区少妇| 欧美亚洲一区三区| 国产视频自拍一区| 性做久久久久久| 久久久久www| 韩国一区二区三区在线观看| 久久精品视频在线| 免费欧美日韩| 亚洲人成人一区二区在线观看| 99re6这里只有精品视频在线观看| 欧美美女视频| 亚洲最黄网站| 午夜亚洲激情| 黑人一区二区| 亚洲精品之草原avav久久| 欧美日韩不卡| 亚洲深夜福利在线| 欧美制服丝袜第一页| 极品少妇一区二区三区| 亚洲精品综合在线| 欧美午夜精品电影| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲一区bb| 国产欧美日韩一区二区三区在线观看 | 国产欧美一区二区三区久久人妖| 久久精品国产成人| 欧美精品网站| 亚洲伊人观看| 六月婷婷久久| 99riav久久精品riav| 欧美自拍偷拍| 91久久精品美女高潮| 亚洲午夜精品福利| 国际精品欧美精品| 一本色道久久综合狠狠躁篇的优点| 国产精品毛片高清在线完整版| 久久激情视频久久| 欧美日韩喷水| 久久精品91| 欧美日韩在线免费视频| 校园春色国产精品| 欧美福利网址| 亚洲欧美电影在线观看| 欧美成人精品高清在线播放| 亚洲网站在线看| 蜜臀va亚洲va欧美va天堂 | 亚洲激情一区二区三区| 国产精品久久久久久久第一福利 | 久久精品五月| 亚洲日本成人| 久久精品欧美日韩| 亚洲精品自在在线观看| 欧美一区久久| 亚洲免费电影在线| 久久精品一区二区三区不卡| 日韩午夜激情| 久久夜色精品亚洲噜噜国产mv| 一区二区国产在线观看| 久久影视精品| 亚洲一区中文| 欧美日韩xxxxx| 亚洲高清视频的网址| 国产精品嫩草影院av蜜臀| 亚洲精品在线观看免费| 国产一区在线播放| 亚洲欧美在线播放|