歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux操作系統下的高級隱藏技術詳解(5)

Linux操作系統下的高級隱藏技術詳解(5)

日期:2017/2/25 10:36:46   编辑:Linux教程

Linux操作系統下的高級隱藏技術詳解(5)

2.3 隱藏進程

  在Linux中不存在直接查詢進程信息的系統調用,類似於ps這樣查詢進程信息的命令是通過查詢proc文件系統來實現的,在背景知識中已經介紹過 proc文件系統,由於它應用文件系統的接口實現,因此同樣可以用隱藏文件的方法來隱藏proc文件系統中的文件,只需要在上面的 hacked_getdents中加入對於proc文件系統的判斷即可。由於proc是特殊的文件系統,只存在於內存之中,不存在於任何實際設備之上,所以Linux內核分配給它一個特定的主設備號0以及一個特定的次設備號1,除此之外,由於在外存上沒有與之對應的i節點,所以系統也分配給它一個特殊的節點號PROC_ROOT_INO(值為1),而設備上的1號索引節點是保留不用的。通過上面的分析,可以得出判斷一個文件是否屬於proc文件系統的方法:

  1)得到該文件對應的inode結構dinode;

  2)if (dinode->i_ino == PROC_ROOT_INO && !MAJOR(dinode->i_dev) && MINOR(dinode->i _dev) == 1) {該文件屬於proc文件系統}

  通過上面的分析,給出隱藏特定進程的偽代碼表示:

  hacket_getdents(unsigned int fd, struct dirent *dirp, unsigned int count)

  {

  調用原來的系統調用;

  得到fd所對應的節點;

  if(該文件屬於proc文件系統&&該文件名需要隱藏)

  {從dirp中去掉該文件相關信息}

  } 

Copyright © Linux教程網 All Rights Reserved