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