我是挂钩的新手。我正在寻找一个 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 后恢复进程。我想知道两件事:
- 为什么不如果我可以阻止该过程而不是恢复它。这将阻止应用程序运行。但是我应该调用 kernel32 的哪个函数呢?
- 我怎样才能实现
ntQueryDirectoryfile function
或zwQueryDirectoryfile function
在这里,以便我可以向文件添加过滤器而不是阻止它。那么DLL会对过滤器产生任何影响吗?