a毛片毛费观看-a毛片在线-a毛片在线观看-a毛片在线免费观看-国产成人综合洲欧美在线-国产成人综合高清在线观看

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

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

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

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

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

想隱藏文件, 還是要從sys_dents64系統(tǒng)調(diào)用下手。 去看下它在內(nèi)核中是如何實現(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來驗證是下用戶空間的dirent地址是否越界,是否可寫。 接著根據(jù)fd,利用fget找到對應(yīng)的file結(jié)構(gòu)。 接著出現(xiàn)了一個填充buf數(shù)據(jù)結(jié)構(gòu)的操作,先不管它是干什么的,接著往下看。

vfs_readdir(file, filldir64, &buf);

函數(shù)最終還是調(diào)用vfs層的vfs_readdir來獲取文件列表的。 到這,我們可以是否通過hookvfs_readdir來達(dá)到隱藏文件的效果呢。 繼續(xù)跟蹤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;

    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個參數(shù),第一個是通過fget得到的file結(jié)構(gòu)指針, 第2個通過結(jié)合上下文可得知,這是一個回調(diào)函數(shù)用來填充第3個參數(shù)開始的用戶空間的指針。 接著看看它具體是怎么實現(xiàn)的。

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

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

但是還有沒有更進(jìn)一步的方法呢? 前面不是提到過有個filldir64函數(shù)嗎, 它用來填充buf結(jié)構(gòu)的。也許通過hook它來做更隱蔽的隱藏文件方法。 繼續(xù)跟蹤filldir64,看看它是怎么實現(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每次只填充一個dirent64結(jié)構(gòu)。

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

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

三. 擴(kuò)展

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


本文出自:億恩科技【www.ibaoshan.net】

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

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

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

     
     
    精产国品一二三产区9977| 三级国产三级在线| 隔着超薄肉丝袜做AV在线| 亚洲人成人无码WWW影院| 全彩十八禁漫画无遮挡| 激情都市 校园 人妻 武侠| 拔萝卜日本视频在线观看免费| 亚洲AV无码专区亚洲AV伊甸园| 欧美婷婷丁香五月社区| 好大好硬好深好爽想要AV| MM1313亚洲国产精品无码试| 小雪尝禁果又粗又大的中国地图| 内射爽无广熟女亚洲| 国产农村乱人伦精品视频 | 天堂MV在线MV免费MV香蕉| 久青草无码视频在线观看| 国产成人亚洲精品无码H在线| 中文有码无码人妻在线短视频| 无码人妻啪啪一区二区| 女邻居给我口爆18P| 国产真实乱对白精彩久久| 啊别插了视频髙清在线观看| 亚洲乱码一区AV春药高潮图片| 免费中文熟妇在线影片密芽| 国产无套中出学生姝| 阿公抱着我边摸边吃奶视频| 亚洲人成在线观看无码| 熟妇大屁股一区二区三区视频| 蜜臀av蜜臀一区二区三区| 国产午夜福利精品一区二区三区| YYYY1111少妇影院在线观| 亚洲熟妇AV乱码在线观看| 少妇人妻精品一区二区| 蜜桃AV无码免费看永久| 国产在线精品国自产拍影院同性| 暴躁少女CSGO图片| 野花香HD免费高清版6高清版| 婷婷无套内射影院| 内射爆草少妇精品视频| 黑人疯狂巨大XXⅩ0O0| 吃警察爸爸的擎天柱视频| 在线视频精品中文无码| 性爱xxxx在线xxxx欧美| 日本边做边吃奶AⅤ视频免费| 久久熟妇人妻午夜寂寞影院| 国产精品欧美福利久久| CHINESE熟女老女人HD,| 亚洲日本中文字幕乱码在线电影| 双人床上做剧烈运动可以吗| 女神被啪进深处娇喘在线观看| 极品国产主播粉嫩在线观看| 大又大又粗又硬又爽少妇毛片 | 精品国产一区二区三区香蕉| 高潮奶水涨喷在线播放| 99精产国品一二三产区MBA| 亚洲女人被黑人巨大进入| 铜铜铜铜铜铜铜好多水| 欧美日韩在线视频一区| 久久精品99久久香蕉国产| 国产精品久久无码一区二区三区网| JAPAN强要VIDEOD警妞| 亚洲中文字幕无码日韩精品| 无码人妻AⅤ一区二区三区玉蒲团| 人妻AV一区二区三区AV免费| 巨胸爆乳美女露双奶头挤奶| 韩漫画免费网站在线观看| 非洲BBOOMBBOOM的含义| 99久久免费精品国产72精品九| 亚洲中文字幕久久久一区| 亚洲AⅤ熟女高潮30P| 色窝窝亚洲AV网在线观看| 欧美黑人XXXX| 久久久久人妻精品一区| 国产一区二区三区水蜜桃| 丰满的女房东6剧情| AV 日韩 人妻 黑人 综合| 野花高清在线观看免费3| 小荡货奶真大水多好紧视频| 日韩人妻中文无码一区二区七区| 欧美高跟丝袜人妻精品无乱码| 久久久久亚洲AV成人人电影| 韩国三级大全久久网站| 国产丰满老熟女重口对白| 成 人 黄 色 网 站 18| 综合图区亚洲欧美另类图片| 亚洲少妇一区二区视频| 亚洲AV电影天堂男人的天堂| 他的舌头探入蜜源毛毛虫说说| 青青国产揄拍视频| 蜜臀AV无码人妻精品| 九九久久99综合一区二区 | 乌克兰ZOOMKOOL| 日本老熟妇ⅩXX| 欧美精品做受XXX性少妇| 久久综合九色欧美综合狠狠 | 国产999精品2卡3卡4卡| WWW.好好日.COM| 中国极品少妇XXXXX1314| 亚洲熟妇AV日韩熟妇AV| 亚洲AV午夜成人片精品网站 | 无码中文字幕在线播放2| 日韩精品一区二区午夜成人版| 欧美丰满美乳XXⅩ高潮| 久久一本精品久久精品66| 精精国产XXXX视频在线播放| 国产三级在线观看播放| 国产CHINESE中国HDXX| 成人国内精品久久久久影院| FREE潄白的SEX性娇小HD| 中国大陆女RAPPER欢迎你| 亚洲色欲综合一区二区三区小说| 亚洲AV一宅男色影视| 无人区卡一卡二卡三乱码入口| 少妇精品久久久一区二区三区| 人人添人人妻人人爽夜欢视AV| 男女久久久国产一区二区三区| 久久久久久亚洲AV无码蜜芽 | 日韩精品无码一本二本三本色| 欧美亚洲精品SUV| 免费网站看V片在线18禁无码| 久久久久亚洲精品男人的天堂| 精品无码国模私拍视频| 韩漫无羞遮无删减漫免费| 国产欧美精品一区AⅤ影院 | 日韩夜夜高潮夜夜爽无码| 取一个独一无二的网名| 女女互揉吃奶揉到高潮视频| 美女高潮潮喷出白浆视频| 久久久久精品无码专区 | 99精品久久精品一区二区| 中文乱码字幕视频观看网站免费| 一本一道精品欧美中文字幕| 亚洲色18成人网站WWW| 亚洲乱妇老熟女爽到高潮的片| 亚洲成在人线AV中文字幕喷水| 亚洲AV无码AV在线播放| 性VIDEOS欧美熟妇HDX| 无码人妻精品一区二区三 | 精品日本一区二区三区免费 | 99久久国产成人免费网站| 777爽死你免费看一二区无码| 中国VIDEOSEX高潮对白H| 在线观看成人网站| 永久免费AV无码网站韩国毛片| 野花高清影视免费观看西瓜 | 亚洲AV无码乱码在线观看裸奔 | 亚洲精品一区二区三浪潮AV| 亚洲成AV人片在线观看WWW| 亚洲AV日韩综合一区久热 | 老师的粉嫩小又紧水又多| 久久婷婷五月国产色综合| 久久久久无码精品亚洲日韩| 久久精品国产亚洲AV忘忧草18| 精品亚洲国产成人AV不卡| 精品视频国产香蕉尹人视频| 精品无码人妻一区二区三区| 精品少妇人妻AV无码专区| 精品无码一区二区Av蜜桃| 精品无码久久久久国产| 久久国产色欲AV38| 久久久久久国产精品无码下载 | 国模GOGO中国人体私拍| 国产丝袜无码一区二区三区视频| 国产区精品一区二区不卡中文| 国产精品毛片VA一区二区三区| 国产精品天干天干在线观看| 国产男女爽爽爽免费视频| 国产婷婷色一区二区三区| 国产影片AV级毛片特别刺激| 好男人好资源电影在线播放| 精产国品一二三产区9977| 精品人妻少妇一区二区| 久久精品国内一区二区三区| 久久婷婷五月综合色99啪AK| 麻豆一区二区99久久久久| 男友把舌头都伸进我的嘴巴里了| 欧美精产国品一二三区别| 人妻激情乱人伦视频| 日本无人区码卡二卡三卡| 日本护士毛茸茸高潮| 日韩少妇内射免费播放| 熟妇高潮一区二区精品| 忘忧草视频在线观看| 小SAO货水好多真紧H无码视频| 亚洲AV无码专区电影在线观看| 亚洲欧美日韩二三区在线| 一边做饭一边暴躁怎么办| 中文字幕一区二区三区精彩视频| 99视频30精品视频在线观看| 把女人弄爽特黄A大片| 粉嫩av一区二区三区| 国产精品欧美久久久久无广告| 国内揄拍高清国内精品对白| 精品人妻一区二区三区| 久久久久久久精品成人热小说| 免费A级毛片无码A∨性按摩| 欧美黑人巨大精品VIDEOS| 人妻少妇精品久久久久久| 色吊丝AV中文字幕| 无码口爆内射颜射后入|