Wednesday, July 11, 2012

Linux隱藏程序且不被Unhide偵測

透過一些不太標準的方法,可以隱藏指定程序,並且繞過隱藏程序檢查工具 Unhide 的偵測。

Source Code中隱藏程序的部份在hp_hook函式,其他的部份是把整個OS暫停。


由於隱藏程序過程如果發生進程切換,可能導致系統崩潰,但找不到新版本Linux Kernel中關閉整個OS進程切換的內建函式(以前有,但是新版Linux Kernel不希望開發者這麼做),只能關閉CPU單一核心進程切換(preempt_disable或是指令cli)。因此透過切換各CPU核心並執行preempt_disable,確定每個核心的進程切換都被關閉後才執行hp_hook函式。


目前發現在隱藏有視窗的程序時,執行Unhide檢測後,會出現奇怪的結果,原本該程序的PID沒被檢測到隱藏,但是檢測到原本不存在PID,原因不明。


Source Code:http://www.mediafire.com/?mroby9rj1uk2qc5
  1. 執行make編譯Driver,執行gcc -O2 app.c -o app編譯隱藏工具
  2. 先執行insmod hpmod.ko載入Driver,並執行./app (root權限),輸入要隱藏的PID
Hide vim前

Hide vim後,並確定vim正常運作

6 comments:

  1. 原來是在Linux上的,這普及率不高吧?

    另外之前那個Windows上的桌面切換程式有無載點呢?

    ReplyDelete
    Replies
    1. 話說,這個是指有那個讀取不到,還是連sudo top都無法檢查到?

      Delete
    2. 應該是sudo top,ps 都讀不到

      Delete
  2. 好專業的Blog XD
    膜拜一下<(_ _)>

    ReplyDelete
  3. 請教一下,請問您的kernel版本為何?
    我是使用centos或redhat,編driver會少東少西,報一堆錯誤。

    謝謝您!

    ReplyDelete