Зачем профилировщикам нужны административные привилегии (в Windows) - PullRequest
5 голосов
/ 12 февраля 2009

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

Законно ли для профилировщика требовать прав администратора или разработчики профилировщика просто ленивы? Разве я безрассуден, отвергая все эти инструменты на этой основе?

Я работаю с VS 2005 на машине с XP Pro.

Ответы [ 5 ]

4 голосов
/ 12 февраля 2009

Потому что они должны смотреть на память другого процесса, что обычно является табу.

3 голосов
/ 13 февраля 2009

Я читал об этом и постепенно прихожу к выводу, что инструменты, подобные профилировщику, вообще не требуют административного доступа, но, заявляя, что вам это нужно, производители инструментов могут легко избежать всех проблем связано с недостаточными привилегиями.

Итак, я думаю, они ленивы, но также несколько прагматичны.

Поправьте меня, если я ошибаюсь (я не эксперт по модели безопасности Windows), но я считаю, что один из способов справиться с этой ситуацией - требовать права администратора только во время установки. Затем создайте группу пользователей ProfilerUsers и предоставьте все необходимые привилегии этой группе, затем спросите, каких пользователей компьютеров следует добавить в эту группу.

Самое шокирующее, что я обнаружил, это то, что многие разработчики все время работают с правами администратора.

3 голосов
/ 12 февраля 2009

некоторые профилировщики ЦП фактически выполняют усреднение статистики, используя прерывания ОС ... очевидно, они не могут сделать это без привилегий для этого:)

0 голосов
/ 13 февраля 2009

Наиболее вероятным объяснением является то, что они реализованы в виде специализированных отладчиков с использованием API-интерфейсов отладки Win32, таких как DebugActiveProcess () . Для этих функций требуется PROCESS_ALL_ACCESS (как подробно описано в документации), и я ожидаю, что для этого вам потребуются права администратора.

IIRC отладчик Visual Studio также не будет работать (должным образом), если у вас нет прав локального администратора в вашей системе, по крайней мере для C ++.

0 голосов
/ 12 февраля 2009

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

...