Contacte

Managerul de filtre ale sistemului de fișiere nu rulează avast. Cum se instalează un antivirus gratuit avast. Cum se instalează Avast antivirus gratuit

Este numit un driver de filtru care ocupă un nivel mai înalt în ierarhie decât driverul sistemului de fișiere driverul de filtru al sistemului de fișiere(driver de filtru al sistemului de fișiere). (Consultați Capitolul 9 pentru driverele de filtrare.) Capacitatea sa de a vedea toate solicitările către sistemul de fișiere și de a le modifica sau executa după cum este necesar face posibile aplicații precum serviciile de replicare. fișiere șterse, criptarea fișierelor, Rezervă copieși licențiere. Orice scaner antivirus comercial care scanează fișiere din mers include un driver de sistem de fișiere care interceptează pachetele IRP cu comenzi IRP_MJ_CREATE emise de fiecare dată când o aplicație deschide un fișier. Înainte de a transmite un astfel de IRP la driverul sistemului de fișiere căruia îi este adresată comanda dată, scannerul de viruși verifică fișierul deschis pentru viruși. Dacă fișierul este curat, scanerul de viruși transmite IRP-ul în lanț, dar dacă fișierul este infectat, scanerul apelează procesul de service pentru a elimina sau dezinfecta fișierul. Dacă fișierul nu poate fi dezinfectat, driverul de filtru respinge IRP (de obicei cu o eroare „acces refuzat”) pentru a preveni reactivarea virusului.

În această secțiune, vom descrie funcționarea a două drivere specifice de filtrare a sistemului de fișiere: Filemon și System Restore. Filemon - un utilitar pentru monitorizarea activității sistemului de fișiere (de pe site www.systntemals.com), folosit în multe dintre experimentele din această carte este un exemplu de driver de filtru pasiv care nu modifică fluxul IRP între aplicații și driverele sistemului de fișiere. System Restore, o caracteristică introdusă în Windows XP, utilizează driverul de filtru al sistemului de fișiere pentru a monitoriza modificările la fișierele cheie ale sistemului și pentru a le face copii de rezervă, astfel încât aceste fișiere să poată fi readuse la starea în care se aflau când creau punctele de restaurare.


NOTĂ Windows XP Service Pack 2 și Windows Server 2003 includ Filesystem Filter Manager (\Windows\System32\Drivers\Fltmgr.sys) ca parte a modelului port-miniport pentru driverele de filtru ale sistemului de fișiere. Această componentă va fi disponibilă și pentru Windows 2000. Filesystem Filter Manager simplifică dramatic dezvoltarea driverului de filtru oferind o interfață de driver de filtru miniport subsistemului Windows I/O, precum și servicii pentru interogarea numelor fișierelor, conectarea la volume și interacțiunea cu alte filtre. Dezvoltatorii, inclusiv Microsoft, vor scrie noi filtre de sistem de fișiere pe baza infrastructurii furnizate de Filesystem Filter Manager și vor porta filtrele existente la acesta.

<= IRP_MJ_MAXIMUM_FUNCTION; ++i) { DriverObject->MajorFunction[i] = FsFilterDispatchPassThrough; ) DriverObject->

// // Date globale FAST_IO_DISPATCH g_fastIoDispatch = ( sizeof(FAST_IO_DISPATCH), FsFilterFastIoCheckIfPossible, ... ); // // DriverEntry - Punctul de intrare al driverului NTSTATUS DriverEntry(__inout PDRIVER_OBJECT DriverObject, __in PUNICODE_STRING RegistryPath) ( ... // // Setați tabelul de expediere fast-io. // DriverObject->

Setarea rutinei de descărcare a driverului

// // DriverEntry - Punctul de intrare al driverului NTSTATUS DriverEntry(__inout PDRIVER_OBJECT DriverObject, __in PUNICODE_STRING RegistryPath) ( ... // // Setați rutina de descărcare a driverului (doar scopul depanării). // DriverObject->

< numDevices; ++i) { FsFilterDetachFromDevice(devList[i]); ObDereferenceObject(devList[i]); } KeDelayExecutionThread(KernelMode, FALSE, &interval); } }

IrpDispatch.c

Transmiterea expedierii

// // passThrough handler IRP ntstatus fsfilterdispatchpassthrough (__ în pdevice_object DeviceObject, __in PiRP IRP) (PFSFilter_device_extension pdevext = (pfsfilter_device_extension) DeviceObject-> DeviceExtension; IOSKIPCURERINPSACKLOCATION (IRP); retur iocallextdriver (pdevextdriver (pdevext)

Creare expediere

// // IRP_MJ_CREATE IRP Handler NTSTATUS FsFilterDispatchCreate(__in PDEVICE_OBJECT DeviceObject, __in PIRP Irp) ( PFILE_OBJECT pFileObject = IoGetCurrentIrpStackLocation(Irp)->"-FipZObject\;"->FipZObject PIRP\;"->FipZObject\;

FastIo.c

