나는 후크에 초보자입니다. 파일을 숨기거나 결과 중 일부를 필터링하여 결과를 필터링하여 차단할 수있는 파이썬 프로그램을 찾고 있는데 win API hooking
을 사용하고 있습니다. 나는 파일 시스템 필터링 드라이버를 사용하거나 커널 모드 API 후킹을 사용하는 또 다른 방법이 있다는 것을 읽었으며 그 중 here에서 아이디어를 얻었습니다.kernel32.dll을 후크하여 파일 필터를 만드는 방법
어쨌든, 저는 파이썬 녀석입니다. 그래서 파이썬으로 들어가기를 원합니다. 검색 한 내용은 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이 필터에 영향을 미칩니 까?