AntiVir blockiert das Entladen von Registryhives

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

  • Ich habe eine etwas spezielle Frage - ich hoffe, das ist verständlich so...


    Folgendes Problem:

    In einer eigenen Anwendung lade ich über die API RegLoadKey mehere Userhives nicht geladener User unter HKEY_USERS in die Registry. Versuche ich im Programm später die Userhives (ntuser.dat) wieder zu entladen, schlägt das immer bei mindestens einem Hive fehl. Die API RegUnloadKey gibt dabei den Errorcode Zugriff verweigert zurück. Bei meinen Recherchen habe ich festgestellt, dass sich in avguard.exe die Anzahl der geöffneten Registryschlüssel genau um die Anzahl erhöht, die ich an Hives nicht entladen kann. Deinstalliere ich AntiVir kann ich sofort danach die gesperrten Hives wieder entladen.
    Der Fehler geschieht hier nach meinen Untersuchungsergebnissen durch den Registryschutz von AntiVir (Schutz gegen Veränderungen).
    AvGuard schließt in jedem Hive unter HKEY_USERS folgenden Registryschlüssel nach dem Öffnen nicht wieder und verhindert damit das Entladen der Hives:
    HKEY_USERS\...\Software\Microsoft\Windows NT\CurrentVersion\Winlogon


    Da noch unter Windows2000 so etwas zum Verlust eines ganzen Userprofiles geführt hätte (Gott hab das OS seelig), kann ich mir nicht vorstellen, dass das Absicht ist - fehlt da ein RegCloseKey in avguard.exe?

  • Den gleichen Effekt hat man übriegens, wenn man mit Regedit den Hive über den Menüpunkt Datei und Struktur laden lädt und danach wieder über Datei und Struktur entfernen entlädt.
    Bug???

  • Hallo AHT,


    ich kann dir Bestätigen dass es sich hierbei um den Registryschutz für Winlogon handelt. Malware kann so nicht den Mechanismus zum Laden missbrauchen.


    Wenn ich dich richtig verstanden habe, arbeitest du mit dem RegLoad / RegUnload direkt in der aktiven Registry, also nicht mit einer Kopie? Vermutlich (weiß es nicht genau) ist UnLoad blockiert damit der Registryschutz dadurch ebenso nicht aufgehoben werden kann. Ein Lesezugriff muss immer gewährleistet sein sonst würde man Windows lahmlegen.

  • RegUnloadKey ist natürlich blockiert, da avguard den besagten Schlüssel geöffnet hält. Wo etwas geöffnet ist, kann das natürlich auch nicht entladen werden - siehe auch Eventlogs von Windows:


    Ich lade im Prinzip zusätzlich User, die nicht aktiv sind, in die aktive Registry um die administrativ zu bearbeiten (genau das kann man mit Regedit ja auch tun).
    Da ist es natürlich ungünstig, wenn man die nachher nicht wieder entladen kann. Welche Art von Schutz das bieten soll, ist mir im Augenblick unverständlich - denn bearbeiten kann ich die ja.

  • Problem bei der Sache:
    Windows hat es (laut meinen Erfahrungen) auf manchen Windowsversionen nicht gerne, wenn ein Userprofile in die Registry geladen werden soll, was bereits geladen ist - das OS kann das Teil dann nicht erneut laden und behamdelt es als "defektes Userprofile" - manche Windowsversion erstellen dann ein neues Userprofile, mit dem sich dann eingeloggt wird. Unter Windows2000 war das definitiv so - da hätte so etwas also das Userprofile gekillt, sobald sich der User einloggen will.
    Ob das unter bestimmten Bedingungen auf neueren Betriebssystemen auch noch zu dem Verlust eines Userprofiles führen kann, weiß ich im Augenblick nicht. Auf Dauer werde ich das aber noch austesten (muss mir noch ein Gerät zum Testen vorbereiten).


    Also: Ist das Offenhalten des Schlüssels durch AntiVir zwingend nötig?

  • XP reagiert da schon mal anders als Windows2000. Kann sich mit dem von Antivir gesperrten Profile nicht eingeloggt werden, erstellt XP kein neues Profile und linkt das in der Registry um, sondern loggt sich solange mit einem "Behelsprofile" ein, bis das alte Profile wieder zugänglich ist - in dem Fall bis zum nächsten Reboot. Bei XP ist das Verhalten von Antivir also zwar unschön, aber ungefährlich.


    Ich teste noch unter Vista.

  • Vista reagiert auf einen gesperrten Userhive ähnlich wie XP. Auch hier wird dann beim Login ein temporäres Profile genutzt und nichts neu in der Registry verlinkt. Der Hinweis auf das temporäre Userprofile erscheint unter Vista aber nach dem Login, nicht wie bei XP vorher. Auch da dauert die Sperrung bis zum nächsten Reboot.


    Was mir bei Vista aber auffällt:
    RegUnloadKey schlägt nicht bei jedem Aufruf generell fehl. Manch mal lässt sich der Userhive korrekt entläden. Auch das deutet für mich eher auf einen Programmier- oder Denkfehler hin, als auf einen sinnvollen Registryschutz!

  • Hallo AHT,
    dass dieser und andere kritische Schlüssel offen gehalten werden ist zwingend notwendig zur Überwachung und Rücksetzung von Änderungen. Konntest du auch den Winlogon Key verändern? Das sollte nicht so sein.

  • Zitat


    dass dieser und andere kritische Schlüssel offen gehalten werden ist zwingend notwendig zur Überwachung und Rücksetzung von Änderungen


    Es ist definitiv nur dieser eine Schlüssel, der das Entladen stört - und es ist definitiv so, dass manchmal Userprofiles unter Vista auch korrekt entladen werden können, die zusätzlich geladen worden sind.
    Fazit: Da liegt also ein Denk- oder Programmierfehler vor.


    Zitat

    Konntest du auch den Winlogon Key verändern?


    Unter dem aktuellen Userprofile geht das natürlich nicht - da sind wir uns beide einig.
    Lade ich ein Userprofile nicht unter HKEY_USERS, sondern unter HKEY_LOKAL_MACHINE (auch das geht zum Bearbeiten ja), müsste ich den Schlüssel bearbeiten können - ich teste das noch.
    Auch bei den Userprofiles, die korrektr wieder entladen werden können, müsste ich den Schlüssel ändern können. Auch das teste ich noch.


    Vorläufiges Fazit für mich, bis ich getestet habe: Mit großer Sicherheit Programmier- oder Denkfehler desjenigen, der den Code für avguard.exe erstellt hat. Das geht so wohl nicht.

  • Habe die Sache ausgetestet und es ist genau so, wie ich das bereits vorher vermutet habe.
    Das habe ich getan:

    • Ich habe auf einem Rechner mit Windows Vista zwei neue Administratorprofile erstellt - eines mit dem Namen AntivirTest1, das andere mit dem Namen AntivirTest2.
    • Ich habe mich danach in beide Profile eingeloggt, damit sie komplett erstellt werden.
    • Danach wurde der Rechner heruntergefahren, um alle Profile korrekt zu entladen.
    • Dann habe ich mich mit meinem Administratorprofil eingeloggt und gewartet, bist der Schirm von Antivir geöffnet zu sehen war.
    • Regedir wurde dann gestartet. Zuerst habe ich das Profil von AntivirTest1 unter HKEY_USERS mit dem Namen Test1 heladen, danach das Profil von AntivirTest2 unter HKEY_USERS mit dem Namen Test2
    • Ich habe danach versucht, die Winlogon Schlüssel beider geladenen Profile mit Regedit zu bearbeiten. Bei Test1 schlug das fehl, bei Test2 klappte das problemlos.
    • Test1 konnte ich nicht wieder mit regedit.exe entladen, bei Test2 ging das problemlos.


    Wie gesagt, der ganze Schutz scheint in der Art und Weise nicht zu funktionieren, wenn das auch andere Userhives schützen soll. Es erschwert nur die administrative Bearbeitung anderes Userprofiles..

  • Das Problem ist ja auch, dass der Schutz so gar nicht funktioniert. Wenn Malware wirklich auf diese Art einen anderen Account infizieren wollte, könnte sie das ohne Probleme. Nur ein Admin kann den nicht vernünftig bearbeiten.

  • Nett ist auch, daß man den Registry-Schutz zwar ohne Reboot aus- aber nicht wieder einschalten kann ...
    Es wäre nett, wenn AntiVir selbst mit einer Warnung/UAC-Abfrage aufpoppen würde, wenn so etwas passiert.
    Ich brauchte die Struktur-Lade/Entlade-Funktion nämlich gerade, um nach einem Windows-10-Upgrade die bei der Migration untergegangenen Outlook-Mailprofildaten aus der alten Registry von der alten Platte rauszuholen um sie in die neue einzuspeisen und war dann ein wenig überrascht, daß das Entladen nicht funktioniert hat. Zum Glück habe ich diesen Thread hier recht schnell gefunden, sonst hätte das mir möglicherweise das Windows 10 zerschossen, wenn ich den Hive von der alten Platte (die aus dem System entfernt werden soll!) nicht wieder losgeworden wäre ...

  • Neuere Windowsversionen entladen die Hives beim Reboot. Fällt so etwas auf, einfach neu starten - den Rechner aber wirklich komplett herunterfahren!
    Bei dir wäre das sowieso kein Problem gewesen, da der Hive nicht zum aktuell geladenen Betriebssystem gehört.
    Schlimmer ist es, andere User in die Registry zu laden, als die, die zur Zeit angemeldet sind.


    Windows 10

    Das komplette Herunterfahren ist da natürlich besonders wichtig!

  • Das komplette Herunterfahren ist da natürlich besonders wichtig!

    Ich werde da in den nächsten Tagen noch was austesten. Eventuell könnte es gerade unter Windows10 ganz gewaltige Probleme mit diesem Blödsinn geben, den Antivir da durchführt. Ich teste das noch aus. Danke für den Beitrag, MOW.
    Das hat einen Denkanstoß geliefert!