Bsod hvilke drivere som trengs for datamaskinen. Bruke Driver Verifier for å identifisere den problematiske driveren. Leser en dumpfil

Det er mange grunner til BSOD, men i denne artikkelen vil vi vurdere et problem som oppstår på grunn av en konflikt mellom installerte drivere. Det kan bare være installert driver eller skadet. Å fikse BSOD-problemet kan være ganske enkelt hvis det bare er et driverproblem og du vet hvilken det er. Du kan installere driveren på nytt eller oppdatere den, gå tilbake til gammel versjon eller bli kvitt programmet som installerte driveren på datamaskinen din ved å fysisk fjerne den. Problemet er at det ikke alltid er mulig å finne ut hvilken sjåfør som er "skyldig", selv etter å ha studert alle dataene fra Blå skjerm. Men det er en vei ut. Hvis du ikke har mye kunnskap og erfaring, men det er behov for å sjekke drivere, kan du bruke det spesielle verifiseringsverktøyet Verifier.exe innebygd i OS for slike tilfeller. Den eksisterende beskrivelsen i Microsofts kunnskapsbase presenteres ved hjelp av komplekse tekniske termer som ikke alltid er kjent selv for erfarne brukere. Derfor presenterer denne artikkelen en kort liste over manipulasjoner som er nødvendige for å fullføre oppgaven. Kjøre Driver Verifier Etter å ha åpnet "Start"-menyen, skriv inn søket "Kjør" i søkefeltet og klikk på resultatet som vises øverst. I vinduet som vises, må du skrive inn kommandoen " verifikatoren" (uten anførselstegn) og bekreft ved å klikke "OK".
Dialogboksen File Verification Manager vises. I den første dialogboksen må du velge elementet "Opprett ikke-standardparametere (for programkode)". Klikk "Neste".
Det neste trinnet er å velge individuelle parametere for å teste driveren. For å gjøre dette, vil vi utføre følgende manipulasjoner: "Velg individuelle parametere fra full liste" - "Lengre".
Etter å ha fullført disse trinnene, bør du motta en dialogboks med en liste over testparametere. Kryss av i alle boksene bortsett fra elementet "Simuler ressursmangel". Klikk på Neste.
Det siste trinnet i denne delen er å gi avsenderen en kommando til automatisk valg usignerte drivere. Velg "Velg automatisk usignerte drivere." Klikk på Neste.
Det hender at lederen ikke oppdaget usignerte drivere. Bruk deretter funksjonen for selektiv sjåførsjekk, som vil bli diskutert senere. Arbeid med usignerte drivere Hvis usignerte drivere oppdages, vil lederen vise dem i form av en liste.
Disse kan være enhetsdrivere eller applikasjonsdrivere. Når usignerte drivere har blitt oppdaget, er det ikke nødvendig å lukke administratoren og klikke på "Fullfør"-knappen. Først, la oss se etter oppdaterte drivere. Søk etter oppdaterte drivere For å sjekke, må du utføre følgende trinn: 1. Programdriveren er på listen. I dette tilfellet må du besøke applikasjonsprodusentens nettsted for å se etter oppdaterte drivere. I tilfelle oppdatert versjon driver mangler, prøv å avinstallere programmet. Ikke vær redd, du kan alltid installere den på nytt senere. Men dette vil være en utmerket sjekk: hvis kritiske feil ikke lenger oppstår, var årsaken inne denne søknaden. 2. Listen inneholder en enhetsdriver. I dette tilfellet (hvis du har Windows Vista), start oppdateringssenteret og aktiver søket etter en ny driverfunksjon. Hvis en ny driver blir funnet, kjør installasjonen. 3. Hvis oppdateringssenteret ikke fant en ny driver, se på produsentens nettsted. Det er sannsynlig at den nye driveren vil være der. Etter å ha oppdatert driveren eller applikasjonen, lukk skannebehandlingen (Avbryt-knappen), start på nytt og vent på at operativsystemet skal lastes. Hvis kritiske feil stoppet - oppdatering av drivere eller applikasjoner eliminerte dem. Fjerning av drivere Hvis nye drivere ikke blir funnet, kan du prøve å fjerne driveren. MERK FØLGENDE! Hvis du fjerner driveren, slutter enheten å fungere. Etter omstart vil operativsystemet forsøke å installere driveren fra lagringen, men det er ikke et faktum at standarddriveren vil gjøre det. Hvis du ikke er sikker på behovet for å fjerne en driver, bør du ikke fjerne den. Start Enhetsbehandling ved å gjøre følgende: Start – Kjør – devmgmt.msc- Tast inn. Etter å ha funnet ønsket enhet, høyreklikk på den og klikk Egenskaper – Driver – Avinstaller. Se etter usignerte drivere MERK FØLGENDE! Etter å ha sjekket for usignerte drivere, kan det hende at systemet ikke starter opp. Nedenfor er en beskrivelse av handlingene i denne situasjonen. Hvis du ikke er sikker på at du vil fjerne driveren og likevel fortsette skanningen, klikker du på "Fullfør"-knappen i skannebehandlingen. Når du blir bedt om å velge en fysisk disk, velger du den som operativsystemet er installert på, og klikker deretter på Fullfør igjen. Du vil se en melding med teksten: "Du må starte datamaskinen på nytt for at endringene skal tre i kraft." Lukk alle applikasjoner rolig og start på nytt. Hvis systemet ikke starter og en blå skjerm vises med en beskrivelse av feilen, betyr det driveren plagsom funnet. Etter å ha startet datamaskinen på nytt, før du laster inn operativsystemet, klikk F8 verifier.exe/resetverifier.exe
Egendefinert sjåførsjekk Start Driver Verifier Manager på nytt og utfør de foregående trinnene til punktet vist nedenfor.
Velg "Velg drivernavn fra listen". Det neste trinnet vil være vinduet for valg av drivere som skal sjekkes. Du bør ikke velge alle drivere samtidig, fordi operativsystemet vil reservere en ganske stor mengde ressurser for skanning og vil bruke mye tid på det. Det er bedre å gjenta verifiseringsprosedyren flere ganger, men med et lite antall sjåfører. Dette vil spare deg for tid og ressurser. Først av alt, la oss sjekke drivere som nylig har blitt oppdatert eller rett og slett problematiske drivere (driver antivirusprogram, brannmur, virtuell disk eller biler). La neste trinn være å sjekke drivere som ikke er produsert av Microsoft. Sjekk de resterende driverne 10-15 om gangen.
Plukke ut nødvendige sjåfører og klikk på "Ferdig"-knappen. Når du blir bedt om å velge en fysisk disk, velger du den som operativsystemet er installert på, og klikker deretter på Fullfør igjen. Det vises en melding som ber deg starte på nytt. Start datamaskinen på nytt. Hvis en blå skjerm med en feilmelding vises etter en omstart, betyr det at driveren som forårsaker problemet er funnet. Etter å ha startet datamaskinen på nytt, før du laster inn operativsystemet, klikk F8 og velg "Kjør inn sikkerhetsmodus" Når du er logget på, klikker du på Start-knappen og skriver inn Kjør/Søk verifier.exe/reset. Hvis det ikke oppsto problemer og systemet startet i standardmodus, forårsaker ikke usignerte drivere problemer, og du må sjekke andre drivere. Kjør Driver Verifier Manager igjen ( verifier.exe) og velg "Vis informasjon om for øyeblikket verifiserte drivere."
Gjenta skanningen for alle gjenværende drivere. Fullfører sjåførverifisering Hvis kontroll av alle drivere ikke avslører årsakene til kritiske feil, er det mest sannsynlig at problemet ikke er med driverne. Problemet er kanskje ikke programvaren, men maskinvaren til datamaskinen. Mest sannsynlig er dette problemer med harddisken eller RAM. Det kan også være at strømforsyningen ikke har nok strøm til å sikre driften av alle enheter eller et annet problem i maskinvaren som ikke kan fastslås ved å sjekke driverne. Diagnostiser RAM og HDD.

