2012-11-30 48 views
0

我是一個掛鉤的新手。我正在尋找一個可以隱藏文件的python程序,或者通過使用win API hooking篩選結果來過濾結果來阻止它。我已經讀過,還有另外一種方法來實現它,使用文件系統過濾驅動程序,或使用內核模式API掛鉤,其中我從here獲得了這個想法。如何通過掛鉤kernel32.dll來製作文件過濾器

無論如何,我是蟒蛇的傢伙,所以我希望它是在Python中,尋找我得到了PyBox。這是我可以將某個DLL注入應用程序然後運行它的地方。

這裏是做到這一點的代碼:

if kernel32.CreateProcessA(self.exe, 
            None, 
            None, 
            None, 
            None, 
            creation_flags, 
            None, 
            None, 
            byref(startupinfo), 
            byref(process_information)): 
      self.pid = process_information.dwProcessId 
      self.tid = process_information.dwThreadId 
      self.h_process = process_information.hProcess 
      self.h_thread = process_information.hThread 
      print "Process successfully launched with PID %d." % self.pid 
      return True 
     else: 
      print "Process could not be launched!" 
      raise WinError() 
      return False 

這處於掛起模式,然後創建過程:注入DLL後

def resume(self): 
     if (kernel32.ResumeThread(self.h_thread) == 0): 
      print "Process could note be resumed!" 
      raise WinError() 
      return False 
     else: 
      print "Process resumed." 
      return True 

此功能恢復的過程。我想知道兩件事:

  1. 爲什麼不能如果我可以阻止進程而不是恢復它。這將阻止應用程序運行。但我應該調用kernel32的哪個函數?
  2. 我如何能實現ntQueryDirectoryfile functionzwQueryDirectoryfile function這裏,這樣我可以一個過濾器添加到文件,而不是阻止它。那麼DLL會對過濾器產生什麼影響?

回答

0

明白了。 我現在猜測在這一點上,kernel32.dll需要內核模式掛鉤這遠遠蟒蛇到達。

WINDDKVS(Visual Studio)提供了內核調試器和環境來創建.sys文件,這些文件可以調用到exe中。

只需使用功能按在WIN32HLP

定義現在,我只是想知道如果EXE可以做出來的蟒蛇(我喜歡的方式)的/

相關問題