Az indító hibával foglalkozunk, amely az illesztőprogram hiányzó digitális aláírása miatt következik be az x64 rendszerben

Ebben a cikkben megpróbálom leírni az alá nem írt illesztőprogram fájlokkal kapcsolatos problémák diagnosztizálásának módszerét a Windows rendszerek x64 bites verziójában, amelyek miatt a számítógép leállítja a betöltést, és betöltéskor összeomlik a BSOD-ra. A rendszer azonban betölthető úgy is, hogy letiltja a digitális aláírás-ellenőrzést a rendszerindításkor (F8 -> letiltása sofőr aláírás végrehajtás). Például ebben a cikkben a Windows Server 2008 R2-vel fogok együttműködni (amelyre emlékszem, hogy csak a 64 bites kiadásban lehet), de ez a technika Windows 7 x64 és Vista x64 rendszerekhez használható..

Ha visszatérünk a kérdés hátteréhez, emlékeztetünk arra, hogy a Microsoft úgy döntött, hogy a 64 bites rendszerekben, a Windows Vistától kezdve, a Windows csak akkor tölt be illesztőprogramokat kernel módban, ha az illesztőprogramot digitálisan aláírták. Ha az illesztőprogramnak nincs digitális aláírása, akkor a rendszer indításakor kritikus hiba jelentkezik (ez az illesztőprogram típusától függ, amelynek betöltését blokkolja), és megjelenik a BSOD képernyő. A konkrét hiba és kódja az adott illesztőprogramtól függ, amelyet blokkolnak a rendszerindítási folyamat során. Egyes hibák közvetlenül a BSOD képernyőn aláírhatatlan illesztőprogram-fájlt jelezhetnek.

Az én esetemben a Windows 2008 r2 kiszolgáló illesztőprogramjainak frissítése után a gép normál indításakor a halál kék képernyője jelenik meg a következő szöveggel:

STOP: c000021a (végzetes rendszerhiba)

A kezdeti munkafolyamat vagy a rendszerfolyamat váratlanul befejeződött 0x00000000 állapotmal (0xc000428 0x00100448). A rendszert leállították

Próbáljuk megtudni, hogy ez milyen hiba, mely illesztőprogram okozza, és hadd határozza meg az illesztőprogram által az adott eszközt.

A hiba dekódolásához szükség van egy második paraméterre (félkövérrel van kiemelve) - 0xc000428.

Konvertálja a hexadecimális kódot olvashatóbb formába. Ehhez használhatja a Windows beépített segédprogramját SLUI.EXE vagy illessze be a fájl hibakódját NTSTATUS.h, amely megtalálható a Windows SDK-ban. Az első módszert fogjuk használni, amelyet a parancssorban hajtunk végre:

slui.exe 0x2a 0xC0000428

Amint a képernyőképen látható, meg voltunk győződve arról, hogy a BSOD-t az illesztőprogram digitális aláírása ellenőrzésének képtelensége okozza (“A windows nem tud ellenőrizze digitális aláírás mert ezt fájl„)

Indítsuk újra a számítógépet, és indításkor nyomjuk meg a gombot F8. A Speciális rendszerindítási beállítások menüben tiltsa le a digitális aláírás-ellenőrzést a kiválasztásávalletiltása sofőr aláírás végrehajtás .

Abban az esetben, ha ebben a módban a szerver indul, akkor biztosak vagyunk abban, hogy néhány alá nem írt modul vagy illesztőprogram nem engedi a rendszernek a normál indítást..

A következő lépés a probléma modul vagy illesztőprogram fájl azonosítása. Nyissa meg a konzol eseménynaplóját (Event Viewer), és lépjen az Alkalmazások és szolgáltatások naplók -> Microsoft -> Windows -> CodeIntegrity -> Operational.

Megjegyzés: ha az ág naplóinak elérésekor egy hibaüzenet jelenik meg,hozzáférés megtagadva ”, hozzon létre a lemezen c: könyvtár a csoport biztosításával Mindenkinek teljes hozzáférése van. Ezután módosítsa a fájl elérési útját ETL az új könyvtárba, majd kapcsolja ki és be a naplózást.

Az én esetemben van egy EventID 3001 esemény a naplóban a következő szöveggel:A kód integritása meghatározta, hogy az alá nem írt kernelmodul \ eszköz \ HarddiskVolume1 \ Windows \ System32 \ win32k.sys betöltődik a rendszerbe. Kérdezze meg a kiadót, hogy elérhető-e a kernelmodul aláírt verziója". Tehát megtaláltuk a problémameghajtót!

Ez az illesztőprogram lehet natív Microsoft vagy harmadik féltől származó illesztőprogram. Győződjön meg arról, hogy ennek az illesztőprogramnak valójában nincs digitális aláírása. Ehhez szükségünk van a Sysinternals SIGCHECK.EXE nevű segédprogramjára (itt átveheti http: //TechNet.microsoft.com /en-minket /sysinternals /bb897441).

A digitális aláírás meglétének ellenőrzését a következő paranccsal hajthatjuk végre:

c: \ TOOLS> sigcheck.exe -i c: \ Windows \ System32 \ win32k.sys

Ha nincs aláírás, akkor az Alá nem jelölt lesz az Ellenőrzött mezőben (egyébként ennek megfelelően aláírva).

Kétféle módon megoldhatjuk a normál rendszerindítás lehetetlenségét aláírás nélküli illesztőprogrammal:

  1. Keressen egy aláírt illesztőprogram-verziót
  2. Nem hajlandó használni ezt az illesztőprogramot (és az eszközt)
  3. tiltsa le az illesztőprogram digitális aláírásának ellenőrzését a Windows rendszerben

A harmadik lehetőség valamilyen okból nem működik. Az első két esetben meg kell határoznunk, hogy melyik eszközhöz tartozik az adott .sys illesztőprogram..

Hogyan lehet meghatározni az eszközt, csak a sys fájl nevét tudva? A következő módszert alkalmazom (azonosítsunk egy eszközt, amelynek illesztőprogramja HpCISSs2.sys néven található):

1) Nyissa meg a beállításjegyzék-szerkesztőt és keresse meg az ágot HKEY_LOAL_MACHINE \ SYSTEM \ ControlSet001 HpCISSs2.sys értékű kulcsot keres

2) Az én esetemben az ágban található HKEY_LOAL_MACHINE \ SYSTEM \ ControlSet001 \ services \ HpCISSs2

3) Az egymásba ágyazott ágakat kibővítjük ENUM névvel, érdekli a kulcs értékét  0, az én esetemben a PCI \ VEN_103C& DEV_3230& SUBSYS_3235103C & REV_01 \ 4 & 3b416f2c & 0 & 0018

4) Megállapítottuk, hogy az eszköz gyártója rendelkezik a 103C azonosítóval, és az eszköz kódja 3230

5) Tovább az oldalon jelölje meg a kereskedőkeresés és az Eszközkeresés mezőkben a megtalált kódokat.

6) Úgy találjuk, hogy a keresett eszköz egy HP Smart Array P400 Controller merevlemez-vezérlő.

Csak meg kell találnunk az illesztőprogram új verzióját a berendezés gyártójának weboldalán (figyelmesen meg kell keresni, hogy mely operációs rendszerű verziókra van szükség a megfelelő illesztőprogramhoz), és frissítenünk kell a számítógépen található illesztőprogramot..