En defekt driver kan forårsake mange problemer på datamaskinen. Hovedtegnet på at datamaskinen din har en defekt driver er en blå skjerm, som ofte er forårsaket av at driveren er deaktivert.

I denne artikkelen vil vi fortelle deg hvordan du kan finne en defekt driver og deretter oppdatere den eller helt fjerne den.

Noen ganger varsler Windows brukeren om at en av driverne har feilet. Det hender imidlertid at systemet ikke kan oppdage hva problemet er, så det viser ikke feilmeldinger, og det er grunnen til at det fungerer saktere eller ikke som nødvendig. I dette tilfellet Behandler for sjåførbekreftelse(Driver Verifier) ​​skaper ekstra belastning på systemdrivere, og prøver derved å forårsake krasj. Hvis en av driverne feiler, da Behandler for sjåførbekreftelse vil rapportere problemet ved hjelp av en blå skjerm.

Advarsel

Før bruk Behandler for sjåførbekreftelse, vær oppmerksom på at verktøyet kan begrense deg fra å bruke din egen datamaskin. Fordi det Behandler for sjåførbekreftelse utløser en blå skjerm når den oppdager en defekt driver, kan dette forårsake store problemer ved lasting av Windows.

Hvis du ikke har muligheten til å komme inn i Windows for å deaktivere drivertesting, vil datamaskinen kjøre i en "boot -> load -> crash" loop som er ganske vanskelig å komme ut av. Den automatiske reparasjonsfunksjonen er et av få alternativer for å få tilgang til Windows, men det er bedre å unngå denne situasjonen.

Før du bruker Driver Verifier, sørg for at du har minst én av følgende nødutganger:

  • Du kan gå inn i sikker modus. Gå inn i sikkermodus før du starter Windows oppstart vanligvis gjøres ved å trykke F8 gjentatte ganger mens datamaskinen starter. Nye datamaskiner starter imidlertid opp så raskt at du rett og slett ikke har tid til å trykke F8 til rett tid.
  • Har du opprettet et systemgjenopprettingspunkt før bruk? Behandler for sjåførbekreftelse. Det er også lurt å ha en installasjon Windows-disk slik at du kan gjenopprette datamaskinen til fabrikkinnstillingene.

