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

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

要求:

    

高級操作系統與分布式系統作業

pstop命令列出了unix中當前所有進程的相關信息,作業要求在linux中增加兩個系統調用,功能如下:

    hide():執行此系統調用后,隱藏當前進程,即當前進程不能夠被pstop命令查看到。

    unhide():執行此系統調用后,取消隱藏當前進程,即當前進程恢復正常,能夠被pstop命令查看到。

解題思路:

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

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

    int hide;

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

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

4。在系統中增加系統調用hide(),其功能為:

     1)將進程控制塊中的hide1;

     2)刪除/proc文件系統中該進程的相關目錄項;

5。在系統中增加系統調用unhide(),其功能為:

     1)將進程控制塊中的hide0;

     2)增加/proc文件系統中該進程的相關目錄項

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

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

int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir)  //內核源碼,修改前
{
 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,根據系統內進程動態添加子進程號目錄,也正是我們需要修改的函數
  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函數中的for循環修改為

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

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{

    ...//現有字段

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

}

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

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

p->hide=0;//添加

 rt_mutex_init_task(p);

最后一步就是添加系統調用了,

修改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

 

重新編譯內核...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)); // 執行333號系統調用即sys_hide

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

2 運行,查看實驗結果



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


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導航

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

統計

常用鏈接

留言簿

