Предотвращение порождения процессов с помощью кода .NET - PullRequest
4 голосов
/ 26 марта 2010

Я помню, как наткнулся на статью о CodeProject, которая, как мне кажется, довольно давно была посвящена антивирусам или вредоносным программам, о которых писал какой-то парень, который подключился к Windows API, чтобы иметь возможность перехватывать информацию при запуске нового процесса и предлагать пользователю ранее разрешить запуск процесса.

Я больше не могу найти статью, и на самом деле хотел бы иметь возможность реализовать нечто подобное. В настоящее время у нас есть собственный браузер, построенный на Gecko, в который мы интегрировали ограничения доступа к сайтам на основе уровней безопасности наших внутренних сотрудников и т. Д. Мы запрещаем запуск любого другого браузера с таймером и вызовом Process.GetProcessesByName () из список браузеров, которые мы не разрешаем.

Мы хотим добиться того, чтобы вместо того, чтобы просто блокировать эти браузеры, когда между запуском другого браузера и его отключением нашим сервисом существует небольшая задержка, мы хотели бы иметь возможность отображать диалог вместо процесс запуска вообще, объясняя, что программа отсутствует в списке разрешенных. Таким образом, мы можем сгенерировать список «разрешенных» процессов и просто заблокировать все остальное (у нас еще не было проблем с установкой внешних приложений, но вы никогда не будете слишком осторожны).

К сожалению, мы мало занимаемся программированием Windows API на C #, поэтому я не уверен, с чего начать поиск вызовов, которые нам нужно перехватить.

Даже просто отправная точка того, что нужно читать, будет полезна.

1 Ответ

2 голосов
/ 26 марта 2010
...