Slik kjører du Driver Verifier Manager

Før du starter bruksanvisningen Behandler for sjåførbekreftelse, sørg for at du leser "Advarsel"-delen ovenfor. Det står hvordan du unngår endeløs lasting Windows.

Når du er hundre prosent sikker på at du har en nødutgangsplan, klikker du på " Windows-tast + R" og gå inn cmd i dialogboksen Henrette", klikk deretter" OK».

I kommandovinduet skriver du inn:

verifikatoren

I popup-vinduet velger du " Opprett ikke-standard parametere (for programkode)", klikk deretter" Lengre».

Du vil se en liste over alle testene du kan kjøre for å sjekke driverne dine. Velg alle tester fra listen, unntatt"Simuler tilfeldig ressursmangel" og "Ytterligere DDI-samsvarssjekk", og klikk deretter " Lengre».

På neste skjerm, velg " Velgeførernavn fra listen"og trykk" Lengre».

Her kan du velge hvilke drivere du vil teste. Hvis du ikke vet hvilken driver som er feil, velg alle unntatt Microsoft fordi de oftest fungerer uten feil.

Når du trykker på " Klar" vil Windows be deg om å starte PC-en på nytt. Etter at datamaskinen er slått på, fortsett å bruke den som vanlig. Hvis du får en blå skjerm, vær oppmerksom på feilmeldingen og start datamaskinen på nytt.

Når du har identifisert den defekte driveren, kan du deaktivere Behandler for sjåførbekreftelse en av to måter. Du kan åpne ledeteksten på nytt, skriv inn kommandoen verifikatoren, og velg " Fjern eksisterende innstillinger».

Du kan også åpne en ledetekst og skrive inn:

Verifikator /bootmode resetonbootfail

Etter å ha deaktivert Driver Verifier Manager, start datamaskinen på nytt. Hvis datamaskinen ikke slår seg på, bruk en av nødutgangene som vi diskuterte i "Advarsel"-delen.

Konklusjon

Hvis du tror en av driverne er feil, men ikke kan finne ut hvilken, da Behandler for sjåførbekreftelse vil være en stor hjelper.

Du bør imidlertid være forberedt på muligheten for at datamaskinen ikke vil kunne slå seg på etter å ha testet driverne, så vurder en sikkerhetskopiavslutning med nødsituasjon, for eksempel gå inn i sikker modus eller kjør et Windows-gjenopprettingspunkt.

Har du noen gang hatt problemer med drivere på datamaskinen din? Hvordan klarte du å finne den defekte driveren? Fortell oss i kommentarene nedenfor!

Driver Verifier-verktøyet (verifier.exe) er utviklet for å analysere problematiske drivere når analyse av minnedumper etter en BSOD ikke tillater å finne den problematiske driveren. Driver Verifier er en "livredder" i de mest problematiske situasjonene.

Med Driver Verifier kan du:

    sjåførstresstest (ressursmangeltilstander simuleres);

    buffer overflyt kontroll;

    kontroll over feil som oppstår på grunn av feil operasjon ved en gitt IRQL;

    I/O feilanalyse;

    oppdagelse av fastlåste situasjoner, etc.

Driver Verifier-verktøyet er veldig nyttig når:

    administratoren (brukeren) har mistanker om at denne driveren får systemet til å krasjer, og han ønsker å undersøke videre om dette faktisk er tilfelle;

    driverutviklere ønsker å teste driveren sin;

    Når du analyserer en dump etter en BSOD, er det umulig å finne den problematiske driveren.

En av de vanskeligste tilfellene med å analysere minnedumper er når en driver feilaktig overskriver data før eller etter slutten av bufferen den tildelte. I slike tilfeller oppstår det feil i OS-kjernen (for eksempel viser analyse av en dump etter en BSOD at feilen oppsto i ntoskrnl.exe).

La oss se lignende tilfelle på et spesifikt eksempel. Ved å bruke NotMyfault-verktøyet forårsaker vi BSOD - "Bufferoverflyt".

Resultatet av dumpanalyse ved bruk av windbg er vedlagt nedenfor.

I følge dumpanalysen får vi:

1. Arg1: 00000007, forsøk på å frigjøre pool som allerede var frigjort (det ble gjort et forsøk på å frigjøre en allerede frigjort pool)

2. IMAGE_NAME: ntkrpamp.exe (kjernen i selve systemet har noe med dette å gjøre)

Det er med slike feil at verifikatoren kommer til unnsetning.

Start verifikatoren.

Velg "Opprett ikke-standard parametere". Deretter velger du "Velg parametere fra listen".

Velg alt unntatt "Simuler ressursmangel".

Velg deretter "Velg ulastede drivere for denne listen" og spesifiser banen til myfault.sys-driveren, som ligger i samme katalog som NotMyfault.exe-programmet.

Merk deretter driveren og klikk "Fullfør". Etter dette må vi starte datamaskinen på nytt.

Vi utfører alle de samme handlingene som i begynnelsen. Kjør NotMyfault.exe, velg "Buffer overflow" og klikk på "Crash". Som du la merke til, kan det hende at en krasj ikke skjer umiddelbart, siden hvem og når som skal prøve å jobbe med dette minnet er ukjent på forhånd. Som du kan se på bildet nedenfor, takket være verifikatoren, kan systemet identifisere den problematiske driveren.

