Как автоматически контролировать и ограничивать ресурс процесса в Windows - PullRequest
1 голос
/ 24 января 2010

В Linux обычно я использую функцию ptrace для отслеживания всех системных вызовов и прекращения процесса, если он пытается сделать что-либо вредное для моей машины, например, system("shutdown -s -t 00") или около того.

Есть ли способ сделать это в Windows?

РЕДАКТИРОВАТЬ: я хочу написать программу Sandbox, чтобы ограничить время и использование памяти ее дочернего элемента, которая может работать как в Windows, так и в Linux, и теперь она может работать только в Linux через ptrace

Ответы [ 3 ]

4 голосов
/ 24 января 2010

Если вы присоединяете ваш процесс к Объекту задания , вы можете ограничить время ЦП и память процесса. Это не позволит вам предотвратить совершение злонамеренных действий, но позволит достичь того, о чем вы просили.

1 голос
/ 24 января 2010

Чтобы запустить приложение в песочнице, вы можете создать новый токен ограниченного доступа с помощью CreateRestrictedToken ( здесь с информацией о правах, которые вы можете включить / отключить), позвоните ImpersonateLoggedOnUser с новым токеном, запустите новый процесс с помощью CreateProcess и вернитесь к старому токену с помощью RevertToSelf .Я не уверен, что во всех контекстах вы можете вместо этого напрямую использовать CreateProcessAsUser , попробуйте.

0 голосов
/ 26 мая 2010

Может быть, слишком поздно, просто наткнулся на ваше сообщение, ища ту же функциональность и сам.

Я нашел предел процессора 1.1

Вы можете скачать его здесь с исходным кодом http://www.killprog.com/etce.html

Я использую его очень успешно, надеюсь, он вам поможет

...