0

フッキング初心者です。を使用してファイルの一部をフィルタリングして結果をフィルタリングすることにより、ファイルを非表示またはブロックできるpythonプログラムを探していますwin API hooking。ファイルシステムフィルタリングドライバーを使用するか、カーネルモードAPIフックを使用する別の方法もあると読んだことがありますが、ここからアイデアを得ました。

とにかく、私は python の男なので、それを 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

これにより、中断モードでプロセスが作成され、次のようになります。

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

この関数は、DLL を注入した後にプロセスを再開します。私は2つのことを疑問に思っています:

  1. プロセスを再開するのではなく、プロセスをブロックできる場合はどうですか。これにより、アプリケーションの実行がブロックされます。しかし、kernel32 のどの関数を呼び出せばよいのでしょうか?
  2. ファイルをブロックするのではなく、ファイルにフィルターを追加できるように、ntQueryDirectoryfile functionまたはここで実装するにはどうすればよいですか。zwQueryDirectoryfile functionDLL はフィルターに何らかの影響を与えますか?
4

1 に答える 1

0

道がわかりました。この時点で、kernel32.dll にはカーネル モードのフックが必要であり、これは Python からはほど遠いものであると推測しています。

WINDDKまたVS(Visual Studio)、exe に呼び出すことができる .sys ファイルを作成するためのカーネル デバッガーと環境を提供します。

で定義されているとおりに関数を使用するだけですWIN32HLP

今、そのexeをpythonから作成できるかどうか疑問に思っています(ちなみにどちらが好きですか)/

于 2012-12-24T01:39:42.290 に答える