Jeg vil gi en analyse ved å bruke!analyze –v i windbg.exe av en minnedump etter en BSOD.

Verifikatorprogrammet gjør det slik at driveren som testes, i stedet for vanlig minne tilgjengelig i kjernen, bruker en spesiell pool designet for å oppdage en slik feil. Takket være dette kan du finne driveren som forårsaker BSOD.

Ser vi på resultatene av analysen, ser vi følgende.

1. DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION (d6) – dette er en av feilene som genereres av verifikatoren

2. IMAGE_NAME: myfault.sys – driveren som forårsaket problemet.

Derfor, hvis analyse av en minnedump etter en BSOD ikke lar deg finne den "skyldige driveren", bruk verifier.exe-programmet (installer alle sjekker, bortsett fra mangel på minne).

Den enkleste måten å bruke Driver Verifier (verifier.exe) på er å kjøre den med følgende parametere:

verifier /standard /driverdriverfilnavn

Nytte Sjåfør Verifikator inkludert i alle Windows-versjoner, starter med Windows XP, og lar deg sjekke drivere, identifisere problematiske drivere som forårsaker blå skjerm av død (BSOD- Blue Screen of Death) og ta opp detaljert informasjon om den problematiske driveren i en minnedump for videre analyse. Verktøyet utsetter de sjekkede driverne for forskjellige " stresstester", simulerer ulike ekstreme forhold: mangel på minne, I/O-kontroll, IRQL, vranglås, DMA-sjekker, IRP, etc. Dvs. situasjoner som sjelden oppstår på produktive systemer simuleres, og føreradferd i dem overvåkes. Formålet med verktøyet er å identifisere situasjoner der en driver kan føre til et systemkrasj med BSOD.

Den kjørbare filen til Driver Verifier-verktøyet kalles Verifikator.exe og ligger i katalogen %windir%\system32. Det er to alternativer for å bruke verktøyet: fra kommandolinjen eller bruk GUI.

For å aktivere driververifiseringsmodus i Windows 8, start Driver Verifier-verktøyet ved å skrive

Verifikator

Velg fra oppgavelisten Opprett egendefinerte innstillinger (for kodeutviklere) og trykk Neste.

Sørg for at alternativene er valgt Standardinnstillinger, Tving ventende I/O-forespørsler Og IRP-logging. Klikk Neste.

Velg neste.

Sorter innholdet i tabellen ved å klikke på kolonneoverskriften "Tilbyder" og velg de du vil teste fra listen over drivere. I vårt eksempel vil vi kjøre en sjekk for alle drivere som ikke er utviklet av MicrosoftSelskap. Vi valgte driverne: e1g6032e.sys (Intel) og lsi_sas.sys (LSI).

Merk. Driver tilgjengelighet digital signatur Microsoft indikerer at driveren har blitt testet på en bestemt måte for stabilitet og koden har ikke blitt endret siden den gang. Det er derfor det ikke anbefales eller brukes.

Alt du trenger å gjøre er å klikke Bli ferdig og et informasjonsvindu vises som sier at du må starte systemet på nytt for at endringene skal tre i kraft.

Råd. Sjåførverifiseringsmodus kan også aktiveres fra kommandolinje. For eksempel å kjøre Driver Verifier med standardinnstillinger for myPCDriver.sys-driveren vil kommandoen se slik ut: verifier /standard /driver myPCDriver.sys

Etter omstart starter systemet opp i driververifiseringsmodus. Driver Verifier fungerer i bakgrunn, utfører ulike typer testing av utvalgte drivere for å identifisere feil. Bruk datamaskinen som vanlig og vent til BSOD vises. Hvis du vet hvilke handlinger som tidligere fikk systemet til å krasje, gjenta dem. Hvis en BSOD oppstår, må du kopiere minnedumpfilen (som standard er den lagret i katalogen C:\Windows\Minidump\*.dmp) og analysere den med Windbg eller tilsvarende.

Viktig! Etter å ha aktivert driverfeilsøkingsmodus ved hjelp av Driver Verifier, vil denne modusen fungere til den blir tvangsdeaktivert.

Hvis problemet ikke gjentar seg innen 1-2 dager, kan vi med en viss grad av sikkerhet konkludere med at driverne som testes ikke er årsaken til systemkrasj, og skannemodusen for dem kan deaktiveres.

Råd. Bruke validatoren Windows-drivere reduserer Windows betydelig, så det anbefales ikke å jobbe konstant i denne modusen.

Du kan deaktivere Driver Verifier fra kommandolinjen:

Verifikator / reset

Eller fra det grafiske grensesnittet ved å velge Slett eksisterende innstillinger.

Hvis du ikke kan logge på systemet i normal modus, kan du deaktivere feilsøkingsmodus fra sikker modus.

Hvis systemet ikke starter opp i sikker modus, kan du prøve å slette følgende registernøkler ved å starte opp fra en oppstartsdisk:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\VerifyDrivers
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\VerifyDriverLevel

