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

修改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>
            欧美高清你懂得| 欧美一级久久久久久久大片| 欧美国产第一页| 久久精品国语| 亚洲国产成人精品久久| 男女av一区三区二区色多| 久久婷婷成人综合色| 亚洲激情视频在线观看| 亚洲人成啪啪网站| 欧美成年人网站| 一本久久a久久免费精品不卡| 亚洲精品视频在线观看网站| 欧美午夜电影网| 久久精品国产一区二区电影| 久久久www成人免费毛片麻豆| 亚洲国产高清高潮精品美女| 亚洲国产精品电影| 欧美亚洲第一区| 久久女同精品一区二区| 免费成人av| 午夜精品久久久久久久久久久久久| 亚洲欧美激情诱惑| 亚洲国产综合在线| 中国av一区| 亚洲黄色影片| 亚洲男女自偷自拍| 亚洲国产一区二区三区在线播 | 国产亚洲一级| 欧美激情一区二区三区成人| 欧美日韩中文字幕精品| 久久精品一区二区三区不卡| 欧美jizzhd精品欧美喷水| 亚洲欧美一区二区在线观看| 久久综合99re88久久爱| 亚洲免费视频网站| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲午夜在线观看视频在线| 久久久青草青青国产亚洲免观| 亚洲一本视频| 欧美3dxxxxhd| 久久一区二区精品| 欧美性jizz18性欧美| 欧美国产精品劲爆| 国产一区二区精品丝袜| 亚洲视频在线二区| 日韩视频在线一区二区| 久久久亚洲国产美女国产盗摄| 亚洲一级二级| 欧美精品一区二区精品网| 老色批av在线精品| 国产乱码精品一区二区三区不卡| 亚洲精美视频| 亚洲激情校园春色| 久久免费黄色| 久久夜色精品亚洲噜噜国产mv| 国产精品色婷婷| 亚洲美女福利视频网站| 亚洲精品男同| 免费日韩成人| 欧美黄色成人网| 伊人久久婷婷色综合98网| 香蕉尹人综合在线观看| 欧美亚洲尤物久久| 国产精品一区二区三区乱码| 一区二区三区四区五区精品| 亚洲私人影院在线观看| 蜜桃av一区二区三区| 久久综合九色综合网站| 激情另类综合| 久久免费视频观看| 免费观看在线综合色| 在线精品在线| 免费亚洲电影在线| 亚洲人成网站在线播| av成人免费在线观看| 欧美三区美女| 亚洲视频电影在线| 久久成人av少妇免费| 国产亚洲精品久久飘花| 久久黄色小说| 欧美成人一区二区三区| 亚洲精品视频一区二区三区| 欧美精品一区二区视频| 一区二区高清在线观看| 小黄鸭精品aⅴ导航网站入口| 国产精品美女久久福利网站| 午夜欧美理论片| 免费欧美在线视频| 日韩视频在线免费| 国产精品久久久对白| 欧美一区二区三区日韩视频| 免费在线成人av| 一本色道久久综合亚洲精品婷婷 | 欧美日韩国产91| 一区二区三区高清不卡| 久久国内精品自在自线400部| 尤物精品在线| 欧美日韩在线直播| 欧美一区亚洲二区| 亚洲国产精品视频一区| 亚洲欧美精品一区| 在线观看欧美一区| 欧美午夜精品理论片a级按摩| 欧美一区2区三区4区公司二百| 欧美成人r级一区二区三区| 亚洲色诱最新| 尤妮丝一区二区裸体视频| 欧美日本韩国一区二区三区| 亚洲欧美一区二区三区久久| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲精品网站在线播放gif| 国产精品无人区| 欧美高清视频一区| 欧美一级专区免费大片| 亚洲另类黄色| 麻豆成人小视频| 亚洲免费中文字幕| 亚洲人成绝费网站色www| 国产精品亚洲美女av网站| 欧美不卡视频一区发布| 欧美一区网站| 国产精品99久久久久久久女警| 欧美国产日本韩| 久久精品一区二区| 亚洲嫩草精品久久| 亚洲精品中文字幕女同| 在线播放亚洲| 国产一区二区三区在线观看精品 | 亚洲国产成人精品久久| 国产精品日本| 欧美日本高清| 欧美国产日韩视频| 久久久久久久久久久成人| 亚洲综合好骚| 一区二区欧美国产| 亚洲人成亚洲人成在线观看| 蘑菇福利视频一区播放| 久久av资源网站| 亚洲免费中文| 亚洲欧美激情四射在线日| 国产精品99久久不卡二区| 亚洲精品极品| 亚洲精品美女在线观看| 亚洲激情午夜| 亚洲激情电影中文字幕| 91久久国产精品91久久性色| 在线免费观看一区二区三区| 黑人一区二区三区四区五区| 激情久久久久| 在线欧美福利| 亚洲精品中文字幕有码专区| 亚洲人成亚洲人成在线观看| 最近看过的日韩成人| 亚洲精品免费在线播放| 亚洲精品自在在线观看| 日韩一级免费观看| 亚洲调教视频在线观看| 亚洲欧美日韩国产| 久久精品视频在线| 欧美.www| 亚洲青色在线| 亚洲无线视频| 久久国产一区| 美日韩精品视频免费看| 欧美精品一区二区在线观看| 欧美日韩另类国产亚洲欧美一级| 欧美日韩免费看| 国产精品入口尤物| 极品中文字幕一区| 99视频精品在线| 午夜国产不卡在线观看视频| 久久久91精品国产| 欧美激情国产精品| av不卡免费看| 欧美在线一二三四区| 欧美高清视频| 国产日本欧美一区二区三区| 亚洲高清不卡在线| 亚洲一二区在线| 另类av一区二区| 一本色道久久加勒比88综合| 欧美一区国产二区| 欧美日韩1080p| 国内精品久久久久影院优 | 国产视频不卡| 亚洲激情影院| 欧美专区福利在线| 亚洲第一黄色网| 亚洲自拍偷拍福利| 美女性感视频久久久| 国产精品毛片| 亚洲乱码国产乱码精品精天堂| 欧美在线视频网站| 亚洲精品日韩综合观看成人91| 欧美一区二区福利在线| 欧美日韩三级电影在线| 亚洲承认在线| 久久精品五月婷婷| 亚洲特级片在线| 欧美欧美全黄|