フッキング初心者です。を使用してファイルの一部をフィルタリングして結果をフィルタリングすることにより、ファイルを非表示またはブロックできる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つのことを疑問に思っています:
- プロセスを再開するのではなく、プロセスをブロックできる場合はどうですか。これにより、アプリケーションの実行がブロックされます。しかし、kernel32 のどの関数を呼び出せばよいのでしょうか?
- ファイルをブロックするのではなく、ファイルにフィルターを追加できるように、
ntQueryDirectoryfile function
またはここで実装するにはどうすればよいですか。zwQueryDirectoryfile function
DLL はフィルターに何らかの影響を与えますか?