Du kan sjekke gjeldende status for Driver Verifier-verktøyet på denne måten.

Vi advarer deg om at alle eksperimenter med drivere er farlige og kan skade systemet. Det er bedre å ta en sikkerhetskopi av systemet på forhånd og så ikke krysse fingrene ved å fjerne en annen mistenkelig driver fra Windows.

Og så snart de ikke skjeller Windows fra Microsoft, kaller den stakkaren samtidig sakte, glitchy og til og med ustabil. Men ingen har det travelt med å gi det opp, og generelt sett er det usannsynlig at de noen gang vil gi det opp. Derfor, i stedet for å skjelle ut dårlige utviklere og starte meningsløse flammer, ville det være greit å finne ut hvorfor systemet faktisk er buggy? Jeg skal fortelle deg en liten hemmelighet. I de beryktede skjermene av død og ustabilt arbeid Windows i de aller fleste tilfeller er det tredjeparts drivere som har skylden, og selve operativsystemet har absolutt ingenting med det å gjøre. Nå vil vi fortelle deg hvordan du oppdager slike drivere og fjerner dem fra systemet.

Driverdesignfeil kan variere fra krasj til Blue Screen of Death ( BSOD– Blue Screen of Death) og til nedgangen til datamaskinen og den merkelige oppførselen til enkelte applikasjonsapplikasjoner som er fullstendig urelaterte til driveren.

The Blue Screen of Death er bemerkelsesverdig (uten ironi!) ved at den tydelig signaliserer tilstedeværelsen av et alvorlig problem og gir et tips om hvor du skal grave. Ofte (men ikke alltid) vises navnet på den "fornærmende" sjåføren direkte i øvre høyre hjørne av den blå skjermen. Imidlertid kan det hende at det ikke er der, eller enda verre, navnet på en helt ubeslektet sjåfør kan være der.

For eksempel en ganske vanlig skjermkortdriver Matrox G450 har en tendens til å ødelegge grunnleggende strukturer grafisk delsystem Windows 2000 , noe som resulterer i at BSOD viser navnet på systemdriveren win32k.sys, som implementerer en betydelig del av BRUKER- og GDI-funksjonene og som naturligvis ikke har noe med det å gjøre. Så å tolke den blå skjermen av dødsavlesninger er magi, intuisjon, vitenskap og kunst - litt av hvert.

I tillegg til driverdefekter, kan blåskjermer også være forårsaket av maskinvarefeil, for eksempel en overklokket prosessor, defekt RAM eller en skjev kontroller. harddisk, PCI-kort ikke satt helt inn i sporet, løs kontakt i en av kontaktene, dårlig strømforsyning, oppsvulmet elektrolytisk kondensator på hovedkort. Og sistnevnte surrer av forskjellige grunner: på grunn av overoppheting fra en nærliggende prosessor, mangel på keramiske kondensatorer "ikke rapportert" av produsenten (som et resultat av at RF-komponenten går gjennom elektrolytten og varmer den kraftig opp), og til slutt , på grunn av lekkasje av nøkkeltransistorer i enhetsstabilisatoren. Derfor, før vi hogger ved, må vi sørge for at jernet vi sitter på er i full stand. Hvordan kan dette gjøres?

Oppgjør med jern

Blåskjermer med dødsfall forårsaket av maskinvarefeil er spontane, vises uforutsigbart og uavhengig av spesifikke brukerhandlinger. Applikasjoner begynner også å produsere kritiske feil på en rekke steder, og feilkoder, adresser og annen informasjon utstedt av systemet vil være forskjellig i alle tilfeller! Forresten, drivere som håndterer asynkrone forespørsler fra I/O-enheter, for eksempel trådløse nettverk, oppfører seg nesten nøyaktig likt. Blåskjermer av død forårsaket av defekte sjåfører oppstår vanligvis når du utfører et bestemt sett med handlinger og inneholder mer eller mindre konstant informasjon.

For å fjerne alle mistanker fra maskinvaren, er det nok å koble en annen harddisk til systemet og installere en perfekt ren Windows og jobbe med det en stund. Hvis dødens blå skjermer ikke forsvinner, betyr det at maskinvaren virkelig har skylden, og det er på tide å endre det. Å finne defekte komponenter er et tema for en egen diskusjon, som vi lar stå til neste gang, men foreløpig brett opp ermene og ta tak i disse lumske sjåførene.

Ved uten sertifikat går rett i brennkammeret

Hele settet med verktøy som er nødvendig for sjåførutvikling ( DDK– Driver Development Kit), distribuerer Microsoft det gratis sammen med den medfølgende dokumentasjonen. Drivere, noen ganger veldig buggy og ustabile.

For å forhindre at slikt kaos oppstår, Microsoft tilbake i antikken introduserte den en prosedyre for å sertifisere sjåfører for overholdelse av kravene som ble pålagt dem, hvoretter sjåføren får utstedt en digital signatur. Eller... den ble ikke utstedt, og den ble sendt til revisjon. Og selv om sertifisering bare er en formell prosedyre som ikke garanterer fravær av fatale feil og utviklingsfeil, eliminerer den fortsatt noen av de ærlige "banebrytende" sjåførene.