// Macro pentru a testa dacă rutina de gestionare a FAST_IO_DISPATCH este validă #define VALID_FAST_IO_DISPATCH_HANDLER(_FastIoDispatchPtr, _FieldName) \ (((_FastIoDispatchPtr) != NULL) && \ (((_FastIoDispatchPtr)(_FastIoDispatchPtr_DISPATCH_O_DISPATCH) +(_FastIoDispatchPtr)_(dimensiune) *))) && \ ((_FastIoDispatchPtr)->_FieldName != NULL))

Trecere rapidă I/O

BOOLEAN FsFilterFastIoQueryBasicInfo(__in PFILE_OBJECT FileObject, __in BOOLEAN Wait, __out PFILE_BASIC_INFORMATION Buffer, __out PIO_STATUS_BLOCK IoStatus, __in PDEVICE_OBJECT OBJECT_OBJECT prin tipul dispozitivului //DeviceEVSION_OJECT_PASS_ObJECT>Fast_ObJECT) = //deviceEVSION_OJECT_PASS_ObJECT_FastObJECT DeviceExtension)->AttachedToDeviceObject; PFAST_IO_DISPATCH fastIoDispatch = nextDeviceObject->DriverObject ->FastIoDispatch; dacă (VALID_FAST_IO_DISPATCH_HANDLER(fastIoDispatch, FastIoQueryBasicInfo->Io)

Dispozitiv de detașare rapidă I/O

Notificare.c

AttachDetach.c

Atașarea

Desprinderea

void FsFilterDetachFromDevice(__in PDEVICE_OBJECT DeviceObject) ( PFSFILTER_DEVICE_EXTENSION pDevExt = (PFSFILTER_DEVICE_EXTENSION) DeviceObject->DeviceExtension; IoDetachDevice(pDevExt->

// // Diverse BOOLEAN FsFilterIsMyDeviceObject(__in PDEVICE_OBJECT DeviceObject) ( returnează DeviceObject->

Surse și makefile

Conținutul fișierului sursă:

Makefile-ul este standard:

Prezentare generală SC.EXE

Sc start FsFilter

Opriți driverul sistemului de fișiere

Sc stop FsFilter

Sc ștergeți FsFilter

Scriptul rezultat

Devenind mai avansat

Concluzie

În tutorialul nostru, v-am furnizat pași simpli pentru crearea unui driver de filtru al sistemului de fișiere. V-am arătat cum să instalați, porniți, opriți și dezinstalați un driver de filtru al sistemului de fișiere folosind linia de comandă. Au fost discutate și alte probleme legate de driverul de filtru al sistemului de fișiere. Am luat în considerare stiva de dispozitive ale sistemului de fișiere cu filtre atașate și am discutat despre cum să monitorizăm rezultatul de depanare din driver. Puteți utiliza resursele din acest articol ca un schelet pentru dezvoltarea propriului driver de filtru al sistemului de fișiere și să modificați comportamentul acestuia în funcție de dvs. are nevoie.

Referințe

  1. Conținut pentru dezvoltatorii de sisteme de fișiere sau de sisteme de fișiere
  2. Sfilter DDK eșantion

Sper că v-a plăcut tutorialul nostru de dezvoltare a driverelor Windows. Sunteți gata să angajați o echipă cu experiență care să lucreze la proiectul dvs., cum ar fi dezvoltarea de drivere de filtrare a sistemului de fișiere? Doar contactați-ne și vă vom oferi toate detaliile!

Acest tutorial vă oferă pași ușor de înțeles pentru dezvoltarea unui driver simplu de filtru de sistem de fișiere. Driverul demonstrativ pe care vă arătăm cum să creați nume de tipărire ale fișierelor deschise pentru a depana ieșirea.

Acest articol este scris pentru inginerii cu experiență de bază în dezvoltarea driverelor de dispozitiv Windows, precum și cunoștințe de C/C++. În plus, ar putea fi util și pentru persoanele fără o înțelegere profundă a dezvoltării driverelor Windows.

Scris de:
Serghei Podobriy,
Liderul echipei de șoferi

Ce este driverul de filtru al sistemului de fișiere Windows?

Un driver de filtru al sistemului de fișiere Windows este apelat în timpul fiecărei operațiuni I/O ale sistemului de fișiere (creare, citire, scriere, redenumire etc.). Prin urmare, este capabil să modifice comportamentul sistemului de fișiere. Driverele de filtru ale sistemului de fișiere sunt comparabile cu driverele vechi, deși necesită mai mulți pași speciali de dezvoltare. Software-ul de securitate, backup, instantanee și antivirus utilizează astfel de drivere.

Dezvoltarea unui driver simplu de filtrare a sistemului de fișiere

Înainte de a începe dezvoltarea

În primul rând, pentru a dezvolta un driver de filtru pentru sistemul de fișiere, aveți nevoie de kitul IFS sau WDK de pe site-ul Microsoft. De asemenea, trebuie să setați variabila de mediu %WINDDK% la calea unde ați instalat kitul WDK/IFS.

Atenţie: Chiar și cea mai mică eroare dintr-un driver de sistem de fișiere poate cauza BSOD sau instabilitate a sistemului.

principal.c

Intrarea driverului de filtru al sistemului de fișiere

Este un punct de acces pentru orice driver, inclusiv pentru driverul de filtru al sistemului de fișiere. Primul lucru pe care ar trebui să-l facem este să stocăm DriverObject ca variabilă globală (o vom folosi mai târziu):

// // Date globale PDRIVER_OBJECT g_fsFilterDriverObject = NULL; // // DriverEntry - Punctul de intrare al driverului NTSTATUS DriverEntry(__inout PDRIVER_OBJECT DriverObject, __in PUNICODE_STRING RegistryPath) ( starea NTSTATUS = STATUS_SUCCESS; ULONG i = 0; //ASSERT(FALSE); // Aceasta // va rupe / pentru a depana / Stocați obiectul driverului nostru. // g_fsFilterDriverObject = DriverObject; ... )

Setarea tabelului de expediere IRP

Următorul pas în dezvoltarea unui driver de filtru al sistemului de fișiere este popularea tabelului de expediere IRP cu indicatori de funcție către handlere IRP. Vom avea un handler IRP generic de trecere în driverul nostru de filer care trimite cereri în continuare. Vom avea nevoie și de un handler pentru IRP_MJ_CREATE pentru a prelua numele fișierelor deschise. Vom lua în considerare implementarea handlerelor IRP mai târziu.

// // DriverEntry - Punctul de intrare al driverului NTSTATUS DriverEntry(__inout PDRIVER_OBJECT DriverObject, __in PUNICODE_STRING RegistryPath) ( ... // // Inițializați tabelul de expediere a obiectelor driver. // pentru (i = 0; i<= IRP_MJ_MAXIMUM_FUNCTION; ++i) { DriverObject->MajorFunction[i] = FsFilterDispatchPassThrough; ) DriverObject->MajorFunction = FsFilterDispatchCreate; ... )

Setarea tabelului de expediere I/O rapidă

Driverul de filtru al sistemului de fișiere necesită un tabel rapid de expediere I/O. Neconfigurarea acestui tabel ar duce la prăbușirea sistemului. Fast I/O este o modalitate diferită de a iniția operațiuni I/O, care este mai rapidă decât IRP. Operațiunile rapide I/O sunt întotdeauna sincrone. Dacă handlerul rapid I/O returnează FALSE, atunci nu putem folosi I/O rapid. în acest caz, IRP va fi creat.

// // Date globale FAST_IO_DISPATCH g_fastIoDispatch = ( sizeof(FAST_IO_DISPATCH), FsFilterFastIoCheckIfPossible, ... ); // // DriverEntry - Punctul de intrare al driverului NTSTATUS DriverEntry(__inout PDRIVER_OBJECT DriverObject, __in PUNICODE_STRING RegistryPath) ( ... // // Setați tabelul de expediere fast-io. // DriverObject->FastIoDispatch = &g_fast; ...)

Înregistrarea notificărilor despre modificările sistemului de fișiere

În timpul dezvoltării unui driver de filtru al sistemului de fișiere, ar trebui să înregistrăm o notificare despre modificările sistemului de fișiere. Este crucial să urmăriți dacă sistemul de fișiere este activat sau dezactivat pentru a realiza atașarea/detașarea driverului nostru de filtru al sistemului de fișiere. Mai jos puteți vedea cum să urmăriți modificările sistemului de fișiere.

// // DriverEntry - Punctul de intrare al driverului NTSTATUS DriverEntry(__inout PDRIVER_OBJECT DriverObject, __in PUNICODE_STRING RegistryPath) ( ... // // Rutină de apel invers înregistrată pentru modificările sistemului de fișiere. // status = IoRegisterFsRegistrationChange(NotificationCallbackFs); (!NT_SUCCESS(stare)) ( stare de întoarcere; ) ... )

Setarea rutinei de descărcare a driverului

Partea finală a inițializării driverului sistemului de fișiere este setarea unei rutine de descărcare. Această rutină vă va ajuta să încărcați și să descărcați driverul de filtru al sistemului de fișiere fără a fi nevoie să reporniți. Cu toate acestea, acest driver devine cu adevărat descărcabil doar în scopuri de depanare, deoarece este imposibil să descărcați filtrele sistemului de fișiere în siguranță.Nu este recomandat să efectuați descărcarea în codul de producție.

// // DriverEntry - Punctul de intrare al driverului NTSTATUS DriverEntry(__inout PDRIVER_OBJECT DriverObject, __in PUNICODE_STRING RegistryPath) ( ... // // Setați rutina de descărcare a driverului (numai scopul depanării). // DriverObject->DriverUnload = FsFilterUnload; return STATUS_SUCCESS; )

Implementarea de descărcare a driverului sistemului de fișiere

Rutina de descărcare a driverului curăță resursele și le dealoca. Următorul pas în dezvoltarea driverului sistemului de fișiere este anularea înregistrării notificării pentru modificările sistemului de fișiere.

// // Descărcați rutina VOID FsFilterUnload(__in PDRIVER_OBJECT DriverObject) ( ... // // Rutină de apel invers neînregistrată pentru modificări ale sistemului de fișiere. // IoUnregisterFsRegistrationChange(DriverObject, FsFilterNotificationCallback); ... )

După anularea înregistrării notificării, ar trebui să parcurgeți dispozitivele create și să le detașați și să le eliminați. Apoi așteptați cinci secunde până când toate IRP-urile restante au fost finalizate. Rețineți că aceasta este o soluție numai de depanare. Funcționează în numărul mai mare de cazuri, dar nu există nicio garanție că va funcționa în toate.

// // Descărcați rutina VOID FsFilterUnload(__in PDRIVER_OBJECT DriverObject) ( ... pentru (;;) ( IoEnumerateDeviceObjectList(DriverObject, devList, sizeof(devList), &numDevices); if (0 == numDevices) = num Devices; min(numDevices, RTL_NUMBER_OF(devList)); pentru (i = 0; i< numDevices; ++i) { FsFilterDetachFromDevice(devList[i]); ObDereferenceObject(devList[i]); } KeDelayExecutionThread(KernelMode, FALSE, &interval); } }

IrpDispatch.c

Transmiterea expedierii

Singura responsabilitate a acestui handler IRP este de a transmite cererile următorului șofer. Următorul obiect driver este stocat în extensia noastră de dispozitiv.

// // passThrough JP Handler Ntstatus fsfilterdispatchpassthrough (__ în PDEVICE_OBJECT DeviceObject, __in PiRP IRP) (PFSFilter_device_extension pdevext = (Pfsfilter_device_extension) DeviceObject-> DeviceExtension; IoskipcurrentirpackLocație (IRP> Ateviceto); Return Iocallextdriver (pdevice-driver)

Creare expediere

Fiecare operație de creare a fișierelor invocă acest handler IRP. După ce luăm un nume de fișier din PFILE_OBJECT , îl imprimăm la ieșirea de depanare. După aceea, numim handlerul de trecere pe care l-am "descris mai sus. Observați că un nume de fișier valid există în PFILE_OBJECT numai până când operațiunea de creare a fișierului este terminată! Există și deschideri relative, precum și deschideri prin id. În al treilea- resurse de partid, puteți găsi mai multe detalii despre preluarea numelor de fișiere în acele cazuri.

// // irp_mj_create handler IRP NTSTATUS FSFilterdispatchCreate (__ in PDEVICE_OBJECT DeviceObject, __in PiRP IRP) (PFILE_OBJECT PFILEOBJECT = IOGETCURRERITIRPSACKLOCACATION (IRP) -> FileObject; DBGprint ("% WZ \ N", & PfileObject-> FileObjectName); Returnați FSDepatchPassilter (DispatchPassilter, Irp);)

FastIo.c

Deoarece nu toate rutinele rapide I/O ar trebui implementate de sistemul de fișiere de bază, trebuie să testăm validitatea tabelului de expediere rapidă I/O pentru următorul driver folosind următoarea macrocomandă:

// Macro pentru a testa dacă rutina de gestionare a FAST_IO_DISPATCH este validă #define VALID_FAST_IO_DISPATCH_HANDLER(_FastIoDispatchPtr, _FieldName) \ (((_FastIoDispatchPtr) != NULL) && \ (((_FastIoDispatchPtr)(_FastIoDispatchPtr_DISPATCH_O_DISPATCH) +(_FastIoDispatchPtr)_(dimensiune) *))) && \ ((_FastIoDispatchPtr)->_FieldName != NULL))

Trecere rapidă I/O

Spre deosebire de solicitările IRP, trecerea prin solicitări de I/S rapidă necesită o cantitate imensă de cod, deoarece fiecare funcție de I/O rapidă are propriul set de parametri. Mai jos puteți găsi un exemplu de funcție de trecere comună:

BOOLEAN FsFilterFastIoQueryBasicInfo(__in PFILE_OBJECT FileObject, __in BOOLEAN Wait, __out PFILE_BASIC_INFORMATION Buffer, __out PIO_STATUS_BLOCK IoStatus, __in PDEVICE_OBJECT OBJECT_OBJECT prin tipul dispozitivului //DeviceEVSION_OJECT_PASS_ObJECT>Fast_ObJECT) = //deviceEVSION_OJECT_PASS_ObJECT_FastObJECT DeviceExtension) -> atașatedodeviceObject; Praft_iO_Dispatch Fastiodispatch = NextDeviceOboject-> FastiodisPatch_Handler (FastiodisPatch, FasiokeRyBasicinfo)) (retur (Fastiodispatch-> FastioququeryBasicinfo) (FileObject, Așteptați, Buffee, Iostatus) ReturnAlOnd) ;;

Dispozitiv de detașare rapidă I/O

Detașarea dispozitivului este o cerere specifică de I/O rapidă pe care ar trebui să o gestionăm fără a apela următorul driver. Ar trebui să ștergem dispozitivul nostru de filtrare după ce îl detașăm din stiva de dispozitive a sistemului de fișiere. Mai jos puteți găsi exemplu de cod care demonstrează cum să gestionați cu ușurință această solicitare:

VOID FsFilterFastIoDetachDevice(__in PDEVICE_OBJECT SourceDevice, __in PDEVICE_OBJECT TargetDevice) ( // // Detașează obiectul dispozitivului de volum al sistemului de fișiere. // IoDetachDevice(TargetDevice); IoDeleteDevice(SourceDevice));

Notificare.c

sistemul de fișiere comun este format din dispozitive de control și dispozitive de volum. Dispozitivele de volum sunt atașate la stiva de dispozitive de stocare. Un dispozitiv de control este înregistrat ca sistem de fișiere.

Un apel invers este invocat pentru toate sistemele de fișiere active de fiecare dată când un sistem de fișiere fie se înregistrează, fie se anulează înregistrarea ca activ. Acesta este un loc minunat pentru atașarea sau detașarea dispozitivului nostru de filtrare a sistemului de fișiere. Când sistemul de fișiere se activează, îl atașăm la dispozitivul său de control (dacă nu este deja atașat) și enumerăm dispozitivele sale de volum și le atașăm și la ele. În timp ce dezactivăm sistemul de fișiere, examinăm stiva sa de dispozitive de control, găsim dispozitivul nostru și îl detașăm. Detașarea de pe dispozitivele de volum ale sistemului de fișiere se realizează în rutina FsFilterFastIoDetachDevice pe care am descris-o mai devreme.

// // Această rutină este invocată ori de câte ori un sistem de fișiere s-a înregistrat sau // sa dezînregistrat ca sistem de fișiere activ. VOID FsFilterNotificationCallback(__in PDEVICE_OBJECT DeviceObject, __in BOOLEAN FsActive) ( // // Se ocupă de atașarea/detașarea de la sistemul de fișiere dat. // if (FsActive) ( FsFilterAttachToFileSystemDevice(DeviceObjectDevice)FsDeviceSystFrom)b);

AttachDetach.c

Acest fișier conține rutine de ajutor pentru atașarea, detașarea și verificarea dacă filtrul nostru este deja atașat.

Atașarea

Pentru a atașa, trebuie să apelăm la IoCreateDevice pentru a crea un nou obiect dispozitiv cu extensie de dispozitiv și apoi să propagă steagurile obiectului dispozitivului de la obiectul dispozitiv la care încercăm să îl atașăm (DO_BUFFERED_IO, DO_DIRECT_IO, FILE_DEVICE_SECURE_OPEN). Apoi apelăm IoAttachDeviceToDeviceStackSafe într-o buclă cu întârziere în caz de eșec. Solicitarea noastră de atașare poate eșua dacă obiectul dispozitivului nu a terminat de inițializat. Acest lucru se poate întâmpla dacă încercăm să instalăm filtrul de volum. După atașare, salvăm obiectul dispozitiv „atașat la” în extensia dispozitivului și ștergem marcajul DO_DEVICE_INITIALIZING. Mai jos puteți vedea extensia dispozitivului:

// // Structuri typedef struct _FSFILTER_DEVICE_EXTENSION ( PDEVICE_OBJECT AttachedToDeviceObject; ) FSFILTER_DEVICE_EXTENSION, *PFSFILTER_DEVICE_EXTENSION;

Desprinderea

Detașarea este destul de simplă. Din extensia dispozitivului, obținem dispozitivul la care l-am atașat și apoi apelăm IoDetachDevice și IoDeleteDevice.

void FsFilterDetachFromDevice(__in PDEVICE_OBJECT DeviceObject) ( PFSFILTER_DEVICE_EXTENSION pDevExt = (PFSFILTER_DEVICE_EXTENSION) DeviceObject->DeviceExtension; IoDetachDevice(pDevExt->AttachetDeviceToDevice->IoDOviceToDevice)(IoDOviceDevice));

Verificăm dacă dispozitivul nostru este atașat

Pentru a verifica dacă suntem atașați la un dispozitiv sau nu, trebuie să iterăm prin stiva de dispozitive folosind IoGetAttachedDeviceReference și IoGetLowerDeviceObject, apoi să căutăm dispozitivul nostru acolo. Ne putem identifica dispozitivul comparând obiectul driver de dispozitiv cu cel al driverului nostru (g_fsFilterDriverObject).

// // Diverse BOOLEAN FsFilterIsMyDeviceObject(__in PDEVICE_OBJECT DeviceObject) ( returnează DeviceObject->DriverObject == g_fsFilterDriverObject; )

Surse și makefile

Utilitarul care creează driverul, folosește surse și fișiere makefile. Aceste fișiere conțin setări de proiect și nume de fișiere sursă.

Conținutul fișierului sursă:

TARGETNAME=FsFilter TARGETPATH=obj TARGETTYPE=DRIVER DRIVERTYPE=FS SOURCES=\Main.c\IrpDispatch.c\AttachDetach.c\Notification.c\FastIo.c

Makefile-ul este standard:

Includeți $(NTMAKEENV)\makefile.def

Linia de comandă pentru construirea proiectului MSVC makefile este:

Apelați $(WINDDK)\bin\setenv.bat $(WINDDK) chk wxp cd /d $(ProjectDir) build.exe -I

Cum se instalează un driver de filtru al sistemului de fișiere

Prezentare generală SC.EXE

Vom folosi sc.exe (sc - service control) pentru a ne gestiona driverul. Putem folosi acest utilitar de linie de comandă pentru a interoga sau modifica baza de date a serviciilor instalate. Este livrat cu Windows XP și o versiune ulterioară sau îl puteți găsi în Windows SDK/DDK.

Instalați driverul de filtru al sistemului de fișiere

Pentru a instala driverul de filtru al sistemului de fișiere, apelați:

Sc create FsFilter type= filesys binPath= c:\FSFilter.sys

Aceasta va crea o nouă intrare de serviciu cu numele FsFilter cu un tip de serviciu de sistem de fișiere și o cale binară de c:\FsFilter.sys.

Porniți driverul de filtru al sistemului de fișiere

Pentru a porni driverul de filtru al sistemului de fișiere, apelați:

Sc start FsFilter

Serviciul FsFilter va fi pornit.

Opriți driverul sistemului de fișiere

Pentru a opri driverul de filtru al sistemului de fișiere, apelați:

Sc stop FsFilter

Serviciul FsFilter va fi oprit.

Dezinstalați driverul de filtru al sistemului de fișiere

Pentru a dezinstala driverul de filtru al sistemului de fișiere, apelați:

Sc ștergeți FsFilter

Această comandă îi cere managerului de servicii să elimine intrarea de serviciu cu numele FsFilter.

Scriptul rezultat

Putem pune toate aceste comenzi într-un singur fișier batch pentru a ușura testarea driverului. Mai jos este conținutul fișierului nostru de comandă Install.cmd:

Sc create FsFilter type= filesys binPath= c:\FsFilter.sys sc start FsFilter pauză sc stop FsFilter sc delete FsFilter pauză

Rularea unui eșantion al driverului de filtru al sistemului de fișiere

Acum vom arăta cum funcționează filtrul sistemului de fișiere. În acest scop, vom folosi Sysinternals DebugView pentru Windows pentru a monitoriza ieșirea de depanare, precum și OSR Device Tree pentru a vizualiza dispozitivele și driverele.

Mai întâi, să construim driverul. După aceea, vom copia fișierul FsFilter.sys rezultat și scriptul Install.cmd în rădăcina unității C.

Driverul de filtru al sistemului de fișiere și scriptul de instalare pe unitatea C.

Acum „vom rula Install.cmd, care instalează și pornește driverul sistemului de fișiere, apoi așteaptă intrarea utilizatorului.

Driverul de filtru al sistemului de fișiere a fost instalat și pornit cu succes.

Acum ar trebui să pornim utilitarul DebugView.

În cele din urmă, putem vedea ce fișiere au fost deschise! Aceasta înseamnă că filtrul nostru funcționează. Acum ar trebui să rulăm utilitarul arborelui dispozitivului și să găsim driverul nostru acolo.

Driverul nostru de filtru în arborele dispozitivului.

Există diverse dispozitive create de șoferul nostru. Să deschidem driverul NTFS și să aruncăm o privire la arborele dispozitivului:

Filtrul nostru este atașat la NTFS.

Ne-am atașat acum. Să aruncăm o privire la alte sisteme de fișiere:

Filtrul nostru este atașat și altor sisteme de fișiere.

În cele din urmă, putem apăsa orice tastă pentru a continua scriptul nostru de instalare, oprind și dezinstalând driverul.

Driverul nostru de filtru al sistemului de fișiere a fost oprit și dezinstalat.

Putem apăsa F5 pentru a reîmprospăta lista arborescentă a dispozitivelor:

Dispozitivele noastre de filtrare nu mai sunt în arborele dispozitivelor.

Driverul nostru de filtru al sistemului de fișiere a dispărut și sistemul rulează la fel ca înainte.

Devenind mai avansat

Driverul de filtru al sistemului de fișiere descris mai sus este foarte simplu și îi lipsesc o serie de funcții, necesare pentru un driver comun. Ideea acestui articol a fost să arate cel mai simplu mod de a crea un driver de filtru pentru sistemul de fișiere, motiv pentru care am descris acest proces de dezvoltare simplu și ușor de înțeles. Puteți scrie un handler IRP_MJ_FILE_SYSTEM_CONTROL propriu pentru a urmări volumele nou sosite.

Și fără să aștept continuarea pe care mi-ai promis-o, Cum, am decis să instalez singur acest program antivirus pe computerul meu de acasă, dar am dat de niște ambiguități. Programul de instalare a descărcat de pe site-ul oficial www.avast.com/ru, apoi a instalat acest program pe computerul său de acasă, dar se dovedește că încă trebuie înregistrat. Am făcut-o, acum nu îmi pot da seama de setări. Mai exact, mă interesează funcția Sandbox sau sandbox, mulți oameni vorbesc despre asta acum, acesta este un fel de mediu virtual în care poți rula orice program suspect fără teama de a infecta întregul sistem dacă se întâmplă ceva. Deci, în setări este, dar nu înțeleg dacă funcționează sau nu. Și încă nu găsesc o funcție atât de utilă precum Scanarea la pornire, ei spun că acesta este un remediu foarte bun pentru bannerele ransomware și, dacă este activat, Avast verifică fișierele de pornire înainte de a încărca Windows însuși. Voi fi recunoscător pentru orice ajutor. Maksim.

Cum se instalează Avast antivirus gratuit

Acest articol a fost scris ca o continuare a articolului Care antivirus este cel mai bun, unde am rezolvat întrebarea pe ce principiu își construiesc protecția aproape toate produsele antivirus, atât plătite, cât și gratuite. Cum diferă unul de celălalt, precum și mult mai mult, de exemplu, cum să construiți cel mai bine protecția dvs computer de acasă de viruși și ce altceva decât programe antivirus să folosești pentru asta. Aici vom lua în considerare întrebarea cum să descărcați și instalare antivirus gratuit Avast. Vom analiza setările de bază ale programului, întreținerea acestuia, scanarea pentru viruși și așa mai departe.

Notă: Prieteni, dacă dintr-un motiv oarecare doriți să eliminați programul antivirus Avast, utilizați. O prezentare bună a antivirusurilor plătite și gratuite vă așteaptă în articolul nostru „”

Practic, protecția programului nostru antivirus Avast este construită pe o protecție pentru rezidenți foarte puternică. Acest lucru se întâmplă cu ajutorul unor mijloace specifice de ecrane. Cu alte cuvinte, modulele de program sunt prezente constant în RAM și urmăresc tot ce se întâmplă pe computer.
De exemplu, ecranul Sistem de fișiere este principalul mijloc de protecție și monitorizează toate operațiunile care au loc cu fișierele dvs. Firewall - monitorizează activitatea rețelei și oprește virușii care încearcă să treacă prin Internet. Ecran de e-mail - fii atent e-mailși în mod natural verifică toate literele care vin pe computer. Un alt program Avast are o analiză euristică destul de avansată, eficientă împotriva rootkit-urilor.

Iată un antivirus gratuit pentru tine!

Înainte de instalare Avast! antivirus gratuit, trebuie să știi că îl poți folosi doar acasă. Puteți descărca antivirusul de pe site www.avast.com. Dacă aveți probleme la descărcarea antivirusului Avast, descărcați-l pe pagina oficială a distribuitorului Avsoft la:

www.avsoft.ru/avast/Free_Avast_home_edition_download.htm
Ei bine, vom descărca antivirusul nostru de pe site-ul oficial
www.avast.com/ru-ru/free-antivirus-download. Selectați Antivirus gratuitși faceți clic pe descărcare,

în fereastra Bine ați venit utilizatorilor Avast Free Antivirus care apare, faceți clic pe butonul Descărcați acum.

Descărcat, rulați programul de instalare. De la a șaptea versiune, există posibilitatea de a alege între o instalare normală și o instalare ca un al doilea antivirus. Dacă aveți Kaspersky instalat ca prim antivirus, este posibil un conflict.

Puteți alege instalarea rapidă.

Dacă aveți nevoie de un browser Google Chrome, bifeaza casuta. Instalarea are loc în unul sau două minute.
Instalare completă. Suntem gata.

Mulți oameni, ajungând în fereastra principală a programului, sunt surprinși că antivirusul AVAST trebuie înregistrat, dar acesta este de fapt cazul. Înregistrarea este foarte simplă. Faceți clic pentru a vă înregistra.

Alegeți Protecția de bază AVAST! antivirus gratuit.

Completați un formular foarte simplu. Faceți clic pentru a vă înregistra pentru o licență gratuită.

Versiunea noastră de antivirus este înregistrată pe cutie poștală va primi o scrisoare similară.

Ni se oferă imediat să comutăm temporar timp de 20 de zile la Versiune pentru internet Securitate, după această perioadă, dacă doriți, puteți reveni la gratuit gratuit sau puteți cumpăra o versiune securitatea internetului. Indiferent cu ce ai de comparat, folosește mai întâi versiunea AVAST! Antivirus gratuit, puteți trece oricând la o versiune plătită. Faceți clic în dreapta colțul de sus pe cruce și închideți această fereastră.

După 365 de zile, va trebui să vă reînregistrați și gata. După cum puteți vedea, descărcarea și instalarea antivirusului gratuit Avast nu este, în principiu, dificilă și nu este dificil să îl înregistrați.

Se poate spune că totul este foarte convenabil și de înțeles, chiar și un începător va înțelege întreaga conducere. Acum atenția prietenilor, implicit programul este configurat foarte bine, dar există câteva setări care merită atenția dumneavoastră. Avast este actualizat automat, de obicei imediat după pornirea computerului și pornirea sistemului de operare.



Dacă doriți, puteți verifica oricând dacă există actualizări pe site-ul oficial. Selectați Program de actualizare de întreținere. De asemenea, puteți actualiza motorul de scanare și detectare a virușilor.

Există mai multe moduri de a vă scana computerul pentru viruși. Faceți clic pe butonul Scanați-vă computerul. Și selectați opțiunea de care aveți nevoie, de exemplu
Scanare rapidă- obiectele de pornire și toate zonele partiției cu sistemul de operare, unde se cuibăresc de obicei virușii, vor fi scanate.
Scanare completă a computerului(Fără comentarii)
Scanare media amovibilă- unitățile dvs. flash, hard disk-urile USB și așa mai departe sunt scanate
Selectați un folder de scanat, alegeți folderul pentru a scana viruși.

Sau puteți face clic dreapta pe orice folder și selectați Scanare din meniul derulant și folderul dat va fi verificat pentru viruși.

Scanați la pornirea sistemului de operare. Dacă, de exemplu, trebuie să navigați pe Internet pentru o lungă perioadă de timp, puteți activa verificarea fișierelor de boot în avans și la următoarea pornire a sistemului. Avast va verifica toate fișierele legate de pornirea normală a sistemului, ocolind Windows însuși, eu personal nu am observat o astfel de funcție nicăieri în afară de Avast. Un instrument foarte bun care ajută împotriva bannerelor ransomware, deși nu în 100% din cazuri.

Fereastra antivirus Avast, înainte de pornirea principală a Windows.

Cutie de nisip automată (" AutoSandbox"). Rulează aplicații suspecte într-un mediu virtual separat în mod natural de sistemul normal. În versiunea noastră gratuită de AVAST! Antivirus gratuit, doar acele aplicații pe care Avast le consideră suspecte în sine vor porni, dacă programul se dovedește a fi rău intenționat, fereastra programului se va închide pur și simplu. În plătit versiuni AVAST! Pro Antivirus și AVAST! Internet Security, veți putea rula orice aplicație în acest mediu după cum doriți.

Blocarea anumitor site-uri web după adresa lor. Puteți utiliza această funcție ca control parental.

Orice altceva este disponibil în fereastră Ecrane live si fereastra Setări. Putem spune că setările implicite ar trebui să se potrivească utilizatorului obișnuit, dacă ceva nu este clar, scrieți.

Windows Filesystem Filter Manager sau Windows File System Filter Manager este procesul care se instalează cu extensia de fișier de sistem fltmgr.sys. Acest proces este o componentă de bază a operațiunii dumneavoastră Windows Sistem și nu ar trebui să fie terminat sau interzis să ruleze de fiecare dată când Windows se încarcă în timpul pornirii. Fișierul are responsabilitatea principală de a se asigura că toate fișierele care vor fi instalate pe computer sunt stocate în directoarele lor de drept. Dacă acest fișier lipsește sau este corupt, cel mai probabil va apărea Ecranul albastru al morții; așa cum au experimentat utilizatorii. În alte cazuri, Windows nu se va încărca complet. Repornirea singură nu rezolvă problema dacă fișierul lipsește cu adevărat sau nu poate fi localizat la pornire. Eroarea va continua să apară până când problema va fi remediată. Fișierul fltmgr.sys compatibil cu Windows XP sau Windows 7 are o dimensiune aproximativă de 124.800 de octeți. Fișierul este stocat în directorul de sistem al sistemului dvs. de operare.

Cum pot opri fltmgr.sys și ar trebui?

Majoritatea proceselor non-sistem care rulează pot fi oprite deoarece nu sunt implicate în rularea sistemului dvs. de operare. fltmgr.sys. este folosit de Microsoft Windows , dacă închideți fltmgr.sys, probabil că va începe din nou mai târziu, fie după repornirea computerului, fie după pornirea unei aplicații. a opri fltmgr.sys, permanent trebuie să dezinstalați aplicația care rulează acest proces care în acest caz este Microsoft Windows, din sistemul dvs.

După dezinstalarea aplicațiilor, este o idee bună să vă scanați registrul Windows pentru orice urme rămase de aplicații. Registry Reviver de ReviverSoft este un instrument excelent pentru a face acest lucru.

Este acesta un virus sau o altă problemă de securitate?

Verdict de securitate ReviverSoft

Vă rugăm să examinați fltmgr.sys și să-mi trimiteți o notificare odată ce a făcut-o
fost revizuit.

Ce este un proces și cum îmi afectează ele computerul?

Un proces, de obicei, o parte a unei aplicații instalate, cum ar fi Microsoft Windows, sau sistemul dvs. de operare care este responsabil pentru rularea în funcțiile respectivei aplicații. Unele aplicații necesită să aibă procese care rulează tot timpul, astfel încât să poată face lucruri cum ar fi să verifice actualizările sau să te notifice când primești un mesaj instantaneu. Unele aplicații prost scrise au multe procese care rulează care ar putea să nu fie necesare și ocupă o putere de procesare valoroasă în computerul tău.

Se știe că fltmgr.sys este dăunător pentru performanța computerului meu?

Nu am primit nicio reclamație cu privire la faptul că acest proces are un impact mai mare decât în ​​mod normal asupra performanței computerului. Dacă ați avut experiențe proaste cu acesta, vă rugăm să ne anunțați într-un comentariu de mai jos și vom investiga experiențele în continuare.



Ți-a plăcut articolul? Împărtășește-l