Минифильтр для этого не подходит. AcquireForSectionSyn c вызывается, когда процесс вызывает CreateFileMapping / ZwCreateSection. Предположим, ProcessA хочет внедрить DLL в ProcessB. Он может создать удаленный поток, который заставит ProcessB вызвать LoadLibrary. В этот момент ваш фильтр увидит, что ProcessB вызывает AcquireForSection syn c, что делает каждый процесс при запуске, так как загрузчик загружает все базовые библиотеки c, такие как: ntdll, kernel32, et c ...
То, что вы хотите, это обратные вызовы Оби. Эти обратные вызовы позволят вам не допустить открытия процесса другим процессом. Пожалуйста, проверьте, что здесь
Представьте, что у вас есть сценарий, в котором ProcessA хочет внедрить что-то в ProcessB с помощью некоторой манипуляции CreateRemoteThread / ReadWriteProcessMemory.
ProcessA : OpenProcess (ProcessB, PROCESS_VM _...);
YouDriverObCallbackRoutine () {Проверьте, должен ли ProcessA иметь доступ, он запрашивает ProcessB. Если нет, вы можете просто убрать доступ и вернуться. } Это приведет к тому, что ProcessA будет иметь дескриптор без этих прав на ProcessB. Теперь, когда ProcessA пытается вызвать CreateRemoteThread / ReadProcessMemory / WriteProcessMemory в ProcessB, система откажет в доступе, поскольку дескриптор больше не имеет этих прав (вы удалили их в обратном вызове Ob).