Ideelt sett bør bare digitalt signerte drivere beholdes på systemet. Og selv om en digital signatur ikke er en forsikring, indikerer dens tilstedeværelse allerede et visst nivå av utviklingskultur. Drivere uten digital signatur er verre enn en gris og bør bli kvitt hvis mulig (spesielt siden mange av dem er skadelig programvare installert av rootkits eller aggressive forsvarsmekanismer som trenger dypt inn i systemet og forårsaker dets ustabilitet). Kort sagt, la oss ikke hengi oss til demagogi, men la oss prøve å svare på ett enkelt spørsmål: hvordan lage en liste over sjåfører uten en digital signatur?

Verktøyet vil hjelpe oss med dette sigverif.exe, inkludert i standard leveringssett operativsystem og ligger i WINNT\System32-katalogen. Vi starter den og ser en dialogboks. Klikk på "Avansert"-knappen og i "Søk"-fanen konfigurerer du valgkriteriene ved å flytte alternativknappen fra "Varsle om avmeldt"-posisjonen systemfiler"(hvor den forsvant som standard) til posisjonen "Søk etter andre filer som ikke er digitalt signert." Etter det, i "Søkealternativer", åpne "Søk etter filer av følgende type"-boksen og velg "*.sys", og angi søkemappen "C:\WINNT" nedenfor, og sørg for å merke av for "Inkludert undermapper»-avmerkingsboksen.

Faktisk, strengt tatt, er ikke drivere pålagt å ha sys-utvidelsen og er ikke alltid begrenset til WINNT-katalogen, som er i katalogene til "deres" applikasjoner, og noen applikasjoner lagrer til og med drivere... inne i seg selv! Umiddelbart etter lansering (eller når som helst), lagrer de filen på disk i gjeldende eller midlertidig katalog, laster driveren inn i minnet og... sletter den umiddelbart fra disken! Dette gjøres ikke bare av ondsinnede virus, men også av ganske respektable programmer, for eksempel noen verktøy fra den berømte Windows-undergrunnsforskeren Mark Russinovich.

Derfor, for renheten til eksperimentet, ville det ikke skade oss å få en liste over drivere som er plassert i dette øyeblikket i minnet, og sammenlign dem med driverne som ligger på disken. Ordene "for øyeblikket" er nøkkelen, siden drivere kan lastes ned/lastes ned gratis uten å starte operativsystemet på nytt. Det anbefales å utføre denne operasjonen flere ganger ved å kjøre kommandolinjeverktøyet drivers.exe, som er en del av DDK, som kan lastes ned fra Microsoft-serveren. Lansert uten noen brytere av en linjekommando, verktøyet drives.exe dumper all informasjon på skjermen, noe som ikke er bra, siden det vanligvis er mange drivere i systemet og de ikke får plass på skjermen. Imidlertid lar religion oss omdirigere utdatastrømmen til tekstfil(drivers.exe >filnavn.txt), kan åpnes av alle tekstredigerer- enten med Word eller med en notisblokk. Da gjenstår det bare å velge den vertikale blokken (som Notepad ikke tillater) og få en liste over drivere. Rett fra operativsystemkjernen!

Hvis minst én av disse driverne ikke er i C:\WINNT\-katalogen, vil dens digitale signatur ikke verifiseres! Naturligvis vekker en slik sjåfør umiddelbart oppmerksomhet, og vi har et rimelig spørsmål: hvor kommer den fra? Først skanner vi alle kataloger på disken; hvis den ikke er der, sett et bruddpunkt på CreateFileW-funksjonen i Soft-Ice og se på argumentene som sendes til den. Før eller senere vil vi møte buggy-driveren vår, hvoretter vi bare kan se på nedre høyre hjørne av Soft-Ice-skjermen, hvor navnet på prosessen som genererte den vises. For flere detaljer, se boken "Teknikker for feilsøking av programmer uten kildetekster", en elektronisk kopi av denne kan finnes på ftp- eller http-serveren nezumi.org.ru, så vel som på disken vår. Og vi fortsetter å plage nytten sigverif.exe.

Etter å ha klikket på "OK", "Start", vil et "termometer" vises på skjermen, som viser fremdriften, og harddisken vil begynne å rasle med alle hodene den har. Etter endt arbeid vil en liste over sjåfører uten digital signatur bli kompilert og vist på skjermen.

Noen hotheads foreslår, for å rense systemet for kjetteri, å fjerne alle usignerte drivere - da, sier de, vil alle problemer forsvinne. Hvordan kan dette gjøres? Den groveste løsningen er å ganske enkelt fjerne dem fra disken via FAR eller Explorer (med administratorrettigheter, selvfølgelig!). Men konsekvensene av en slik operasjon kan være svært katastrofale, og det er bedre å høyreklikke på driverikonet i Utforsker, finne navnet på produsenten i "Egenskaper", som du kan bestemme hva slags applikasjon/maskinvare som er installert denne driveren, og avinstaller den på en sivilisert måte. Riktignok er det ett "men" her.

