青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

修改linux內(nèi)核達到隱藏進程目的(2.6.28)

要求:

    

高級操作系統(tǒng)與分布式系統(tǒng)作業(yè)

pstop命令列出了unix中當前所有進程的相關(guān)信息,作業(yè)要求在linux中增加兩個系統(tǒng)調(diào)用,功能如下:

    hide():執(zhí)行此系統(tǒng)調(diào)用后,隱藏當前進程,即當前進程不能夠被pstop命令查看到。

    unhide():執(zhí)行此系統(tǒng)調(diào)用后,取消隱藏當前進程,即當前進程恢復(fù)正常,能夠被pstop命令查看到。

解題思路:

    Ps命令和top命令從/proc文件系統(tǒng)中讀取進程信息并顯示出來。因此,如果一個進程的進程號沒有在/proc文件系統(tǒng)中反映出來,則這個進程被“隱藏”了,“隱藏”進程在pstop命令的輸出不出現(xiàn)。

2。修改linux的進程控制塊task_struts,在進程控制塊中增加一個字段:

    int hide;

    hide的值為1時,表示該進程被隱藏;為0時,表示該進程不被隱藏。

3。修改創(chuàng)建進程的相關(guān)代碼,在進程創(chuàng)建時,置hide0;即進程在初始創(chuàng)建時(默認)不被隱藏。

4。在系統(tǒng)中增加系統(tǒng)調(diào)用hide(),其功能為:

     1)將進程控制塊中的hide1

     2)刪除/proc文件系統(tǒng)中該進程的相關(guān)目錄項;

5。在系統(tǒng)中增加系統(tǒng)調(diào)用unhide(),其功能為:

     1)將進程控制塊中的hide0

     2)增加/proc文件系統(tǒng)中該進程的相關(guān)目錄項

具體做法:(實驗內(nèi)核版本2.6.28,)

    跟蹤內(nèi)核可知,proc目錄下進程號目錄是動態(tài)生成的,是在每次readdir,getdents時動態(tài)生成,所以從某種意義上說增加或刪除/proc文件系統(tǒng)中該進程的相關(guān)目錄項這種說法是不正確的。proc目錄內(nèi)容的填充函數(shù)是proc_pid_readdir(fs/proc/base.c)

int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir)  //內(nèi)核源碼,修改前
{
 unsigned int nr = filp->f_pos - FIRST_PROCESS_ENTRY;
 struct task_struct *reaper = get_proc_task(filp->f_path.dentry->d_inode);
 struct tgid_iter iter;
 struct pid_namespace *ns;

 if (!reaper)
  goto out_no_task;

 for (; nr < ARRAY_SIZE(proc_base_stuff); filp->f_pos++, nr++) { //這個for,填充self目錄
  const struct pid_entry *p = &proc_base_stuff[nr];
  if (proc_base_fill_cache(filp, dirent, filldir, reaper, p) < 0)
   goto out;
 }

 ns = filp->f_dentry->d_sb->s_fs_info;
 iter.task = NULL;
 iter.tgid = filp->f_pos - TGID_OFFSET;
 for (iter = next_tgid(ns, iter);         
      iter.task;
      iter.tgid += 1, iter = next_tgid(ns, iter)) {  //這個for,根據(jù)系統(tǒng)內(nèi)進程動態(tài)添加子進程號目錄,也正是我們需要修改的函數(shù)
  filp->f_pos = iter.tgid + TGID_OFFSET;
  if (proc_pid_fill_cache(filp, dirent, filldir, iter) < 0) {
   put_task_struct(iter.task);
   goto out;
  }
 }
 filp->f_pos = PID_MAX_LIMIT + TGID_OFFSET;
out:
 put_task_struct(reaper);
out_no_task:
 return 0;
}
將proc_pid_readdir函數(shù)中的for循環(huán)修改為

 for (iter = next_tgid(ns, iter);         
      iter.task;
      iter.tgid += 1, iter = next_tgid(ns, iter)) {  //這個for,根據(jù)系統(tǒng)內(nèi)進程動態(tài)添加子進程號目錄,也正是我們需要修改的函數(shù)

if(!iter.task->hide){
  filp->f_pos = iter.tgid + TGID_OFFSET;
  if (proc_pid_fill_cache(filp, dirent, filldir, iter) < 0) {
   put_task_struct(iter.task);
   goto out;
  }

}
 }

