2009-02-12 10 views
5

Ich habe Profiler und Speicherprüfprogramme für native C++ - Programme unter Windows ausgewertet und alle, die installiert werden sollen und laufen mit Administratorrechten. Ich melde mich selten als Administrator auf meinem Rechner an. Wenn ich etwas installieren oder etwas ausführen muss, das Administratorrechte erfordert, verwende ich Runas und es funktioniert ziemlich gut.Warum Profiler administrative Rechte benötigen (unter Windows)

Ist es legitim, dass ein Profiler Administratorrechte benötigt, oder sind die Profiler-Entwickler nur faul? Bin ich unvernünftig, wenn ich all diese Werkzeuge auf dieser Grundlage ablehne?

Ich entwickle mit VS 2005 auf einer XP Pro Maschine.

Antwort

3

Ich habe darüber gelesen, und ich komme langsam zu der Schlussfolgerung, dass Profiler-ähnliche Tools im Allgemeinen keinen administrativen Zugriff erfordern, aber die Angabe, dass Sie es benötigen, ist ein einfacher Weg für die Werkzeughersteller, alles zu vermeiden Probleme im Zusammenhang mit unzureichenden Berechtigungen.

Also, ich denke, sie sind faul, aber auch etwas pragmatisch.

Korrigieren Sie mich, wenn ich falsch liege (Ich bin kein Experte für das Windows-Sicherheitsmodell), aber ich glaube, ein Weg, um diese Situation zu behandeln wäre Administratorrechte nur zur Installationszeit benötigen. Erstellen Sie dann eine ProfilerUsers-Benutzergruppe, erteilen Sie dieser Gruppe die erforderlichen Berechtigungen und fragen Sie dann, welche Computerbenutzer zu dieser Gruppe hinzugefügt werden sollen.

Die schockierendste Sache, die ich entdeckt habe, ist, dass viele Entwickler die ganze Zeit mit administrativen Privilegien laufen.

4

Weil sie auf den Speicher des anderen Prozesses schauen müssen, der normalerweise tabu ist.

+0

YMMV, aber unter Linux ist es sehr üblich, dass ein Benutzer-privilegierter Code von einem benutzer-privilegierten Debugger debuggt wird (natürlich müssen beide unter derselben Benutzer-ID laufen). –

+0

Ich benutze AQTime bei der Arbeit (läuft unter Vista) und hat nie nach Administratorrechten gefragt (UAC ist aktiviert). – OregonGhost

+0

Es gibt viele Tools, zum Beispiel Process Explorer, schauen Sie sich den Speicher- und Thread-Stack eines anderen Prozesses an. –

0

Klingt wie eine Design-Wahl von den Entwicklern. Sie haben es vielleicht für eine gute Idee gehalten, Administratorrechte anzufordern, bevor Sie im Speicher herumstöbern oder Code im Speicher dynamisch ändern, da dieses Verhalten von einigen Arten von Malware erwartet wird.

3

einig CPU-Profiler tatsächlich tun eine Statistik mit O durchschnittlich Interrupts ... offensichtlich können sie dies für das ohne Privilegien nicht tun :)

0

Die wahrscheinlichste Erklärung ist, dass sie als spezialisierter Debugger implementiert sind, die Win32-Fehlersuche mit APIs wie DebugActiveProcess(). Diese Funktionen benötigen PROCESS_ALL_ACCESS (wie in der Dokumentation beschrieben) und ich erwarte, dass Sie hierfür Administratorrechte benötigen.

IIRC der Visual Studio-Debugger funktioniert nicht (richtig), es sei denn, Sie haben lokale Admin-Rechte auf Ihrem System, zumindest für C++.

+0

Benutzer können ihren Prozessen einen Debugger hinzufügen. Sie müssen nur Administrator sein, der an den Prozess eines anderen Benutzers (oder einen Systemprozess) angehängt wird. – criddell