Driveren er uthevet i figuren nedenfor. g400m.sys, som følger med Matrox G450-kortet, og selv om Matrox ikke er et svakt selskap i det hele tatt, fikk det ingen digital signatur (enten ga Microsoft det ikke, eller Matrox selv ville ikke bry seg). Naturligvis, etter å ha fjernet den fra systemet, må du glemme SVGA-modusen. Du kan imidlertid gå til Matrox-nettstedet og laste ned den nyeste versjonen av driveren (den er allerede digitalt signert). Bare her ... både signerte og usignerte versjoner inneholder mange fatale feil, spesielt som et resultat av visse omstendigheter, når du prøver å bytte til overleggsmodus, krasjer systemet inn i BSOD, siden driveren prøver å frigjøre allerede frigjort minne.

Tilstedeværelsen/fraværet av en digital signatur i seg selv betyr altså ingenting, og selv om vi kun bruker signerte drivere, gir dette oss ingen garantier for stabilitet.

Det er her vi går videre til den andre delen av artikkelen, nemlig å teste sjåfører under forhold nær kamp.

Vi gir veden en skikkelig prøve

DDK inkluderer et fantastisk verktøy Sjåfør Verifikator, som skaper de mest alvorlige forholdene for sjåfører, på grensen til ekstrem og selvmord, der sannsynligheten for feil er størst, og navnet på den defekte sjåføren bestemmes med høyeste nøyaktighet (selv om den ikke lider på grunn av utviklingsfeil, men ødelegger datastrukturen til andres sjåfører).

Det er viktig å merke seg det Sjåfør Verifikator– Dette er ikke en medisin, men kun et diagnostisk verktøy. Det vil fortsatt ikke redde deg fra feil (tvert imot, det vil øke intensiteten deres med et par størrelsesordener), men det vil bidra til å identifisere den "slumpe" sjåføren med en tilstrekkelig grad av pålitelighet.

Så vi kjører verifier.exe, vi ser vinduet Sjåfør Verifikator sjef, gå til Innstilling-fanen og flytt alternativknappen til Bekreft alle sjåfører-posisjonen, hvoretter vi trykker på "Foretrukket innstilling"-knappen, som angir følgende verifiseringstyper:

  • Spesiell basseng– sjåførene som testes vil bli tildelt et spesielt minneområde for tildeling, som ikke fungerer veldig raskt, men som er i stand til å oppdage de fleste typer ødeleggelse av egne og andres data.
  • Makt IRQL sjekker. IRQL er nivået for avbruddsforespørsel. Den vanligste feilen driverutviklere gjør er å prøve å få tilgang til minne på et IRQL-nivå der personsøkerbehandlingen ikke fungerer. Og hvis den nødvendige siden plutselig viser seg å bli kastet ut på disk, vil systemet bli til en blå skjerm med inskripsjonen "IRQL_LESS_OR_EQULAR". Ved å tvinge denne modusen tvinges driversidene til å skylles til disken slik at designfeilen vises 100 % av tiden.
  • Lav ressurs simulering Det er nyttig å installere det for å se hvordan driveren vil oppføre seg i tilfelle en katastrofal mangel på systemressurser, men du trenger ikke å gjøre dette, men det er bedre å la avmerkingsboksen for Pool-sporing (overvåke riktig håndtering av minnet) basseng). Inn-/utdatafeil (I/O-verifisering) utgjør en ubetydelig del av alle feil, så plasseringen av denne avkrysningsboksen er generelt sett helt ukritisk.

Når du er ferdig med å velge innstillingene, klikker du på "Bruk"-knappen og, som foreslått for oss, start på nytt.

Umiddelbart etter at oppstarten begynner, vil systemet redusere hastigheten merkbart, noe som er som det skal være, siden kjernen utfører mange flere kontroller enn vanlig. Når feil oppdages, blinker et blått skjermbilde med førernavnet og annen informasjon som er nyttig for utviklere, men ubrukelig for oss. Alt vi kan gjøre er å oppdatere driveren til det meste siste versjon eller nekte å bruke programmet (maskinvaren) som bruker det. Egentlig har vi litt flere muligheter for å tenne på vått ved, men mer om det senere.

Du kan finne ut bekreftelsesstatusen når som helst ved å kjøre verifier.exe. Sjåførstatus-fanen viser statusene til alle oppdagede drivere med en forklaring av den nåværende situasjonen. Lastet status betyr det denne driveren har blitt lastet ned og verifisert av i det minste, en gang (men kanskje ikke helt, det vil si at ikke alle deler av sjåføren hadde tid til å trene). Unloaded-statusen betyr at driveren er lastet, verifisert (eventuelt delvis) og losset av systemet/programmet som bruker den eller etter eget ønske. Sistnevnte er spesielt typisk for drivere som er igjen fra utstyr som ble fjernet ved barbarisk å trekke utvidelseskortet ut av sporet, det vil si uten å utføre avinstallering. Den overlevende sjåføren skanner bussen, prøver å finne "dens" maskinvare, mislykkes med søket, og laster deretter av seg selv fra minnet, forresten, bremser oppstarten av systemet (noen ganger veldig betydelig) og kommer i konflikt med andre sjåfører. Moral: utstyr skal fjernes fra systemet i henhold til alle regler! Imidlertid er ikke alle Unloaded-status et tegn på en unormal situasjon, og før du sletter en sjåfør med en slik status, må du finne ut hva slags rein dette er og hvor det kom fra i utgangspunktet.