修改task_struct 添加hide字段(include/linux/sched.h)

struct task_struct{

    ...//現(xiàn)有字段

    int hide;//添加hide字段,切忌不要在最開始添加,因為開始的字段的偏移量已固定,內(nèi)核中其他部分已直接引用,如果在最開始添加,將導(dǎo)致現(xiàn)有代碼不能正常工作

}

修改進程創(chuàng)建代碼,初始化時置hide字段為0,修改copy_process函數(shù)(kernel/fork.c)

p = dup_task_struct(current);
 if (!p)
  goto fork_out;

p->hide=0;//添加

 rt_mutex_init_task(p);

最后一步就是添加系統(tǒng)調(diào)用了,

修改kernel/sys.c

添加

asmlinkage long sys_hide()

{

current->hide=1;

return 0;

}

asmlinkage long sys_unhide()

{

current->hide=0;

return 0;

}

修改arch/x86/asm/include/unistd_32.h

#define __NR_inotify_init1 332
#define __NR_hide 333
#define __NR_unhide 334

#ifdef __KERNEL__

修改arch/x86/kernel/syscall_table_32.s

.long sys_dup3   /* 330 */
 .long sys_pipe2
 .long sys_inotify_init1
 .long sys_hide
 .long sys_unhide

 

重新編譯內(nèi)核...OK....

實驗驗證:

1 test_hide.c

#include <stdio.h>

int main(){
 int pid=getpid();
 char command[80];
 sprintf(command,"ps aux|grep %d\n",pid);
 printf("-------------------------------\n");
 system(command);
 printf("-------------------------------\n");
 asm volatile(\
    "int $0x80"\
    ::"a"(333)); // 執(zhí)行333號系統(tǒng)調(diào)用即sys_hide

 system(command);
 asm volatile(\
    "int $0x80"\
    ::"a"(334));
 printf("-------------------------------\n");
 system(command);
 printf("-------------------------------\n");
 return 0;
}

2 運行,查看實驗結(jié)果



posted on 2010-12-14 15:21 lstar 閱讀(3215) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導(dǎo)航

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

統(tǒng)計

常用鏈接

留言簿