文章檔案

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久狠狠亚洲综合| 欧美成人一区二区三区在线观看| 亚洲欧洲日韩在线| 牛夜精品久久久久久久99黑人| 伊大人香蕉综合8在线视| 免费成人黄色| 欧美精品亚洲精品| 亚洲综合色丁香婷婷六月图片| 亚洲手机在线| 国精品一区二区三区| 欧美激情视频给我| 欧美日韩福利在线观看| 午夜亚洲一区| 麻豆成人小视频| 亚洲一级黄色片| 久久精品国产v日韩v亚洲| 亚洲国产精彩中文乱码av在线播放| 亚洲国产你懂的| 国产精品久久久久久久久免费樱桃| 亚洲欧美在线另类| 久久综合色播五月| 午夜精品理论片| 老司机免费视频久久| 亚洲午夜激情网页| 久久久久国产精品麻豆ai换脸| 最新亚洲视频| 午夜精品久久久久| 亚洲美女精品成人在线视频| 亚洲淫片在线视频| 亚洲乱码视频| 欧美一区在线看| 亚洲一区二区视频| 蜜桃av综合| 久久成人免费视频| 欧美日本在线一区| 欧美高清视频| 国产午夜精品一区二区三区欧美 | 亚洲人成毛片在线播放| 国产区在线观看成人精品| 欧美激情2020午夜免费观看| 国产精品伦一区| 亚洲日本理论电影| 在线免费观看一区二区三区| 亚洲影院污污.| 99精品免费视频| 玖玖玖免费嫩草在线影院一区| 亚洲免费在线精品一区| 欧美激情一区二区三区在线| 久久综合狠狠| 国产又爽又黄的激情精品视频 | 久久精品国产综合| 欧美视频二区36p| 亚洲青色在线| 亚洲精品视频免费观看| 蜜臀a∨国产成人精品 | 亚洲精品在线视频| 久久全国免费视频| 久久视频在线免费观看| 国产一区二区日韩精品欧美精品| 亚洲一区二区三区777| 日韩视频在线观看| 欧美成人日韩| 亚洲欧洲精品成人久久奇米网| 亚洲激情成人| 欧美成人一区二区在线| 亚洲狠狠婷婷| 99精品国产一区二区青青牛奶| 欧美成人一区二区三区片免费| 欧美激情自拍| 99精品99| 国产精品青草久久| 性做久久久久久免费观看欧美| 久久国产精品高清| 国际精品欧美精品| 美乳少妇欧美精品| 亚洲精品中文字幕女同| 一区二区三区视频观看| 欧美性片在线观看| 午夜视频久久久久久| 久久久蜜桃一区二区人| 在线视频国内自拍亚洲视频| 蜜桃伊人久久| 一本色道久久综合亚洲精品高清 | 黄网动漫久久久| 久久嫩草精品久久久久| 亚洲电影在线播放| 亚洲欧美大片| 国内精品久久久久影院 日本资源| 久久精品99国产精品日本| 欧美成人在线影院| 一本色道久久综合亚洲精品不| 国产精品乱码| 久久女同互慰一区二区三区| 91久久视频| 久久国产加勒比精品无码| 亚洲福利国产| 国产精品美女在线观看| 久久久久成人精品免费播放动漫| 亚洲国产你懂的| 欧美亚洲免费电影| 亚洲激情在线视频| 国产精品久久久久久久久搜平片| 久久精品国产第一区二区三区最新章节| 欧美xart系列高清| 亚洲欧美日韩国产一区二区三区| 伊人久久久大香线蕉综合直播| 欧美精品电影在线| 午夜精品三级视频福利| 亚洲人成啪啪网站| 久久久久久999| 亚洲天堂网站在线观看视频| 黑人巨大精品欧美一区二区| 欧美剧在线免费观看网站| 欧美一区永久视频免费观看| 夜夜嗨av色一区二区不卡| 久热re这里精品视频在线6| 亚洲一区在线播放| 日韩视频第一页| 影院欧美亚洲| 国产日本欧美一区二区三区| 欧美日韩一二三四五区| 免费91麻豆精品国产自产在线观看| 亚洲视频你懂的| 日韩系列欧美系列| 亚洲国产精品久久久久婷婷老年| 久久激情五月激情| 午夜精品一区二区三区在线| 99精品热视频| 最新69国产成人精品视频免费| 国产在线不卡视频| 国产日韩精品在线| 国产精品成av人在线视午夜片| 欧美激情91| 欧美电影在线播放| 蜜月aⅴ免费一区二区三区| 久久久精品一品道一区| 欧美一级大片在线免费观看| 亚洲一区二区av电影| 亚洲天堂男人| 亚洲一本大道在线| 亚洲一区免费网站| 亚洲自拍偷拍福利| 亚洲欧美在线一区| 欧美自拍丝袜亚洲| 久久九九有精品国产23| 久久久另类综合| 久久亚洲精品一区二区| 免费日本视频一区| 欧美精品在线观看播放| 欧美国产日韩在线观看| 欧美高清自拍一区| 欧美精品18+| 欧美色另类天堂2015| 国产精品成人免费| 国产欧美日韩三区| 一区二区三区在线高清| 亚洲国产一区视频| 日韩一级片网址| 亚洲综合国产| 久久久蜜臀国产一区二区| 嫩草成人www欧美| 亚洲日韩欧美视频一区| 在线视频精品一| 久久精品91| 欧美精品一区三区| 国产精品丝袜xxxxxxx| 国产一区三区三区| 亚洲美女区一区| 亚洲综合视频一区| 久久欧美肥婆一二区| 亚洲激情在线观看视频免费| 一区二区免费在线播放| 欧美一区午夜精品| 欧美精品在欧美一区二区少妇| 国产精品久久亚洲7777| 在线观看成人av| 亚洲性感美女99在线| 美女黄毛**国产精品啪啪| 亚洲精品国产精品国自产观看 | 久久亚洲视频| 日韩视频在线一区二区三区| 欧美亚洲免费| 欧美人在线观看| 悠悠资源网亚洲青| 亚洲亚洲精品在线观看 | 亚洲一区二区三区在线| 久久免费视频网| 一区二区不卡在线视频 午夜欧美不卡在 | 久久久久久高潮国产精品视| 欧美欧美全黄| 一区二区在线观看av| 亚洲欧美日韩国产| 亚洲精品国产精品国产自| 欧美一区日本一区韩国一区| 欧美日韩国产色视频| 亚洲国产91| 久久天天躁狠狠躁夜夜爽蜜月| 一区二区三区回区在观看免费视频| 久久久亚洲一区| 国产视频一区在线|