我一直在评估 Windows 上本地 C++ 程序的分析器和内存检查工具,所有这些都希望以管理员权限安装和运行。我很少在我的机器上以管理员身份登录。如果我需要安装一些东西或做一些需要管理权限的东西,我会使用 runas 并且它工作得很好。
探查器要求管理员权限是否合法,或者探查器开发人员只是懒惰?我在此基础上拒绝所有这些工具是不合理的吗?
我在 XP Pro 机器上使用 VS 2005 进行开发。
我一直在评估 Windows 上本地 C++ 程序的分析器和内存检查工具,所有这些都希望以管理员权限安装和运行。我很少在我的机器上以管理员身份登录。如果我需要安装一些东西或做一些需要管理权限的东西,我会使用 runas 并且它工作得很好。
探查器要求管理员权限是否合法,或者探查器开发人员只是懒惰?我在此基础上拒绝所有这些工具是不合理的吗?
我在 XP Pro 机器上使用 VS 2005 进行开发。
因为他们必须查看其他进程的内存,这通常是禁忌。
一些 cpu 分析器实际上使用操作系统中断进行统计平均......显然,如果没有特权,他们就无法做到这一点:)
我一直在阅读有关此内容的内容,并且我慢慢得出结论,类似分析器的工具通常不需要管理访问权限,但声明您需要它是工具制造商避免所有与不足相关的所有问题的简便方法特权。
所以,我猜他们很懒惰,但也有点务实。
如果我错了,请纠正我(我不是 Windows 安全模型方面的专家),但我相信处理这种情况的一种方法是仅在安装时要求管理员权限。然后创建一个 ProfilerUsers 用户组并向该组授予任何必要的权限,然后询问应将哪些计算机用户添加到该组。
我发现的最令人震惊的事情是,许多开发人员一直以管理权限运行。
听起来像是开发人员的设计选择。他们可能认为在探查内存或动态更改内存中的代码之前请求管理员权限是个好主意,因为某些类型的恶意软件会出现这种行为。
最可能的解释是,它们被实现为专门的调试器,使用 Win32 调试 API,如DebugActiveProcess()。这些功能需要 PROCESS_ALL_ACCESS (如文档中所述),我希望您需要管理员权限。
IIRC Visual Studio 调试器也不会(正常)工作,除非您在系统上拥有本地管理员权限,至少对于 C++ 而言。