文章檔案

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲美女淫视频| 一区二区免费看| 欧美中文字幕在线| 国产综合色一区二区三区| 久久精品国产亚洲5555| 欧美在线综合视频| 在线欧美日韩精品| 最新热久久免费视频| 欧美国产视频一区二区| 日韩亚洲视频在线| 亚洲中字黄色| 在线播放不卡| 亚洲伦理网站| 国产日韩精品视频一区| 免费日韩成人| 欧美日韩免费视频| 久久久久国产精品一区三寸| 麻豆freexxxx性91精品| 亚洲一区欧美| 久久精品成人一区二区三区| 亚洲精品视频一区| 午夜免费电影一区在线观看| 亚洲国产精品久久精品怡红院 | 国产主播一区| 亚洲国产另类久久精品| 国产伦精品一区二区三区照片91| 久久综合久久综合久久综合| 欧美极品色图| 久久久综合免费视频| 欧美另类亚洲| 久久久女女女女999久久| 欧美乱妇高清无乱码| 久久久夜夜夜| 国产精品chinese| 欧美激情亚洲国产| 国产一区二区三区四区在线观看 | 久热精品视频在线| 亚洲免费小视频| 免费欧美电影| 久久综合给合久久狠狠狠97色69| 欧美日韩国产经典色站一区二区三区| 久久久精品国产免费观看同学| 欧美日韩国产一区| 另类春色校园亚洲| 欧美三级欧美一级| 久久中文字幕一区| 国产精品久久久久久久久借妻| 久久午夜视频| 欧美系列精品| 欧美激情1区| 国产小视频国产精品| 亚洲国产精品悠悠久久琪琪| 国产视频在线一区二区| 亚洲国产综合91精品麻豆| 国产亚洲日本欧美韩国| 日韩视频一区二区在线观看| 精品动漫3d一区二区三区免费版| 日韩一级二级三级| 国产精品亚洲综合| 91久久在线视频| 在线精品视频在线观看高清| 亚洲免费影视第一页| 一级成人国产| 欧美激情免费观看| 欧美大尺度在线观看| 国内视频一区| 欧美亚洲一级片| 欧美亚洲色图校园春色| 欧美日韩激情网| 免费日韩av片| 亚洲韩国精品一区| 久久久久国产一区二区三区| 欧美一区亚洲一区| 国产麻豆成人精品| 一区二区欧美精品| 亚洲一区二区三区四区中文| 欧美日韩系列| 一区二区三区高清不卡| 亚洲精品乱码久久久久久蜜桃麻豆 | 午夜久久99| 久久aⅴ国产紧身牛仔裤| 国产精品日韩在线一区| 亚洲国产精彩中文乱码av在线播放| 狠狠色丁香婷婷综合久久片| 久久国产精品毛片| 久久免费国产| 亚洲高清不卡一区| 久久在线免费视频| 欧美激情在线免费观看| 亚洲精品一区二区三| 欧美理论电影在线播放| 99riav国产精品| 亚洲综合首页| 一区国产精品| 欧美电影打屁股sp| 日韩午夜三级在线| 亚洲影院免费| 狠狠色狠狠色综合人人| 免费视频亚洲| 日韩午夜在线| 久久成人精品视频| 亚洲福利视频网| 欧美三区在线视频| 先锋a资源在线看亚洲| 免费欧美在线视频| 亚洲欧美日韩综合| 一区二区在线观看av| 欧美激情一区二区三级高清视频| 国产精品99久久久久久宅男 | 欧美日韩国产综合视频在线| 亚洲天堂黄色| 奶水喷射视频一区| 这里只有精品视频在线| 国产亚洲免费的视频看| 久久亚洲综合色一区二区三区| 亚洲成人资源网| 亚洲一区二区三区在线看| 国内精品国产成人| 欧美日韩国产成人高清视频| 欧美一级艳片视频免费观看| 欧美激情精品久久久久久蜜臀| 亚洲自拍三区| 亚洲国产欧美国产综合一区| 国产精品久久久亚洲一区| 欧美大片国产精品| 欧美在线视频在线播放完整版免费观看| 亚洲第一精品福利| 久久久久网址| 香蕉视频成人在线观看| 亚洲剧情一区二区| 激情久久综艺| 国产精品久久久久毛片大屁完整版| 欧美国产另类| 久久久综合香蕉尹人综合网| 亚洲伊人色欲综合网| 亚洲国产精品欧美一二99| 久久久久欧美精品| 午夜免费日韩视频| 一本一本a久久| 亚洲激情在线播放| 国产日韩欧美在线一区| 欧美精品久久一区二区| 狂野欧美激情性xxxx欧美| 欧美怡红院视频| 亚洲少妇自拍| 一本久道久久综合中文字幕| 亚洲精品乱码久久久久久日本蜜臀 | 老司机免费视频久久| 久久久久久电影| 欧美一区二区三区在线播放| 亚洲女同精品视频| 亚洲视频国产视频| 99精品欧美| 一本综合久久| 在线视频精品| 欧美激情视频在线播放| 男女激情久久| 欧美va日韩va| 亚洲国产精品ⅴa在线观看 | 国产农村妇女毛片精品久久麻豆 | 免费中文日韩| 男女视频一区二区| 欧美a一区二区| 免费一级欧美在线大片| 欧美国产精品一区| 欧美高清视频| 国产精品自拍视频| 国产亚洲欧美一区二区三区| 国产亚洲成av人片在线观看桃 | 亚洲国产成人av| 亚洲激情成人在线| 亚洲伦伦在线| 亚洲欧美一区二区三区极速播放| 亚洲第一区在线| 日韩视频免费观看高清在线视频 | 欧美一区二区三区久久精品| 欧美专区日韩视频| 久久综合网络一区二区| 欧美激情国产精品| 亚洲精品裸体| 亚洲午夜精品一区二区| 久久大逼视频| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久久人成影片一区二区三区| 欧美精品在线一区二区三区| 国产精品自拍在线| 亚洲国产一区二区a毛片| 中文亚洲欧美| 久久免费视频网站| 亚洲区免费影片| 亚洲一区自拍| 欧美成人中文字幕| 欧美午夜不卡在线观看免费 | 久久精品二区三区| 欧美激情中文字幕一区二区| 99视频超级精品| 久久久精品免费视频| 欧美调教vk| 亚洲日本电影在线| 欧美在线一区二区|