Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az Illesztőprogram-ellenőrző Biztonsági ellenőrzés lehetőségével figyeli az illesztőprogramot az olyan gyakori hibákért, amelyek biztonsági réseket okozhatnak. Ez a beállítás Windows Vista rendszerben érhető el.
Pontosabban a Biztonsági Ellenőrzések opció a következő helytelen illesztőprogram-viselkedést keresi:
Kernel ZwXxx-rutinok meghívása felhasználói módú címekkel paraméterként. Amikor az illesztőprogram meghív bármelyik ZwXxx rutint, az Illesztőprogram-ellenőrző ellenőrzi, hogy a paraméterek egyike sem felhasználói módú cím-e. Bármely ZwXxx rutin meghívásakor az aktuális KPROCESSOR_MODE KernelMode lesz, és a rutinnak átadott paraméterek úgy lesznek kezelve, mintha kernel módú címek lennének. Ezért az illesztőprogramnak meg kell keresnie az alkalmazásoktól kapott felhasználói módú puffereket, és kernel módú memóriába kell helyeznie (például egy készletblokkban vagy a kernel veremen lefoglalt adatstruktúrában), mielőtt meghívja a kernel ZwXxx rutinját. Az illesztőprogramnak a rögzített puffert kell használnia a felhasználói módú puffer helyett a ZwXxx rutin paramétereként.
Kernel ZwXxx-rutinok meghívása hibásan formázott UNICODE_STRINGs paraméterekkel. Amikor az illesztőprogram bármilyen ZwXxx rutint hív meg, az Illesztőprogram-ellenőrző ellenőrzi az UNICODE_STRING értékeket tartalmazó paramétereket. Az illesztőprogram-ellenőrző által az ilyen sztringekben észlelt gyakori hibák a következők:
- A puffermező felhasználói módú memóriára mutat.
- A Hossz vagy MaximumLength paraméterek helytelenek. Például: Maximális hossz<. Vagy az egyik vagy mindkét érték páratlan szám. Mindkét értéknek mindig párosnak kell lennie, mert azok a Unicode-sztringek megjelenítéséhez használt bájtok számát jelölik.
Kernel ZwXxx rutinok meghívása helytelen OBJECT_ATTRIBUTES struktúrával paraméterként. Amikor az illesztőprogram bármilyen ZwXxx rutint hív meg, a Driver Verifier ellenőrzi az OBJECT_ATTRIBUTE struktúrákat tartalmazó paramétereket. Az egyes OBJECT_ATTRIBUTE struktúraparaméterek tagjai ugyanazon ellenőrzések alá esnek a felhasználói módú címek és a fent leírt UNICODE_STRING értékek esetében.
Inkonzisztens Irp-RequestorMode> és I/O kérelmek paraméterei. Amikor az Irp-> RequestorModeKernelMode értékre van állítva, az illesztőprogram-ellenőrző ellenőrzi, hogy az I/O-kérési paraméterek, az Irp->AssociatedIrp.SystemBuffer vagy az Irp->UserBuffer, nem felhasználói módú címek-e.
A Windows 7-től kezdődően az Illesztőprogram-ellenőrző bármely beállításának engedélyezésekor az Illesztőprogram-ellenőrző a következő illesztőprogram-viselkedést ellenőrzi:
Az objektumhivatkozás-számláló 0-ról 1-re változik. Amikor a Windows kernelobjektum-kezelő létrehoz egy objektumot( például fájlobjektumot vagy szálobjektumot), az új objektum hivatkozásszámlálója 1 értékre van állítva. A rendszerfüggvények, például az ObReferenceObjectByPointer vagy az ObReferenceObjectByHandle hívásai növelik a referenciaszámlálót. Ugyanahhoz az objektumhoz tartozó ObDereferenceObject minden hívása a hivatkozásszámlálót dekrementeli.
Miután a hivatkozásszámláló elérte a 0 értéket, az objektum jogosulttá válik a felszabadításra. Előfordulhat, hogy az objektumkezelő azonnal felszabadítja, vagy később felszabadítja. Az Illesztőprogram-ellenőrző az ObReferenceObjectByPointer és az ObReferenceObject további hívásait ellenőrzi ugyanahhoz az objektumhoz. Ezek a hívások 0-ról 1-re módosítják a referenciaszámlálót, ami azt jelenti, hogy az illesztőprogram megnövelte egy már felszabadított objektum referenciaszámlálóját. Ez mindig helytelen, mert más memóriafoglalásokat is megsérthet.
A beállítás aktiválása
Az Illesztőprogram-ellenőrző kezelő vagy a Verifier.exe parancssor használatával aktiválhatja egy vagy több illesztőprogram biztonsági ellenőrzése beállítását. További részletekért lásd: Illesztőprogram-ellenőrző beállításainak kiválasztása.
A parancssor használata
A parancssorban a Biztonsági ellenőrzések lehetőséget a 8. bit (0x100) jelöli. A Biztonsági ellenőrzések aktiválásához használjon egy 0x100 jelzőértéket, vagy adjon hozzá 0x100 a jelző értékéhez. Például:
verifier /flags 0x100 /driver MyDriver.sysA beállítás a számítógép újraindítása után aktív lesz.
A Windows Vista-tól kezdve a számítógép újraindítása nélkül is aktiválhatja és inaktiválhatja a biztonsági ellenőrzéseket, ha hozzáadja a /volatile paramétert a parancshoz. Például:
verifier /volatile /flags 0x100 /adddriver MyDriver.sysEz a beállítás azonnal érvényes, de a számítógép leállítása vagy újraindításakor elveszik. További részletekért lásd Illékony beállítások használata.
A Biztonsági ellenőrzések beállítás a standard beállításokban is megtalálható. Például:
verifier /standard /driver MyDriver.sysDriver Verifier Manager használata
- Indítsa el a Meghajtó Ellenőrző Kezelőt. Írja be Verifier parancssori ablakba.
- Válassza az Egyéni beállítások létrehozása (kódfejlesztők számára) lehetőséget, majd kattintson a Tovább gombra.
- Válassza Egyéni beállítások kiválasztása a teljes listából.
- Válassza a Biztonsági ellenőrzések lehetőséget.
A Biztonsági ellenőrzések funkció a standard beállításokban is megtalálható. Ha ezt a funkciót szeretné használni az Driver Verifier Managerben, kattintson a Standard beállítások létrehozása elemre.