Never Loaded-statusen indikerer at denne driveren ennå ikke er lastet inn, noe som betyr at den ikke har blitt sjekket, derfor må du vente før du starter ulike programmer som kan være forbundet med det. Noen drivere (spesielt feil avinstallert) lastes imidlertid ikke inn og blir derfor aldri sjekket.

Etter å ha jobbet med systemet i hard check-modus i noen tid (fra flere timer til flere dager), vil vi identifisere nesten alle de defekte driverne som vi tidligere led av og skrive ned navnene deres på et stykke papir.

Sett systemet tilbake til normal modus (det vil si uten ekstra kontroller, spiser opp produktiviteten), kan du bruke samme verifikatoren. Vi går tilbake til fanen Innstillinger, flytter alternativknappen til posisjonen Bekreft valgte sjåfører (ingen driver skal velges), klikker på "Tilbakestill alle", deretter på "Bruk" og start på nytt. Alle! Systemet går nå med normal hastighet, men uten kontroller.

Hva skal man gjøre med fuktig ved?

Men egentlig, hva kan du gjøre med en defekt driver? Hackere som vet hvordan de skal holde en debugger i hendene, hvis de har nok ledig tid, kan demontere den (heldigvis er drivere vanligvis små i størrelse), finne en feil og finne en måte å fikse den på, men.. dette er for tidkrevende.

Å kaste driveren (sammen med maskinvaren/programmet som bruker den) er heller ikke et alternativ. Selv om det er kjent at blå skjermer av død har skylden lydkort fremmed kinesisk produsent verdt $20, så har vi en veldig sterk motivasjon til å erstatte den med noe mer verdig. Men dette er strengt tatt allerede klart for alle og Ytterligere kommentarer trenger ikke.

Men ikke alle vet at et stort antall krasj og blå skjermer av død skyldes det faktum at en driver utviklet (og testet) i et enkeltprosessormiljø er installert på en toprosessormaskin. Med "dual-prosessor" her mener vi både en ekte plattform med to steiner og Hyper-Threading/multi-core prosessorer. Kjent (og bekreftet) stort beløp tester) det hjemmedatamaskin to prosessorer er helt ubrukelige, siden i de aller fleste applikasjoner er det praktisk talt ingen økning i ytelse.

Derfor, hvis systemet er ustabilt, og av en eller annen grunn er det umulig å kvitte seg med den defekte driveren, kan du prøve å komme deg inn i BIOS-oppsettet ved å gjøre din "virtuelle dual-prosessor" -maskin til en enkeltprosessor. . En lignende effekt kan oppnås ved å åpne filen boot.ini (på datamaskiner med Windows NT/2000/XP den ligger i rotkatalogen logisk stasjon, som systemet er installert på) og legger til /ONECPU-bryteren til den, og start deretter på nytt i håp om at feilene forsvinner.

Oppføring 1

Eksempel på en typisk boot.ini-fil


timeout=30

multi(0)disk(0)rdisk(0)partisjon(1)\WINNT="Windows 2000 Pro" /fastdetect /SOS

Oppføring 2

Vi konfigurerer systemet til å bruke kun én prosessor av alle tilgjengelige


timeout=30
default=multi(0)disk(0)rdisk(0)partisjon(1)\WINNT
multi(0)disk(0)rdisk(0)partisjon(1)\WINNT="Windows 2000 Pro" /fastdetect /SOS /ONECPU

Men på Windows Vista det er ingen boot.ini-fil, og selv om det er et (midlertidig) alternativ for å konfigurere den oppstartsinnstillinger ved bruk av spesiell nytte, planlegger Microsoft å forlate dette smutthullet fullstendig, slik at bare BIOS-oppsettet vil gjenstå. Imidlertid, som for Vista, så innen de bytter til det, vil driverutviklere sannsynligvis ha anskaffet multiprosessormaskiner (siden det rett og slett ikke vil være noen andre igjen for salg) og vil teste kreasjonene deres i et multiprosessormiljø.

Et annet subtilt poeng. Husk at vi sa ovenfor at den vanligste feilen som gjøres av driverutviklere, er å få tilgang til uttakbart minne på IRQL-nivået der personsøkingsbehandlingen ikke fungerer, og hvis den forespurte siden ikke er i minnet, oppstår en krasj? Den åpenbare løsningen her vil være å øke tilfeldig tilgang minne til volumet der praktisk talt ingen sider blir kastet ut til disken. Med dagens minnepriser har nesten alle råd til å kjøpe et par nye minnepinner. Men det finnes en mer tilgjengelig (og mer elegant) løsning på problemet. Hvis parameteren DisablePagingExecutive, som ligger i neste registergren HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\MemoryManagement, er lik én (null som standard), vil ikke kjernefysiske komponenter bli forhåndsaktivert. Derfor starter vi ganske enkelt "Registry Editor", endrer denne kjære parameteren og starter på nytt (endringene trer i kraft først etter en omstart), i håp om at dette vil bidra til å løse problemet med feil.