Обнаружить какую-либо программу, которая использует OpenProcess?
Для защиты моей программы я хотел бы иметь проверку, которая обнаруживает любую программу, которая выполняет OpenProcess с моим PID? Я хочу предотвратить то, что другие программы могут легко справиться с моей программой.
Какие варианты у меня есть? (WinAPI и т. Д.) Получает ли моя программа какое-либо уведомление, как только другая программа использует OpenProcess?
Спасибо
1 ответ
Какие варианты у меня есть? (WinAPI и т. Д.) Получает ли моя программа какое-либо уведомление, как только другая программа использует OpenProcess?
Нет, OpenProcess
происходит в ядре и работает полностью без взаимодействия с открываемым процессом. Поскольку он используется отладчиками (предназначен для) и может произойти, когда ваш процесс застрял или завис, было бы нецелесообразно иметь какую-то потребность в том, чтобы ваш процесс "знал", что он открыт.
Ваш единственный вариант (и это плохой вариант) - использовать некоторую форму перехвата на OpenProcess
системный вызов. Обратите внимание, что для OpenProcess
и я думаю, что многие антивирусные сканеры в тот или иной момент используют это, предотвращая переход вирусного сканера в режим "Я был атакован", что вполне возможно.
И если вы думаете, что можете сделать это способом, который не может быть легко обойден, тогда вы обманываете себя. Было бы ужасно трудно поместить ДРУГОЙ слой крючков в OpenProcess
системный вызов, который пропускает ваше вмешательство и просто вызывает "реальный" OpenProcess
, Итак, если ваша программа действительно интересна для открытия, кто-то найдет способ сделать это...