Windows Resource Protection (WRP) und die sfc.exe – Systemdateien überprüfen

Systemdateien sind ein beliebtes Angriffsziel für Malware jeglicher Art. Sie werden manipuliert, Schadcode eingeschleust oder sogar gelöscht.
Unter Windows XP hieß ein Dienst zum Schutz der Systemdateien Windows File Protection (WFP), ab Windows Vista wurde dieser Dienst durch den Windows Resource Protection (WRP) Dienst ersetzt. Die Aufgabe ist natürlich gleich geblieben. Nutzen wir den Dienst heute mal aktiv.

Das Windows Tool sfc.exe (System File Checker) überprüft kritische Systemdateien auf gefährliche Veränderungen.

Usage:
html“>C:\Users\schurigh>sfc /?

Microsoft(R) Windows (R)-Ressourcenüberprüfungsprogramm, Version 6.0
Copyright (C) 2006 Microsoft Corporation. Alle Rechte vorbehalten.

Überprüft alle geschützten Systemdateien und ersetzt falsche Versionen mit
Microsoft-Originalversionen.

SFC [/SCANNOW] [/VERIFYONLY] [/SCANFILE=] [/VERIFYFILE=]
[/OFFWINDIR=
/OFFBOOTDIR=
]

/SCANNOW Überprüft die Integrität aller geschützter Systemdateien und
repariert ggf. Dateien mit Problemen.
/VERIFYONLY Überprüft die Integrität aller geschützter Systemdateien.
Es erfolgt keine Reparatur.
/SCANFILE Überprüft die Integrität der angegebenen Datei, und
repariert ggf. die Datei, wenn Probleme gefunden werden.
Es muss ein vollständiger Pfad angegeben werden. Pfad
/VERIFYFILE Überprüft die Integrität der angegebenen Datei. Es erfolgt
keine Reparatur.
/OFFBOOTDIR Gibt den Speichort des Offlinestartverzeichnisses für
Offlinereparaturen an.
/OFFWINDIR Gibt den Speichort des Offline-Windows-Verzeichnisses für
Offlinereparaturen an.

z.B.

sfc /SCANNOW
sfc /VERIFYFILE=c:\windows\system32\kernel32.dll
sfc /SCANFILE=d:\windows\system32\kernel32.dll
/OFFBOOTDIR=d:\ /OFFWINDIR=d:\windows
sfc /VERIFYONLY

C:\Users\schurigh>

Dabei werden alle wichtigen Dateien aus dem Windows Ordner mit ihren originalen Installationsversionen verglichen. Die Wahl der wichtigen Dateien erfolgt per Dateiendung. Mehr dazu auf Wikipedia. Bis Windows Vista wurde dafür noch der Ordner C:\Windows\System32\Dllcache genutzt, der existiert ab Vista nicht mehr. Stattdessen liegen die Sicherungsdateien nun in den Unterordnern bei C:\Windows\winsxs.
Über 7.000 Ordner und 30.000 Dateien liegen in diesem Repository und werden abgefragt, wenn sfc.exe die Systemdateien prüft.

Folgende Meldung wird ausgegeben, wenn bei der Überprüfung eine Anomalie festgestellt (yes!, das wollt ich schon immer mal schreiben :D) wird:

Werfen wir einen Blick in diese Logdatei. Sie liegt unter C:\Windows\Logs\CBS\CBS.log Oder lieber doch nicht, denn bei jedem sfc Scan werden über 2.000 Zeilen in die Logdatei geschrieben.
Ich konnte dort keine brauchbaren Ansätze finden, die zur Fehlerbehebung dienlich sein können.
Also zuerst den Scan mit Reperatur durchlaufen lassen, vorher habe ich ja nur mit /verifyonly gearbeitet.

sfc /scannow

Bei mir kam jetzt die Rückmeldung „[…] beschädigte Dateien wurden gefunden und repariert […]“.
Wird jetzt immernoch ein Fehler ausgegeben, dass bei sfc /scannow eine Integritätsverletzung aufgetreten ist, sucht in der CBS.log nach
„[SR] Cannot repair member file„, ob sich dort ein Anhaltspunkt finden lässt.

Nun läuft euer System wieder ein Stück weit stabiler. Das Ganze lässt sich natürlich verscripten, mit Tasks planen und regelmäßig durchführen.

3 Kommentare

  1. Sehr schöner Artikel. Die Verify-Option kann man ruhig ab und an mal laufen lassen, allerdings würde ich mit der automatischen Reparatur vorsichtig sein.
    Afaik werden normalerweise diese Systemdateien (die geprüft werden) auch duch Microsoft-Patches, ServicePacks und sonstige (vertrauenswürdige) Programme, die z.B. den Explorer pimpen oder neue Funktionen hinzufügen. Daher kann das Problem bestehen, dass wenn sfc.exe /scannow durchgeführt wird, diese Änderungen rückgängig gemacht werden.

  2. Wenn Windows Updates Systemdateien erneuern wird davon kein neuer Stand im WRP vermerkt?
    Das wäre aber echt sehr besch….
    Schließlich patchen die Windows Updates praktisch NUR wichtige Systemdateien, damit würde ein /scannow also wirklich alle Updates verhunzen, zumindest in der Theorie.

    Edit: Ich glaub ich werd das mal bei Technet nachfragen, wie das System in diesem Hinblick funktioniert.

Schreibe einen Kommentar