Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Registry überwachen (https://www.delphipraxis.net/38027-registry-ueberwachen.html)

F.W. 13. Jan 2005 18:29


Registry überwachen
 
Es gibt ja Programme, die die Registry auf Zugriffe überwachen. (z.B. BitDefender >> Wenn sich Programme in den Autostart einschreiben wollen)

Ich möchte ein Programm schreiben, dass alle Änderungen an der Registry überwacht (Möchte es hauptsächlich bei Installationen verwenden)

Ich weiß leider garnicht wie das geht, ich kann mir vorstellen, dass es sicher nur mit DLLs o.ä. geht, aber absolut keine Ahnung! :cry:

Könnt ihr mir helfen?

malo 13. Jan 2005 19:43

Re: Registry überwachen
 
Die Programme, die einzelne Schlüssel in der Registry überwachen, handeln meist nach dem Prinzip Daten speichern, danach Daten vergleichen mit den neuen, die das Programm aufnimmt. Wenn es eine Abweichung feststellt, wird ein anderer Code abgearbeitet (z.B. die Datei in der Registry gelöscht o.Ä.). Das wäre jedenfalls die einzige Möglichkeit, die ich mir vorstellen könnte. Wenn du nun die GANZE Registry überwachen willst, musst du bei jedem einzelnen Key überprüfen, ob es Änderungen gibt oder nicht. Das ist dann eigentlich schon so ziemlich unmöglich, würd ich mal sagen. Kleine Sachen, wie herausfinden, ob neue Autorun-Einträge gemacht wurden, dürfte noch machbar sein, weil es sich dann um maximal 3 Keys handelt (CurrentUser\...\Run und LocalMachine\...\Run und LocalMachine...\RunOnce). Bei deiner Idee müsstest du Millionen von Keys überwachen.

F.W. 13. Jan 2005 19:54

Re: Registry überwachen
 
Am Beispiel BitDefender:
Die Dateiüberwachung müsste doch auch so nach der Art funktionieren.
Ich hab vor kurzem was von FileSpy und RegSpy gehört, weiß aber nicht, was die genau machen, aber müsste doch damit was zu tun haben, oder?

malo 13. Jan 2005 20:30

Re: Registry überwachen
 
Ich kenne diese Programme nicht, aber ohne Systemeingriff wirst du wohl kein Programm schreiben können, dass ALLE Registry-Einträge überwacht. Also nicht mit Delphi möglich, es sei denn, die WinAPI bzw. das .NET-Framework bietet dafür eine geeignete Schnittstelle, von der ich nichts weiß.

Luckie 13. Jan 2005 20:36

Re: Registry überwachen
 
Kuck mal auf www.sysinternals.com, da hat es einen Registry-Monitor.

F.W. 13. Jan 2005 22:54

Re: Registry überwachen
 
*gucke*

Also da gibts etwas in die Richtung, allerdings zeigt das nicht an, welche Dateien geändert werden, sondern...

...ja...

...es macht halt irgendwie was anderes!

Also besteht das Problem immernoch!

Luckie 13. Jan 2005 23:02

Re: Registry überwachen
 
Wieso? Der Regmon zeigt doch alle Zugriffe auf die Registry an? Und wenn ich mich recht entsinne, haben die das mit einem viruellen Treiber gelöst.

scp 13. Jan 2005 23:05

Re: Registry überwachen
 
öhmm... du hast doch oben etwas von der Registry geschrieben. Dateiänderungen sind wohl ein anderes Thema, filemon zeigt dies aber an.
Für die komplette Registry würde ich RegShot empfehlen.
Es gab aber zu 9x-Zeiten mal zahlreiche Komplettlösungen dafür, einige gibt es heute noch, z.B. hier.

Phoenix 14. Jan 2005 06:49

Re: Registry überwachen
 
Zitat:

Zitat von malo
es sei denn, die WinAPI bzw. das .NET-Framework bietet dafür eine geeignete Schnittstelle, von der ich nichts weiß.

Dann klär ich Dich mal auf :zwinker:

Die Win32-API bietet tatsächlich sowas, und das nennt sich WMI. Über WMI kann man asynchrone Aufrufe starten, die soviel sagen wie: "Bitte schick mir ein Event, wenn sich etwas an dem Objekt ändert, das ich Dir hier mitschicke.". Als Objekt schickt man dann eben die verschiedenen Root-Nodes der Registry mit.

Kommt nun eine Änderung (von egal wem) an die Registry, so wird die Änderung durchgeführt und die WMI-Object-Sink löst ein Event aus. In dem Event kommt ein Objekt zurück, das sowohl die alten als auch die neuen Daten enthält.

Das ganze funktioniert - wenn es sauber implementiert ist! - sogar übers Netzwerk.

Erm ja. Und es hat einen gewaltigen Nachteil: Es ist auf dem / den Rechnern, deren Registry überwacht wird dann ziemlich Performancehungrig, da dann der Windows-'Systemverwaltungsdienst' den WMI-Provider der Registry regelmässig pollt. Du wirst also sehen, das der Dienst auf einmal recht viel Rechenzeit benötigt. Aber davon abgesehen funktioniert das ganze relativ elegant.

F.W. 14. Jan 2005 13:22

Re: Registry überwachen
 
@ Phoenix: Das ist ja genial!! :thumb: Und wenn ich das Programm nur zur Installation von Software laufen lasse, dann wird sich's wohl noch in Grenzen halten.

Dann werd ich mal nach WMI suchen!

Wer Bsps, Codes oder etwas wo man darüber nachlesen kann kennt, kann sie gern hier aufzählen!! :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:47 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz