AntiVir blockiert das Entladen von Registryhives

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • AntiVir blockiert das Entladen von Registryhives

      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?
    • 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.
      Working@Avira
    • 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:

      23.1.2015 21:24 Uhr 51s
      Record #10091
      Computername->Compaq6730bAH
      User->NT-AUTORITÄT\SYSTEM
      profsvc:
      Warning
      Es wurde festgestellt, dass Ihre Registrierungsdatei noch von anderen Anwendungen oder Diensten verwendet wird. Die Datei wird nun entladen. Die Anwendungen oder Dienste, die Ihre Registrierungsdatei anhalten, funktionieren anschließend u. U. nicht mehr ordnungsgemäß.

      DETAIL -
      1 user registry handles leaked from \Registry\User\S-1-5-21-1917469538-3702951636-3216904853-1000:
      Process 508 (\Device\HarddiskVolume1\Program Files\Avira\AntiVir Desktop\avguard.exe) has opened key \REGISTRY\USER\S-1-5-21-1917469538-3702951636-3216904853-1000\Software\Microsoft\Windows NT\CurrentVersion\Winlogon

      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!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von AxT ()


    • 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.



      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..
    • 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.

      MOW schrieb:

      Windows 10
      Das komplette Herunterfahren ist da natürlich besonders wichtig!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von AxT ()

    • AHT schrieb:

      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!