Autor Beitrag
X-Mailer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20
Erhaltene Danke: 1



BeitragVerfasst: Mo 24.03.08 15:46 
Hallo,
ich habe ein Programm geschrieben das alle Run-Einträge der Systemregistrierung auflistet
und bei aufteten von neuen Schlüsselwerten aufpopt.

Problem ist die Vista Benutzerkonstensteuerung (UAC) , die verhindert das ich z.B. den Eintrag des Vista Defender anzeigen lassen kann (HKLM\...\CurrentVersion\Run)

Noch ein Effekt der UAC:
Starte ich RegEdit "von Hand" dann sehe ich den Eintrag unter HKLM\...\CurrentVersion\Run

Starte ich Regedit von meinem Programm aus dann sehe ich den Eintrag nicht

Gibt es irgend eine Möglichkeit diese Registrierungsschlüssel NUR ZU LESEN, ich will ja nichts verändern, nur korrekt alle Run-Schlüssel anzeigen.

Mein bisheriger Code sieht so aus :

Kompletter Code : sourceforge.net/projects/regrunner

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
..
       st.clear;
         RE.Access:=Key_READ;
         if RE.OpenKey(Key, false) then
         begin
          try
           RE.GetValueNames(st); 
           if st.Count>0 then
           for ix:=0 to st.count-1 do
           begin
            Typ:=RE.GetDataType(st[ix]);
            if ( (Typ=rdString) or (Typ=rdExpandString)) then 
            begin
              V:=RE.ReadString(st[ix]);
..


Danke schon mal !
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Mo 24.03.08 17:27 
Hallo,
um auf HKLM unter Vista zugreifen zu können brauchst du Admin-Rechte, leider auch, wenn du nur lesen möchtest.
Wenn du in deine Anwendung ein entsprechendes Vista-Manifest (siehe FoSuFu) mit integrierst, dann springt die UAC unter Vista an und der Benutzer darf mit einer Bestätigung deiner Anwendung die Admin-Rechte geben. Dann solltest du HKLM auslesen können.
Mit dem manuell gestarteten RegEdit klappt das auch nur, weil vorher die UAC hochpoppt, um dem RegEdit die Admin-Rechte zu geben.
Wenn du RegEdit aus deiner Anwendung startest, dann hat RegEdit zunächst dieselben Rechte wie deine Anwendung und kann damit HKLM nicht auslesen.

Ich hatte zu dem ganzen UAC und Vista mal einige gute Artikel und Beiträge in der DP gesehen, meine ich.

Gruß
alias5000

_________________
Programmers never die, they just GOSUB without RETURN
X-Mailer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20
Erhaltene Danke: 1



BeitragVerfasst: Mo 24.03.08 18:26 
Danke sehr für die Ausführliche Erklärung.

Ich habe unter Vista Adminrechte aber das nützt anscheinend nichts da ich die
64BIT Version benutze und mein 32-Bit Programm anscheinend "Virtualisiert" wird
wie ich jetzt im Taskmanager gesehen habe.

Ob mein Prog unter der 32-Bit Vista Variante mit admin-Rechten alles lesen kann werde ich noch herausfinden müssen.

Derweil werde ich mir das mit dem Manifest mal ansehen, danke für den Tip !
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Mo 24.03.08 19:46 
Damit wir nicht aneinander vorbeireden:

user profile iconX-Mailer hat folgendes geschrieben:
Ich habe unter Vista Adminrechte

Wenn du unter Windows Vista dir einen Benutzeraccount erstellst, der ein Administrator ist, so bedeutet das ja nicht, dass du, bei eingeschalteter UAC ohne Probleme alle Rechte hast. Die Admin-Rechte bekommt das Programm ja erst dann, wenn der Benutzer dem via UAC zugestimmt hat.

Wie sich das jetzt mit der 64-bit Version verhält, das weiß ich leider nicht, weil ich damit noch nie was gemacht habe :?

Gruß
alias5000

_________________
Programmers never die, they just GOSUB without RETURN
X-Mailer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20
Erhaltene Danke: 1



BeitragVerfasst: Mo 24.03.08 20:25 
Ist schon klar...

Es ist sogar noch schlimmer :

Wenn ich mein Programm manuell bei der installation starte und ich stimme zu das es Admin-Rechte hat, dann das Programm automatisch im Autostart-Ordner verlinkt wird,
hat das Programm beim nächsten Windowsstart keine Admin-Rechte mehr.

Hasta la Vista :-)
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mo 24.03.08 20:30 
Deshalb benötigst du auch eine Admin-Manifest

_________________
Markus Kinzler.
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Di 25.03.08 01:56 
Und das macht durchaus Sinn, weil ich sonst ja als Hacker die UAC einfachst umgehen könnte. Ich müsste nur zusehen, dass ich eine Exe, die dauerhaft Admin-Rechte hat, manipulieren und dort meinen Code reinpacke. Dann wäre die UAC schlichtweg nur ein GUI-Spielzeug

_________________
Programmers never die, they just GOSUB without RETURN
Bernhard Geyer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: Di 25.03.08 08:21 
user profile iconalias5000 hat folgendes geschrieben:
Und das macht durchaus Sinn, weil ich sonst ja als Hacker die UAC einfachst umgehen könnte. Ich müsste nur zusehen, dass ich eine Exe, die dauerhaft Admin-Rechte hat, manipulieren und dort meinen Code reinpacke. Dann wäre die UAC schlichtweg nur ein GUI-Spielzeug

Nicht ganz. Es gäbe ja sowas wie digital Signatur bzw. merken von MD5 oder ähnlichen Checksummen zur Exe. Apple macht sowas ähnliches indem es die Signatur in die Exe schreibt. War aber ein Fehler da diverse Programme nicht mehr laufen wenn Sie geändert wurden.
X-Mailer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20
Erhaltene Danke: 1



BeitragVerfasst: Di 25.03.08 18:31 
Nur der Vollständigkeit halber :

Ich finde die Idee der UAC sehr gut, ich wünschte mein Programm würde igendwann einmal überflüssig :-)
X-Mailer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20
Erhaltene Danke: 1



BeitragVerfasst: Mi 26.03.08 18:10 
Nachtrag : Unter Vista 32bit wird der Defender Eintrag in HKLM/.../run von meinem Programm gefunden.
Liegt also an der Virtualisierung unter Vista 64, wie oben schon angenommen.