Bsod τι προγράμματα οδήγησης χρειάζονται για τον υπολογιστή. Χρήση του Driver Verifier για τον εντοπισμό του προβληματικού προγράμματος οδήγησης. Ανάγνωση ενός αρχείου ένδειξης σφαλμάτων

Υπάρχουν πολλοί λόγοι για το BSOD, αλλά σε αυτό το άρθρο θα εξετάσουμε ένα πρόβλημα που προκύπτει λόγω διένεξης εγκατεστημένων προγραμμάτων οδήγησης. Θα μπορούσε απλώς να είναι εγκατεστημένο πρόγραμμα οδήγησηςή κατεστραμμένο. Η επίλυση του προβλήματος BSOD μπορεί να είναι αρκετά απλή, εάν πρόκειται απλώς για πρόβλημα προγράμματος οδήγησης και γνωρίζετε ποιο είναι. Μπορείτε να επανεγκαταστήσετε το πρόγραμμα οδήγησης ή να το ενημερώσετε, να επιστρέψετε στο παλιά εκδοχήή να απαλλαγείτε από την εφαρμογή που εγκατέστησε το πρόγραμμα οδήγησης στον υπολογιστή σας αφαιρώντας το φυσικά. Το πρόβλημα είναι ότι δεν είναι πάντα δυνατό να ανακαλύψουμε ποιος οδηγός είναι ο «ένοχος», ακόμη και μετά τη μελέτη όλων των δεδομένων από μπλε οθόνη. Υπάρχει όμως διέξοδος. Εάν δεν έχετε πολλές γνώσεις και εμπειρία, αλλά χρειάζεται να ελέγξετε τα προγράμματα οδήγησης, μπορείτε να χρησιμοποιήσετε το ειδικό εργαλείο επαλήθευσης Verifier.exe που είναι ενσωματωμένο στο λειτουργικό σύστημα για τέτοιες περιπτώσεις. Η υπάρχουσα περιγραφή στη βάση γνώσεων της Microsoft παρουσιάζεται χρησιμοποιώντας περίπλοκους τεχνικούς όρους που δεν είναι πάντα γνωστοί ακόμη και σε έμπειρους χρήστες. Επομένως, αυτό το άρθρο παρουσιάζει μια σύντομη λίστα χειρισμών που είναι απαραίτητοι για την ολοκλήρωση της εργασίας. Εκτέλεση του προγράμματος οδήγησης επαλήθευσηςΑφού ανοίξετε το μενού "Έναρξη", εισαγάγετε το ερώτημα "Εκτέλεση" στο πεδίο αναζήτησης και κάντε κλικ στο αποτέλεσμα που εμφανίζεται στην κορυφή. Στο παράθυρο που εμφανίζεται, πρέπει να εισάγετε την εντολή " επιβεβαιωτής” (χωρίς εισαγωγικά) και επιβεβαιώστε κάνοντας κλικ στο “Ok”.
Εμφανίζεται το παράθυρο διαλόγου Διαχείριση επαλήθευσης αρχείων. Στο πρώτο παράθυρο διαλόγου, πρέπει να επιλέξετε το στοιχείο "Δημιουργία μη τυπικών παραμέτρων (για τον κωδικό προγράμματος)". Κάντε κλικ στο «Επόμενο».
Το επόμενο βήμα είναι να επιλέξετε μεμονωμένες παραμέτρους για να ελέγξετε το πρόγραμμα οδήγησης. Για να γίνει αυτό, θα πραγματοποιήσουμε τους ακόλουθους χειρισμούς: «Επιλέξτε μεμονωμένες παραμέτρους από πλήρης λίστα" - "Περαιτέρω".
Αφού ολοκληρώσετε τα βήματα, θα πρέπει να λάβετε ένα παράθυρο διαλόγου με μια λίστα παραμέτρων δοκιμής. Επιλέξτε όλα τα πλαίσια εκτός από το στοιχείο "Προομοίωση έλλειψης πόρων". Κάντε κλικ στο Επόμενο.
Το τελευταίο βήμα σε αυτό το μέρος είναι να δώσετε στον διεκπεραιωτή μια εντολή αυτόματη επιλογήανυπόγραφα προγράμματα οδήγησης. Επιλέξτε "Αυτόματη επιλογή μη υπογεγραμμένων προγραμμάτων οδήγησης". Κάντε κλικ στο Επόμενο.
Συμβαίνει ότι ο διαχειριστής δεν εντόπισε προγράμματα οδήγησης χωρίς υπογραφή. Στη συνέχεια, χρησιμοποιήστε τη δυνατότητα επιλεκτικού ελέγχου προγράμματος οδήγησης, η οποία θα συζητηθεί αργότερα. Εργασία με ανυπόγραφα προγράμματα οδήγησηςΕάν εντοπιστούν μη υπογεγραμμένα προγράμματα οδήγησης, ο διαχειριστής θα τα εμφανίσει με τη μορφή λίστας.
Αυτά μπορεί να είναι προγράμματα οδήγησης συσκευών ή προγράμματα οδήγησης εφαρμογών. Μόλις εντοπιστούν μη υπογεγραμμένα προγράμματα οδήγησης, δεν χρειάζεται να κλείσετε τον διαχειριστή και να κάνετε κλικ στο κουμπί "Τέλος". Αρχικά, ας ελέγξουμε για ενημερωμένα προγράμματα οδήγησης. Αναζήτηση για ενημερωμένα προγράμματα οδήγησηςΓια έλεγχο, πρέπει να εκτελέσετε τα ακόλουθα βήματα: 1. Το πρόγραμμα οδήγησης της εφαρμογής βρίσκεται στη λίστα. Σε αυτήν την περίπτωση, πρέπει να επισκεφτείτε τον ιστότοπο του κατασκευαστή της εφαρμογής για να ελέγξετε για ενημερωμένα προγράμματα οδήγησης. Σε περίπτωση αναβαθμισμένη έκδοσηλείπει το πρόγραμμα οδήγησης, δοκιμάστε να απεγκαταστήσετε την εφαρμογή. Μην φοβάστε, μπορείτε πάντα να το εγκαταστήσετε ξανά αργότερα. Αλλά αυτός θα είναι ένας εξαιρετικός έλεγχος: εάν δεν εμφανίζονται πλέον κρίσιμα σφάλματα, ο λόγος ήταν αυτή η αίτηση. 2. Η λίστα περιέχει ένα πρόγραμμα οδήγησης συσκευής. Σε αυτή την περίπτωση (αν έχετε Windows Vista), εκκινήστε το κέντρο ενημέρωσης και ενεργοποιήστε την αναζήτηση για μια νέα λειτουργία προγράμματος οδήγησης. Εάν βρεθεί νέο πρόγραμμα οδήγησης, εκτελέστε την εγκατάστασή του. 3. Εάν το κέντρο ενημέρωσης δεν βρήκε νέο πρόγραμμα οδήγησης, ανατρέξτε στον ιστότοπο του κατασκευαστή· είναι πιθανό να υπάρχει το νέο πρόγραμμα οδήγησης. Μετά την ενημέρωση του προγράμματος οδήγησης ή της εφαρμογής, κλείστε τη διαχείριση σάρωσης (κουμπί Ακύρωση), επανεκκινήστε και περιμένετε να φορτώσει το λειτουργικό σύστημα. Εάν τα κρίσιμα σφάλματα έχουν σταματήσει, η ενημέρωση προγραμμάτων οδήγησης ή εφαρμογών τα έχει εξαλείψει. Αφαίρεση προγραμμάτων οδήγησηςΕάν δεν μπορούν να βρεθούν νέα προγράμματα οδήγησης, μπορείτε να προσπαθήσετε να αφαιρέσετε το πρόγραμμα οδήγησης. ΠΡΟΣΟΧΗ! Εάν αφαιρέσετε το πρόγραμμα οδήγησης, η συσκευή θα σταματήσει να λειτουργεί. Μετά την επανεκκίνηση, το λειτουργικό σύστημα θα προσπαθήσει να εγκαταστήσει το πρόγραμμα οδήγησης από τον αποθηκευτικό χώρο, αλλά δεν είναι γεγονός ότι το τυπικό πρόγραμμα οδήγησης θα το κάνει. Εάν δεν είστε σίγουροι για την ανάγκη κατάργησης οποιουδήποτε προγράμματος οδήγησης, δεν πρέπει να το αφαιρέσετε. Εκκινήστε τη Διαχείριση Συσκευών κάνοντας τα εξής: Έναρξη – Εκτέλεση – devmgmt.msc- Εισαγω. Έχοντας βρει απαιτούμενη συσκευή, κάντε δεξί κλικ πάνω του και κάντε κλικ στο Properties – Driver – Uninstall. Έλεγχος για μη υπογεγραμμένα προγράμματα οδήγησηςΠΡΟΣΟΧΗ! Μετά τον έλεγχο για μη υπογεγραμμένα προγράμματα οδήγησης, μπορεί να συμβεί το σύστημα να μην εκκινήσει. Παρακάτω είναι μια περιγραφή των ενεργειών που έγιναν σε αυτήν την κατάσταση. Εάν δεν είστε βέβαιοι ότι θέλετε να καταργήσετε το πρόγραμμα οδήγησης και να συνεχίσετε με τη σάρωση, κάντε κλικ στο κουμπί Τέλος στη διαχείριση σάρωσης. Όταν σας ζητηθεί να επιλέξετε έναν φυσικό δίσκο, επιλέξτε αυτόν στον οποίο είναι εγκατεστημένο το λειτουργικό σύστημα και, στη συνέχεια, κάντε ξανά κλικ στο Finish. Θα δείτε ένα μήνυμα με το κείμενο: «Πρέπει να κάνετε επανεκκίνηση του υπολογιστή σας για να τεθούν σε ισχύ οι αλλαγές». Κλείστε αθόρυβα όλες τις εφαρμογές και επανεκκινήστε. Εάν το σύστημα δεν εκκινήσει και εμφανιστεί μπλε οθόνη με περιγραφή του σφάλματος, σημαίνει το πρόγραμμα οδήγησης ενοχλητικόςβρέθηκαν. Αφού επανεκκινήσετε ξανά τον υπολογιστή σας, πριν φορτώσετε το λειτουργικό σύστημα, κάντε κλικ F8 verifier.exe/resetverifier.exe
Προσαρμοσμένος έλεγχος προγράμματος οδήγησηςΕπανεκκινήστε το Driver Verifier Manager και εκτελέστε τα προηγούμενα βήματα μέχρι το σημείο που φαίνεται παρακάτω.
Επιλέξτε "Επιλογή ονόματος προγράμματος οδήγησης από τη λίστα". Το επόμενο βήμα θα είναι το παράθυρο για την επιλογή προγραμμάτων οδήγησης προς έλεγχο. Δεν πρέπει να επιλέξετε όλα τα προγράμματα οδήγησης ταυτόχρονα, επειδή το λειτουργικό σύστημα θα κρατήσει έναν αρκετά μεγάλο αριθμό πόρων για σάρωση και θα αφιερώσει πολύ χρόνο σε αυτό. Είναι καλύτερο να επαναλάβετε τη διαδικασία επαλήθευσης πολλές φορές, αλλά με μικρό αριθμό προγραμμάτων οδήγησης. Αυτό θα σας εξοικονομήσει χρόνο και πόρους. Πρώτα απ 'όλα, ας ελέγξουμε προγράμματα οδήγησης που έχουν ενημερωθεί πρόσφατα ή απλά προβληματικά προγράμματα οδήγησης (πρόγραμμα οδήγησης πρόγραμμα προστασίας από ιούς, τείχος προστασίας, εικονικό δίσκοή αυτοκίνητα). Ας το επόμενο βήμα είναι ο έλεγχος προγραμμάτων οδήγησης που δεν παράγονται από τη Microsoft. Ελέγξτε τα υπόλοιπα προγράμματα οδήγησης 10-15 κάθε φορά.
Επιλέγω απαραίτητα προγράμματα οδήγησηςκαι κάντε κλικ στο κουμπί "Τέλος". Όταν σας ζητηθεί να επιλέξετε έναν φυσικό δίσκο, επιλέξτε αυτόν στον οποίο είναι εγκατεστημένο το λειτουργικό σύστημα και, στη συνέχεια, κάντε ξανά κλικ στο Finish. Εμφανίζεται ένα μήνυμα που σας ζητά να κάνετε επανεκκίνηση. Κάντε επανεκκίνηση του υπολογιστή σας. Εάν μετά την επανεκκίνηση εμφανιστεί μια μπλε οθόνη με μήνυμα σφάλματος, σημαίνει ότι βρέθηκε το πρόγραμμα οδήγησης που προκαλεί το πρόβλημα. Αφού επανεκκινήσετε ξανά τον υπολογιστή σας, πριν φορτώσετε το λειτουργικό σύστημα, κάντε κλικ F8και επιλέξτε "Εκτέλεση μέσα λειτουργία ασφαλείας" Μόλις συνδεθείτε, κάντε κλικ στο κουμπί Έναρξη και πληκτρολογήστε Εκτέλεση/Αναζήτηση verifier.exe/reset. Εάν δεν προέκυψαν προβλήματα και το σύστημα ξεκίνησε σε τυπική λειτουργία, τότε τα μη υπογεγραμμένα προγράμματα οδήγησης δεν δημιουργούν προβλήματα και πρέπει να ελέγξετε άλλα προγράμματα οδήγησης. Εκτελέστε ξανά το Driver Verifier Manager ( verifier.exe) και επιλέξτε «Εμφάνιση πληροφοριών σχετικά με τα τρέχοντα επαληθευμένα προγράμματα οδήγησης».
Επαναλάβετε τη σάρωση για όλα τα υπόλοιπα προγράμματα οδήγησης. Ολοκλήρωση επαλήθευσης προγράμματος οδήγησηςΕάν ο έλεγχος όλων των προγραμμάτων οδήγησης δεν αποκαλύψει τις αιτίες των κρίσιμων σφαλμάτων, πιθανότατα το πρόβλημα δεν είναι στα προγράμματα οδήγησης. Το πρόβλημα μπορεί να μην είναι το λογισμικό, αλλά το υλικό του υπολογιστή σας. Πιθανότατα, πρόκειται για προβλήματα με τον σκληρό δίσκο ή τη μνήμη RAM. Μπορεί επίσης το τροφοδοτικό να μην έχει αρκετή ισχύ για να διασφαλίσει τη λειτουργία όλων των συσκευών ή κάποιο άλλο πρόβλημα στο υλικό που δεν μπορεί να προσδιοριστεί ελέγχοντας τα προγράμματα οδήγησης. Διάγνωση RAM και HDD.

Ένα ελαττωματικό πρόγραμμα οδήγησης μπορεί να προκαλέσει πολλά προβλήματα στον υπολογιστή σας. Το κύριο σημάδι ότι ο υπολογιστής σας έχει ελαττωματικό πρόγραμμα οδήγησης είναι μια μπλε οθόνη θανάτου, η οποία συχνά προκαλείται από την απενεργοποίηση του προγράμματος οδήγησης.

Σε αυτό το άρθρο θα σας πούμε πώς μπορείτε να βρείτε ένα ελαττωματικό πρόγραμμα οδήγησης και στη συνέχεια να το ενημερώσετε ή να το αφαιρέσετε εντελώς.

Μερικές φορές τα Windows ειδοποιούν τον χρήστη ότι ένα από τα προγράμματα οδήγησης απέτυχε. Ωστόσο, συμβαίνει το σύστημα να μην μπορεί να εντοπίσει ποιο είναι το πρόβλημα, επομένως δεν εμφανίζει μηνύματα σφάλματος, γι' αυτό και λειτουργεί πιο αργά ή όχι όπως απαιτείται. Σε αυτήν την περίπτωση Διαχειριστής επαλήθευσης προγραμμάτων οδήγησης(Driver Verifier) ​​δημιουργεί πρόσθετο φορτίο στα προγράμματα οδήγησης συστήματος, προσπαθώντας έτσι να προκαλέσει σύγκρουση. Εάν ένα από τα προγράμματα οδήγησης αποτύχει, τότε Διαχειριστής επαλήθευσης προγραμμάτων οδήγησηςθα αναφέρει το πρόβλημα χρησιμοποιώντας μια μπλε οθόνη.

Προειδοποίηση

Πριν τη χρήση Διαχειριστής επαλήθευσης προγραμμάτων οδήγησηςΛάβετε υπόψη ότι το εργαλείο μπορεί να σας περιορίσει από τη χρήση του υπολογιστή σας. Επειδή η Διαχειριστής επαλήθευσης προγραμμάτων οδήγησηςενεργοποιεί μια μπλε οθόνη θανάτου όταν εντοπίζει ένα ελαττωματικό πρόγραμμα οδήγησης, αυτό μπορεί να προκαλέσει μεγάλα προβλήματα κατά την εκκίνηση των Windows.

Εάν δεν έχετε τρόπο να μπείτε στα Windows για να απενεργοποιήσετε τη δοκιμή προγραμμάτων οδήγησης, ο υπολογιστής θα εκτελείται σε έναν βρόχο "boot -> load -> crash" από τον οποίο είναι αρκετά δύσκολο να βγείτε. Η δυνατότητα αυτόματης επιδιόρθωσης είναι μία από τις λίγες επιλογές για να αποκτήσετε πρόσβαση στα Windows, αλλά είναι καλύτερα να αποφύγετε αυτήν την κατάσταση.

Πριν χρησιμοποιήσετε το Driver Verifier, βεβαιωθείτε ότι έχετε τουλάχιστον μία από τις ακόλουθες εξόδους κινδύνου:

  • Μπορείτε να μεταβείτε σε ασφαλή λειτουργία. Μπείτε σε ασφαλή λειτουργία πριν ξεκινήσετε Εκκίνηση των Windowsσυνήθως γίνεται πατώντας το F8 επανειλημμένα κατά την εκκίνηση του υπολογιστή. Ωστόσο, οι νέοι υπολογιστές εκκινούν τόσο γρήγορα που απλά δεν θα έχετε χρόνο να πατήσετε το F8 την κατάλληλη στιγμή.
  • Έχετε δημιουργήσει ένα σημείο επαναφοράς συστήματος πριν από τη χρήση; Διαχειριστής επαλήθευσης προγραμμάτων οδήγησης. Συνιστάται επίσης να υπάρχει εγκατάσταση δίσκος των Windowsώστε να μπορείτε να επαναφέρετε τον υπολογιστή σας στις εργοστασιακές ρυθμίσεις.

Πώς να εκτελέσετε το Driver Verifier Manager

Πριν ξεκινήσετε οδηγίες χρήσης Διαχειριστής επαλήθευσης προγραμμάτων οδήγησης, βεβαιωθείτε ότι έχετε διαβάσει την ενότητα "Προειδοποίηση" παραπάνω. Λέει πώς να αποφύγετε την ατελείωτη φόρτωση των Windows.

Όταν είστε εκατό τοις εκατό σίγουροι ότι έχετε σχέδιο εξόδου έκτακτης ανάγκης, κάντε κλικ στο " Windows Key + R"και μπείτε cmdστο πλαίσιο διαλόγου Εκτέλεση", μετά κάντε κλικ στο " Εντάξει».

Στο παράθυρο εντολών, πληκτρολογήστε:

επιβεβαιωτής

Στο αναδυόμενο παράθυρο, επιλέξτε " Δημιουργία μη τυπικών παραμέτρων (για τον κωδικό προγράμματος)", μετά κάντε κλικ στο " Περαιτέρω».

Θα δείτε μια λίστα με όλες τις δοκιμές που μπορείτε να εκτελέσετε για να ελέγξετε τους οδηγούς σας. Επιλέξτε όλες τις δοκιμές από τη λίστα, εκτός"Προομοίωση τυχαίας έλλειψης πόρων" και "Πρόσθετος έλεγχος συμμόρφωσης DDI" και, στη συνέχεια, κάντε κλικ στο " Περαιτέρω».

Στην επόμενη οθόνη, επιλέξτε " Επιλέγωονόματα οδηγών από τη λίστα"και πατήστε" Περαιτέρω».

Εδώ μπορείτε να επιλέξετε τα προγράμματα οδήγησης που θέλετε να δοκιμάσετε. Εάν δεν γνωρίζετε ποιο πρόγραμμα οδήγησης είναι ελαττωματικό, επιλέξτε όλα εκτός από τη Microsoft γιατί τις περισσότερες φορές λειτουργούν χωρίς σφάλματα.

Όταν πατάτε " Ετοιμος", τα Windows θα σας ζητήσουν να επανεκκινήσετε τον υπολογιστή σας. Αφού ενεργοποιηθεί ο υπολογιστής σας, συνεχίστε να τον χρησιμοποιείτε ως συνήθως. Εάν εμφανιστεί μπλε οθόνη, δώστε προσοχή στο μήνυμα σφάλματος και επανεκκινήστε τον υπολογιστή σας.

Αφού εντοπίσετε το ελαττωματικό πρόγραμμα οδήγησης, μπορείτε να το απενεργοποιήσετε Διαχειριστής επαλήθευσης προγραμμάτων οδήγησηςένας από τους δύο τρόπους. Μπορείτε να ανοίξετε ξανά τη γραμμή εντολών, εισαγάγετε την εντολή επιβεβαιωτήςκαι επιλέξτε " Καταργήστε τις υπάρχουσες ρυθμίσεις».

Μπορείτε επίσης να ανοίξετε μια γραμμή εντολών και να πληκτρολογήσετε:

Επαληθευτής /bootmode resetonbootfail

Αφού απενεργοποιήσετε το Driver Verifier Manager, επανεκκινήστε τον υπολογιστή σας. Εάν ο υπολογιστής δεν ανάβει, χρησιμοποιήστε μία από τις εξόδους κινδύνου που συζητήσαμε στην ενότητα "Προειδοποίηση".

συμπέρασμα

Εάν νομίζετε ότι ένας από τους οδηγούς είναι ελαττωματικός, αλλά δεν μπορείτε να καταλάβετε ποιος, τότε Διαχειριστής επαλήθευσης προγραμμάτων οδήγησηςθα είναι ένας μεγάλος βοηθός.

Ωστόσο, θα πρέπει να είστε προετοιμασμένοι για την πιθανότητα ο υπολογιστής να μην μπορεί να ενεργοποιηθεί μετά τη δοκιμή των προγραμμάτων οδήγησης, γι' αυτό σκεφτείτε μια εφεδρική έξοδο με κατάσταση έκτακτης ανάγκης, για παράδειγμα, μεταβείτε σε ασφαλή λειτουργία ή εκτελέστε ένα σημείο επαναφοράς των Windows.

Είχατε ποτέ προβλήματα με τα προγράμματα οδήγησης στον υπολογιστή σας; Πώς καταφέρατε να βρείτε τον ελαττωματικό οδηγό; Πείτε μας στα σχόλια παρακάτω!

Το βοηθητικό πρόγραμμα Driver Verifier (verifier.exe) έχει σχεδιαστεί για να αναλύει προβληματικά προγράμματα οδήγησης όταν η ανάλυση της μνήμης μετά από ένα BSOD δεν επιτρέπει την εύρεση του προβληματικού προγράμματος οδήγησης. Το Driver Verifier είναι «σωτήριο» στις πιο προβληματικές καταστάσεις.

Με το Driver Verifier μπορείτε:

    τεστ ακραίων καταστάσεων οδηγού (προσομοιώνονται οι συνθήκες έλλειψης πόρων).

    Έλεγχος υπερχείλισης buffer?

    έλεγχος σφαλμάτων που προκύπτουν λόγω λανθασμένης λειτουργίας σε ένα δεδομένο IRQL.

    Ανάλυση σφαλμάτων I/O.

    ανίχνευση καταστάσεων αδιεξόδου κ.λπ.

Το βοηθητικό πρόγραμμα Driver Verifier είναι πολύ χρήσιμο όταν:

    ο διαχειριστής (χρήστης) έχει υποψίες ότι ο συγκεκριμένος οδηγός προκαλεί τη συντριβή του συστήματος και θέλει να ελέγξει περαιτέρω εάν αυτό συμβαίνει στην πραγματικότητα.

    Οι προγραμματιστές προγραμμάτων οδήγησης θέλουν να δοκιμάσουν τον οδηγό τους.

    Όταν αναλύετε μια χωματερή μετά από ένα BSOD, είναι αδύνατο να βρείτε το προβληματικό πρόγραμμα οδήγησης.

Μία από τις πιο δύσκολες περιπτώσεις ανάλυσης των απορριμμάτων μνήμης είναι όταν ένα πρόγραμμα οδήγησης αντικαθιστά κατά λάθος δεδομένα πριν ή μετά το τέλος του buffer που έχει εκχωρήσει. Σε τέτοιες περιπτώσεις, συμβαίνουν σφάλματα στον πυρήνα του λειτουργικού συστήματος (για παράδειγμα, η ανάλυση μιας ένδειξης ένδειξης μετά από ένα BSOD δείχνει ότι το σφάλμα παρουσιάστηκε στο ntoskrnl.exe).

Ας δούμε παρόμοια περίπτωσησε συγκεκριμένο παράδειγμα. Χρησιμοποιώντας το βοηθητικό πρόγραμμα NotMyfault, προκαλούμε BSOD - «Υπερχείλιση buffer».

Το αποτέλεσμα της ανάλυσης dump με χρήση windbg επισυνάπτεται παρακάτω.

Σύμφωνα με την ανάλυση dump παίρνουμε:

1. Arg1: 00000007, Προσπάθεια για δωρεάν πισίνα που είχε ήδη ελευθερωθεί (έγινε προσπάθεια να απελευθερωθεί μια ήδη ελευθερωμένη πισίνα)

2. IMAGE_NAME: ntkrpamp.exe (ο πυρήνας του ίδιου του συστήματος έχει κάποια σχέση με αυτό)

Είναι με τέτοια σφάλματα που ο επαληθευτής έρχεται στη διάσωση.

Εκκίνηση του επαληθευτή.

Επιλέξτε «Δημιουργία μη τυπικών παραμέτρων». Στη συνέχεια, επιλέξτε "Επιλογή παραμέτρων από τη λίστα".

Επιλέξτε τα πάντα εκτός από την "Προομοίωση έλλειψης πόρων".

Στη συνέχεια, επιλέξτε "Επιλογή μη φορτωμένων προγραμμάτων οδήγησης για αυτήν τη λίστα" και καθορίστε τη διαδρομή προς το πρόγραμμα οδήγησης myfault.sys, το οποίο βρίσκεται στον ίδιο κατάλογο με το πρόγραμμα NotMyfault.exe.

Στη συνέχεια, σημειώστε το πρόγραμμα οδήγησης και κάντε κλικ στο «Τέλος». Μετά από αυτό, πρέπει να κάνουμε επανεκκίνηση του υπολογιστή.

Εκτελούμε όλες τις ίδιες ενέργειες όπως στην αρχή. Εκτελέστε το NotMyfault.exe, επιλέξτε "Υπερχείλιση buffer" και κάντε κλικ στο "Crash". Όπως παρατηρήσατε, μια συντριβή μπορεί να μην συμβεί αμέσως, αφού ποιος και πότε θα προσπαθήσει να εργαστεί με αυτήν τη μνήμη είναι άγνωστο εκ των προτέρων. Όπως μπορείτε να δείτε στην παρακάτω εικόνα, χάρη στον επαληθευτή, το σύστημα μπορεί να αναγνωρίσει το προβληματικό πρόγραμμα οδήγησης.

Θα δώσω μια ανάλυση χρησιμοποιώντας!analyze –v στο windbg.exe μιας ένδειξης μνήμης μετά από ένα BSOD.

Το πρόγραμμα επαληθευτή το κάνει έτσι ώστε το πρόγραμμα οδήγησης που ελέγχεται, αντί για τη συνηθισμένη μνήμη που είναι διαθέσιμη στον πυρήνα, να χρησιμοποιεί μια ειδική ομάδα που έχει σχεδιαστεί για να ανιχνεύει ένα τέτοιο σφάλμα. Χάρη σε αυτό, μπορείτε να βρείτε το πρόγραμμα οδήγησης που προκαλεί το BSOD.

Αν δούμε τα αποτελέσματα της ανάλυσης, βλέπουμε τα εξής.

1. DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION (δ6) – αυτό είναι ένα από τα σφάλματα που δημιουργούνται από τον επαληθευτή

2. IMAGE_NAME: myfault.sys – πρόγραμμα οδήγησης που προκάλεσε το πρόβλημα.

Επομένως, εάν η ανάλυση μιας απόθεσης μνήμης μετά από ένα BSOD δεν σας επιτρέπει να βρείτε το "ένοχο πρόγραμμα οδήγησης", χρησιμοποιήστε το πρόγραμμα verifier.exe (εγκαταστήστε όλους τους ελέγχους, εκτός από την έλλειψη μνήμης).

Ο απλούστερος τρόπος για να χρησιμοποιήσετε το Driver Verifier (verifier.exe) είναι να το εκτελέσετε με τις ακόλουθες παραμέτρους:

όνομα αρχείου προγράμματος οδήγησης επαληθευτή /standard /driver

Χρησιμότητα Οδηγός Επιβεβαιωτήςπεριλαμβάνονται σε όλα εκδόσεις Windows, ξεκινώντας με τα Windows XP και σας επιτρέπει να ελέγχετε τα προγράμματα οδήγησης, να εντοπίζετε προβληματικά προγράμματα οδήγησης που προκαλούν μπλε οθόνη του θανάτου (BSOD- Blue Screen of Death) και ηχογράφηση λεπτομερείς πληροφορίεςσχετικά με το προβληματικό πρόγραμμα οδήγησης σε μια ένδειξη μνήμης για περαιτέρω ανάλυση. Το βοηθητικό πρόγραμμα υποβάλλει τα ελεγμένα προγράμματα οδήγησης σε διάφορα " τεστ αντοχής", προσομοιώνοντας διάφορες ακραίες συνθήκες: έλλειψη μνήμης, έλεγχος I/O, IRQL, αδιέξοδα, έλεγχοι DMA, IRP, κ.λπ. Δηλ. Οι καταστάσεις που εμφανίζονται σπάνια σε παραγωγικά συστήματα προσομοιώνονται και παρακολουθείται η συμπεριφορά του οδηγού σε αυτά. Ο σκοπός του βοηθητικού προγράμματος είναι να εντοπίσει καταστάσεις στις οποίες ένα πρόγραμμα οδήγησης μπορεί να οδηγήσει σε κατάρρευση συστήματος με το BSOD.

Καλείται το εκτελέσιμο αρχείο του βοηθητικού προγράμματος Driver Verifier Επιβεβαιωτής.exeκαι βρίσκεται στον κατάλογο %windir%\system32. Υπάρχουν δύο επιλογές για τη χρήση του βοηθητικού προγράμματος: από τη γραμμή εντολών ή χρήση GUI.

Για να ενεργοποιήσετε τη λειτουργία επαλήθευσης προγράμματος οδήγησης στα Windows 8, ξεκινήστε το βοηθητικό πρόγραμμα Driver Verifier πληκτρολογώντας

Επιβεβαιωτής

Από τη λίστα εργασιών, επιλέξτε Δημιουργία προσαρμοσμένων ρυθμίσεων (για προγραμματιστές κώδικα)και πατήστε Επόμενο.

Βεβαιωθείτε ότι έχετε επιλέξει τις επιλογές Τυπικές ρυθμίσεις, Επιβολή αιτημάτων εισόδου/εξόδου σε εκκρεμότηταΚαι Καταγραφή IRP. Κάντε κλικ Επόμενο.

Επόμενη επιλογή.

Ταξινομήστε τα περιεχόμενα του πίνακα κάνοντας κλικ στην κεφαλίδα της στήλης "Παροχέας" και επιλέξτε αυτά που θέλετε να δοκιμάσετε από τη λίστα προγραμμάτων οδήγησης. Στο παράδειγμά μας, θα εκτελέσουμε έναν έλεγχο για όλα τα προγράμματα οδήγησης που δεν έχουν αναπτυχθεί από MicrosoftΕταιρεία. Επιλέξαμε τα προγράμματα οδήγησης: e1g6032e.sys (Intel) και lsi_sas.sys (LSI).

Σημείωση. Διαθεσιμότητα προγράμματος οδήγησης ψηφιακή υπογραφήΗ Microsoft υποδεικνύει ότι το πρόγραμμα οδήγησης έχει ελεγχθεί με συγκεκριμένο τρόπο για σταθερότητα και ότι ο κώδικάς του δεν έχει τροποποιηθεί από τότε. Γι' αυτό δεν συνιστάται ούτε χρησιμοποιείται.

Το μόνο που έχετε να κάνετε είναι να κάνετε κλικ Φινίρισμακαι θα εμφανιστεί ένα παράθυρο πληροφοριών που δηλώνει ότι πρέπει να επανεκκινήσετε το σύστημα για να τεθούν σε ισχύ οι αλλαγές.

Συμβουλή. Η λειτουργία επαλήθευσης προγράμματος οδήγησης μπορεί επίσης να ενεργοποιηθεί από γραμμή εντολών. Για παράδειγμα, για να εκτελέσετε το Driver Verifier με τυπικές ρυθμίσειςγια το πρόγραμμα οδήγησης myPCDriver.sys, η εντολή θα μοιάζει με αυτό: verfier /standard /driver myPCDriver.sys

Μετά την επανεκκίνηση, το σύστημα εκκινεί σε λειτουργία επαλήθευσης προγράμματος οδήγησης. Το Driver Verifier λειτουργεί Ιστορικό, εκτελώντας διάφορους τύπους δοκιμών επιλεγμένων προγραμμάτων οδήγησης για τον εντοπισμό σφαλμάτων. Χρησιμοποιήστε τον υπολογιστή σας ως συνήθως και περιμένετε να εμφανιστεί το BSOD. Εάν γνωρίζετε ποιες ενέργειες προκάλεσαν στο παρελθόν τη διακοπή λειτουργίας του συστήματος, επαναλάβετε τις. Εάν προκύψει BSOD, πρέπει να αντιγράψετε το αρχείο ένδειξης σφαλμάτων μνήμης (από προεπιλογή, αποθηκεύεται στον κατάλογο C:\Windows\Minidump\*.dmp) και να το αναλύσετε χρησιμοποιώντας Windbg ή ένα αντίστοιχο.

Σπουδαίος!Μετά την ενεργοποίηση της λειτουργίας εντοπισμού σφαλμάτων προγραμμάτων οδήγησης χρησιμοποιώντας το Driver Verifier, αυτή η λειτουργία θα λειτουργεί μέχρι να απενεργοποιηθεί αναγκαστικά.

Εάν το πρόβλημα δεν επανεμφανιστεί εντός 1-2 ημερών, τότε με έναν ορισμένο βαθμό βεβαιότητας μπορούμε να συμπεράνουμε ότι τα προγράμματα οδήγησης που ελέγχονται δεν είναι η αιτία της συντριβής του συστήματος και ότι η λειτουργία σάρωσης για αυτά μπορεί να απενεργοποιηθεί.

Συμβουλή. Χρήση του Validator Windows προγράμματα οδήγησηςεπιβραδύνει σημαντικά τα Windows, επομένως δεν συνιστάται να εργάζεστε συνεχώς σε αυτήν τη λειτουργία.

Μπορείτε να απενεργοποιήσετε το Driver Verifier από τη γραμμή εντολών:

Επαληθευτής /επαναφορά

Ή από τη γραφική διεπαφή επιλέγοντας Διαγράψτε τις υπάρχουσες ρυθμίσεις.

Εάν δεν μπορείτε να συνδεθείτε στο σύστημα σε κανονική λειτουργία, μπορείτε να απενεργοποιήσετε τη λειτουργία εντοπισμού σφαλμάτων από την ασφαλή λειτουργία.

Εάν το σύστημα δεν εκκινεί σε ασφαλή λειτουργία, δοκιμάστε να διαγράψετε τα ακόλουθα κλειδιά μητρώου εκκινώντας από έναν δίσκο εκκίνησης:

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

Μπορείτε να ελέγξετε την τρέχουσα κατάσταση του βοηθητικού προγράμματος Driver Verifier ως εξής.

Σας προειδοποιούμε ότι τυχόν πειράματα με οδηγούς είναι επικίνδυνα και μπορεί να βλάψουν το σύστημα. Είναι καλύτερα να δημιουργήσετε ένα αντίγραφο ασφαλείας του συστήματος εκ των προτέρων και στη συνέχεια να μην σταυρώσετε τα δάχτυλά σας αφαιρώντας ένα άλλο ύποπτο πρόγραμμα οδήγησης από τα Windows.

Και μόλις δεν μαλώσουν Windowsαπό Microsoft, αποκαλώντας τον καημένο ταυτόχρονα αργό, ατημέλητο και ακόμη και ασταθές. Κανείς όμως δεν βιάζεται να το παρατήσει και γενικά είναι απίθανο να το παρατήσει ποτέ. Επομένως, αντί να επιπλήττετε τους φτωχούς προγραμματιστές και να ξεκινήσετε άσκοπες φλόγες, θα ήταν καλό να καταλάβετε γιατί, στην πραγματικότητα, το σύστημα είναι buggy; Θα σου πω ένα μικρό μυστικό. Στις περιβόητες οθόνες του θανάτου και της ασταθούς δουλειάς WindowsΣτη συντριπτική πλειονότητα των περιπτώσεων, φταίνε τα προγράμματα οδήγησης τρίτων και το ίδιο το λειτουργικό σύστημα δεν έχει καμία απολύτως σχέση με αυτό. Τώρα θα σας πούμε πώς να εντοπίσετε τέτοια προγράμματα οδήγησης και να τα αφαιρέσετε από το σύστημα.

Τα ελαττώματα σχεδιασμού του προγράμματος οδήγησης μπορεί να κυμαίνονται από ατυχήματα έως τη μπλε οθόνη του θανάτου ( BSOD– Blue Screen of Death) και στην επιβράδυνση του υπολογιστή και στην περίεργη συμπεριφορά ορισμένων εφαρμογών εφαρμογών που είναι εντελώς άσχετες με το πρόγραμμα οδήγησης.

Το Blue Screen of Death είναι αξιοσημείωτο (χωρίς καμία ειρωνεία!) στο ότι σηματοδοτεί ξεκάθαρα την ύπαρξη σοβαρού προβλήματος και δίνει μια συμβουλή για το πού να σκάψετε. Συχνά (αλλά όχι πάντα) το όνομα του «παραβάτη» οδηγού εμφανίζεται απευθείας στην επάνω δεξιά γωνία της μπλε οθόνης του θανάτου. Ωστόσο, μπορεί να μην υπάρχει ή, ακόμη χειρότερα, να υπάρχει το όνομα ενός εντελώς άσχετου οδηγού.

Για παράδειγμα, ένα αρκετά κοινό πρόγραμμα οδήγησης κάρτας γραφικών Matrox G450τείνει να καταστρέψει βασικές δομέςυποσύστημα γραφικών Windows 2000 , με αποτέλεσμα το BSOD να εμφανίζει το όνομα του προγράμματος οδήγησης συστήματος win32k.sys, το οποίο υλοποιεί σημαντικό μέρος των λειτουργιών ΧΡΗΣΤΗ και GDI και το οποίο, όπως είναι φυσικό, δεν έχει καμία σχέση με αυτό. Έτσι, η ερμηνεία της μπλε οθόνης των αναγνώσεων θανάτου είναι μαγεία, διαίσθηση, επιστήμη και τέχνη - λίγο από όλα.

Εκτός από τα ελαττώματα του προγράμματος οδήγησης, οι μπλε οθόνες θανάτου μπορεί επίσης να προκληθούν από βλάβες υλικού, για παράδειγμα, υπερχρονισμένος επεξεργαστής, ελαττωματική μνήμη RAM ή στραβός ελεγκτής. σκληρός δίσκος, μια κάρτα PCI που δεν έχει εισαχθεί πλήρως στην υποδοχή, μια χαλαρή επαφή σε έναν από τους συνδέσμους, μια κακή παροχή ρεύματος, ένας διογκωμένος ηλεκτρολυτικός πυκνωτής μητρική πλακέτα. Και τα τελευταία βουρκώνουν για διάφορους λόγους: λόγω υπερθέρμανσης από έναν κοντινό επεξεργαστή, έλλειψη κεραμικών πυκνωτών "δεν αναφέρεται" από τον κατασκευαστή (με αποτέλεσμα το εξάρτημα RF να περνάει από τον ηλεκτρολύτη και να τον θερμαίνει πολύ) και τέλος , λόγω διαρροής βασικών τρανζίστορ στον σταθεροποιητή της μονάδας. Επομένως, πριν κόψουμε ξύλα, πρέπει να βεβαιωθούμε ότι το σίδερο στο οποίο καθόμαστε είναι σε πλήρη κατάσταση λειτουργίας. Πώς μπορεί να γίνει αυτό;

Αναμέτρηση με σίδερο

Οι μπλε οθόνες θανάτου που προκαλούνται από αστοχίες υλικού είναι αυθόρμητες, εμφανίζονται απρόβλεπτα και ανεξάρτητα από τις συγκεκριμένες ενέργειες του χρήστη. Οι εφαρμογές εφαρμογών αρχίζουν επίσης να παράγουν κρίσιμα σφάλματα σε διάφορα σημεία και οι κωδικοί σφάλματος, οι διευθύνσεις και άλλες πληροφορίες που εκδίδονται από το σύστημα θα είναι διαφορετικοί σε όλες τις περιπτώσεις! Παρεμπιπτόντως, προγράμματα οδήγησης που χειρίζονται ασύγχρονα αιτήματα από συσκευές I/O, για παράδειγμα ασύρματα δίκτυα, συμπεριφέρονται σχεδόν ακριβώς το ίδιο. Οι μπλε οθόνες θανάτου που προκαλούνται από ελαττωματικούς οδηγούς εμφανίζονται συνήθως κατά την εκτέλεση ενός συγκεκριμένου συνόλου ενεργειών και περιέχουν περισσότερο ή λιγότερο σταθερές πληροφορίες.

Για να αφαιρέσετε όλες τις υποψίες από το υλικό, αρκεί να συνδέσετε έναν άλλο σκληρό δίσκο στο σύστημα και να εγκαταστήσετε ένα καθαρό Windowsκαι δουλέψτε το για λίγο. Εάν οι μπλε οθόνες του θανάτου δεν εξαφανιστούν, σημαίνει ότι το υλικό φταίει πραγματικά και ήρθε η ώρα να το αλλάξετε. Η εύρεση ελαττωματικών εξαρτημάτων είναι ένα θέμα για ξεχωριστή συζήτηση, το οποίο θα αφήσουμε για την επόμενη φορά, αλλά προς το παρόν, σηκώστε τα μανίκια και καταπιαστείτε με αυτά τα ύπουλα προγράμματα οδήγησης.

Τα καυσόξυλα χωρίς πιστοποιητικό μπαίνουν κατευθείαν στην εστία

Ολόκληρο το σύνολο των εργαλείων που είναι απαραίτητα για την ανάπτυξη προγραμμάτων οδήγησης ( DDK– Driver Development Kit), η Microsoft το διανέμει δωρεάν μαζί με τη συνοδευτική τεκμηρίωση. Οδηγοί, μερικές φορές πολύ μπερδεμένοι και ασταθείς.

Για να αποφευχθεί ένα τέτοιο χάος, Microsoftστην αρχαιότητα, εισήγαγε μια διαδικασία πιστοποίησης των οδηγών για συμμόρφωση με τις απαιτήσεις που τους επιβάλλονται, μετά την οποία χορηγείται στον οδηγό ψηφιακή υπογραφή. Ή... δεν εκδόθηκε, και στάλθηκε για αναθεώρηση. Και παρόλο που η πιστοποίηση είναι απλώς μια επίσημη διαδικασία που δεν εγγυάται την απουσία θανατηφόρων σφαλμάτων και ελαττωμάτων ανάπτυξης, εξακολουθεί να εξαλείφει ορισμένους από τους ειλικρινά «πρωτοπόρους» οδηγούς.

Στην ιδανική περίπτωση, μόνο ψηφιακά υπογεγραμμένα προγράμματα οδήγησης θα πρέπει να διατηρούνται στο σύστημα. Και παρόλο που μια ψηφιακή υπογραφή δεν είναι ασφαλιστήριο συμβόλαιο, η παρουσία της υποδηλώνει ήδη ένα συγκεκριμένο επίπεδο κουλτούρας ανάπτυξης. Τα προγράμματα οδήγησης χωρίς ψηφιακή υπογραφή είναι χειρότερα από ένα pig in a poke και πρέπει να απαλλαγούμε από αυτά αν είναι δυνατόν (ειδικά επειδή πολλά από αυτά είναι κακόβουλο λογισμικό εγκατεστημένο από rootkits ή επιθετικούς αμυντικούς μηχανισμούς που διεισδύουν βαθιά στο σύστημα και προκαλούν αστάθειά του ). Εν ολίγοις, ας μην επιδοθούμε στη δημαγωγία, αλλά ας προσπαθήσουμε να απαντήσουμε σε μια απλή ερώτηση: πώς να δημιουργήσετε μια λίστα προγραμμάτων οδήγησης χωρίς ψηφιακή υπογραφή;

Το βοηθητικό πρόγραμμα θα μας βοηθήσει σε αυτό sigverif.exe, περιλαμβάνεται στο στάνταρ κιτ παράδοσης λειτουργικό σύστημακαι βρίσκεται στον κατάλογο WINNT\System32. Το εκκινούμε και βλέπουμε ένα παράθυρο διαλόγου. Κάντε κλικ στο κουμπί "Για προχωρημένους" και στην καρτέλα "Αναζήτηση" ορίστε τα κριτήρια επιλογής μετακινώντας το κουμπί επιλογής από τη θέση "Ειδοποίηση για μη εγγραφή". αρχεία συστήματος"(όπου έπεσε από προεπιλογή) στη θέση "Αναζήτηση για άλλα αρχεία που δεν είναι ψηφιακά υπογεγραμμένα." Στη συνέχεια, στις "Επιλογές αναζήτησης", ανοίξτε το πλαίσιο "Αναζήτηση αρχείων του ακόλουθου τύπου" και επιλέξτε "*.sys" και παρακάτω υποδείξτε τον φάκελο αναζήτησης "C:\WINNT", φροντίζοντας να ελέγξετε το "Συμπερίληψη πλαίσιο ελέγχου υποφάκελοι».

Ουσιαστικά, οι οδηγοί δεν απαιτείται να έχουν την επέκταση sys και δεν περιορίζονται πάντα στον κατάλογο WINNT, που βρίσκονται στους καταλόγους των «δικών τους» εφαρμογών, και κάποιες εφαρμογές αποθηκεύουν ακόμη και προγράμματα οδήγησης... μέσα τους! Αμέσως μετά την εκκίνηση (ή οποιαδήποτε άλλη στιγμή), αποθηκεύουν το αρχείο στο δίσκο στον τρέχοντα ή προσωρινό κατάλογο, φορτώνουν το πρόγραμμα οδήγησης στη μνήμη και... το διαγράφουν αμέσως από τον δίσκο! Αυτό γίνεται όχι μόνο από κακόβουλους ιούς, αλλά και από αρκετά αξιοσέβαστα προγράμματα, όπως ορισμένα βοηθητικά προγράμματα του διάσημου ερευνητή υποεπιφανειών των Windows, Mark Russinovich.

Επομένως, για την καθαρότητα του πειράματος, δεν θα μας βλάψει να λάβουμε μια λίστα προγραμμάτων οδήγησης που βρίσκονται σε αυτή τη στιγμήστη μνήμη και συγκρίνετε τα με τα προγράμματα οδήγησης που βρίσκονται στο δίσκο. Οι λέξεις "επί του παρόντος" είναι βασικές, καθώς τα προγράμματα οδήγησης μπορούν να ληφθούν/εκφορτωθούν δωρεάν χωρίς επανεκκίνηση του λειτουργικού συστήματος. Συνιστάται να εκτελείτε αυτήν τη λειτουργία πολλές φορές εκτελώντας το βοηθητικό πρόγραμμα της γραμμής εντολών drivers.exe, το οποίο αποτελεί μέρος του DDK, το οποίο μπορεί να ληφθεί από τον διακομιστή της Microsoft. Ξεκίνησε χωρίς διακόπτες χρησιμοποιώντας μια εντολή γραμμής, το βοηθητικό πρόγραμμα drives.exeαπορρίπτει όλες τις πληροφορίες στην οθόνη, κάτι που δεν είναι καλό, καθώς συνήθως υπάρχουν πολλά προγράμματα οδήγησης στο σύστημα και δεν χωρούν στην οθόνη. Ωστόσο, η θρησκεία μας επιτρέπει να ανακατευθύνουμε τη ροή εξόδου προς αρχείο κειμένου(drivers.exe >file-name.txt), με δυνατότητα ανοίγματος από οποιονδήποτε επεξεργαστής κειμένου- είτε με Word είτε με σημειωματάριο. Στη συνέχεια, το μόνο που μένει είναι να επιλέξετε το κατακόρυφο μπλοκ (το οποίο δεν επιτρέπει το Notepad) και να λάβετε μια λίστα προγραμμάτων οδήγησης. Κατευθείαν από τον πυρήνα του λειτουργικού συστήματος!

Εάν τουλάχιστον ένα από αυτά τα προγράμματα οδήγησης δεν βρίσκεται στον κατάλογο C:\WINNT\, τότε η ψηφιακή υπογραφή του δεν θα επαληθευτεί! Φυσικά, ένας τέτοιος οδηγός προσελκύει αμέσως την προσοχή και έχουμε ένα εύλογο ερώτημα: από πού προέρχεται; Αρχικά, σαρώνουμε όλους τους καταλόγους στο δίσκο. Εάν δεν υπάρχει, ορίστε ένα σημείο διακοπής στη συνάρτηση CreateFileW στο Soft-Ice και δείτε τα ορίσματα που μεταβιβάστηκαν σε αυτήν. Αργά ή γρήγορα θα συναντήσουμε το πρόγραμμα οδήγησης buggy, μετά από το οποίο μπορούμε να κοιτάξουμε μόνο την κάτω δεξιά γωνία της οθόνης Soft-Ice, όπου εμφανίζεται το όνομα της διαδικασίας που το δημιούργησε. Για περισσότερες λεπτομέρειες, ανατρέξτε στο βιβλίο «Τεχνικές για τον εντοπισμό σφαλμάτων προγραμμάτων χωρίς κείμενα πηγής», ένα ηλεκτρονικό αντίγραφο του οποίου μπορείτε να βρείτε στον διακομιστή ftp ή http nezumi.org.ru, καθώς και στον δίσκο μας. Και συνεχίζουμε να βασανίζουμε τη χρησιμότητα sigverif.exe.

Αφού κάνετε κλικ στο «OK», «Έναρξη», θα εμφανιστεί στην οθόνη ένα «θερμόμετρο» που εμφανίζει την πρόοδο και ο σκληρός δίσκος θα αρχίσει να θροΐζει με όλες τις κεφαλές που έχει. Με την ολοκλήρωση της εργασίας, μια λίστα προγραμμάτων οδήγησης χωρίς ψηφιακή υπογραφή θα καταρτιστεί και θα εμφανιστεί στην οθόνη.

Κάποιοι θερμοκέφαλοι προτείνουν, για να καθαριστεί το σύστημα από την αίρεση, να αφαιρεθούν όλα τα ανυπόγραφα προγράμματα οδήγησης - τότε, λένε, όλα τα προβλήματα θα φύγουν. Πώς μπορεί να γίνει αυτό; Η πιο σκληρή λύση είναι απλά να τα αφαιρέσετε από το δίσκο μέσω FAR ή Explorer (με δικαιώματα διαχειριστή, φυσικά!). Αλλά οι συνέπειες μιας τέτοιας λειτουργίας μπορεί να είναι πολύ καταστροφικές και είναι καλύτερο να κάνετε δεξί κλικ στο εικονίδιο του προγράμματος οδήγησης στον Explorer, να βρείτε στις "Ιδιότητες" το όνομα του κατασκευαστή, με το οποίο μπορείτε να προσδιορίσετε τι είδους εφαρμογή/υλισμικό έχει εγκατασταθεί αυτό το πρόγραμμα οδήγησης και απεγκαταστήστε το με πολιτισμένο τρόπο. Είναι αλήθεια ότι υπάρχει ένα "αλλά" εδώ.

Το πρόγραμμα οδήγησης επισημαίνεται στο παρακάτω σχήμα. g400m.sys, που συνοδεύει την κάρτα Matrox G450, και παρόλο που η Matrox δεν είναι καθόλου αδύναμη εταιρεία, δεν έλαβε ψηφιακή υπογραφή (είτε η Microsoft δεν την έδωσε, είτε η ίδια η Matrox δεν ήθελε να ασχοληθεί). Φυσικά, αφού το αφαιρέσετε από το σύστημα, θα πρέπει να ξεχάσετε τη λειτουργία SVGA. Μπορείτε, ωστόσο, να μεταβείτε στον ιστότοπο του Matrox και να κάνετε λήψη της πιο πρόσφατης έκδοσης του προγράμματος οδήγησης (είναι ήδη ψηφιακά υπογεγραμμένο). Μόνο εδώ... τόσο οι υπογεγραμμένες όσο και οι μη υπογεγραμμένες εκδόσεις περιέχουν πολλά μοιραία σφάλματα, ιδίως ως αποτέλεσμα ορισμένων περιστάσεων, όταν προσπαθείτε να μεταβείτε σε λειτουργία επικάλυψης, το σύστημα κολλάει στο BSOD, καθώς το πρόγραμμα οδήγησης προσπαθεί να ελευθερώσει ήδη ελευθερωμένη μνήμη.

Έτσι, η παρουσία/απουσία ψηφιακής υπογραφής από μόνη της δεν σημαίνει τίποτα, και ακόμη κι αν χρησιμοποιούμε μόνο υπογεγραμμένα προγράμματα οδήγησης, αυτό δεν μας δίνει καμία εγγύηση σταθερότητας.

Εδώ προχωράμε στο δεύτερο μέρος του άρθρου, δηλαδή στον έλεγχο των οδηγών σε συνθήκες κοντά στη μάχη.

Δίνουμε στα καυσόξυλα μια πραγματική δοκιμή

Το DDK περιλαμβάνει ένα υπέροχο βοηθητικό πρόγραμμα Οδηγός Επιβεβαιωτής, το οποίο δημιουργεί τις πιο σοβαρές συνθήκες για τους οδηγούς, που συνορεύουν με ακραία και αυτοκτονία, όπου η πιθανότητα αποτυχίας είναι μέγιστη και το όνομα του ελαττωματικού οδηγού καθορίζεται με τη μεγαλύτερη ακρίβεια (ακόμα και αν δεν υποφέρει λόγω αναπτυξιακών ελαττωμάτων, αλλά καταστρέφει τη δομή δεδομένων των προγραμμάτων οδήγησης άλλων ατόμων).

Είναι σημαντικό να σημειωθεί ότι Οδηγός Επιβεβαιωτής- Αυτό δεν είναι φάρμακο, αλλά μόνο διαγνωστικό εργαλείο. Και πάλι δεν θα σας σώσει από αποτυχίες (αντίθετα, θα αυξήσει την έντασή τους κατά μερικές τάξεις μεγέθους), αλλά θα σας βοηθήσει να αναγνωρίσετε τον «ύπουλο» οδηγό με επαρκή βαθμό αξιοπιστίας.

Έτσι, εκκινούμε το verifier.exe, βλέπουμε το παράθυρο Οδηγός Επιβεβαιωτής Διευθυντής, μεταβείτε στην καρτέλα Ρυθμίσεις και μετακινήστε το κουμπί επιλογής στη θέση Επαλήθευση όλων των προγραμμάτων οδήγησης, μετά από την οποία πατάμε το κουμπί "Προτιμώμενη ρύθμιση", το οποίο ορίζει τους ακόλουθους τύπους επαλήθευσης:

  • Ειδικός πισίνα– στα προγράμματα οδήγησης που δοκιμάζονται θα εκχωρηθεί μια ειδική περιοχή μνήμης για εκχώρηση, η οποία δεν λειτουργεί πολύ γρήγορα, αλλά είναι ικανή να ανιχνεύει τους περισσότερους τύπους καταστροφής των δεδομένων της και άλλων ατόμων.
  • Δύναμη IRQLέλεγχος. Το IRQL είναι το επίπεδο αιτήματος διακοπής. Το πιο συνηθισμένο λάθος που κάνουν οι προγραμματιστές προγραμμάτων οδήγησης είναι ότι προσπαθούν να αποκτήσουν πρόσβαση στη μνήμη σε επίπεδο IRQL στο οποίο ο διαχειριστής σελιδοποίησης δεν λειτουργεί. Και αν η απαιτούμενη σελίδα ξαφνικά αποδειχθεί ότι έχει εξαχθεί στο δίσκο, το σύστημα θα μετατραπεί σε μπλε οθόνη με την επιγραφή "IRQL_LESS_OR_EQULAR". Η επιβολή αυτής της λειτουργίας αναγκάζει τις σελίδες του προγράμματος οδήγησης να ξεπλυθούν στο δίσκο, έτσι ώστε το ελάττωμα σχεδιασμού να εμφανίζεται στο 100% του χρόνου.
  • Χαμηλός πόρος προσομοίωσηΕίναι χρήσιμο να το εγκαταστήσετε για να δείτε πώς θα συμπεριφερθεί το πρόγραμμα οδήγησης σε περίπτωση καταστροφικής έλλειψης πόρων συστήματος, αλλά δεν χρειάζεται να το κάνετε αυτό, αλλά είναι καλύτερα να αφήσετε το πλαίσιο ελέγχου Pool tracking (παρακολούθηση του σωστού χειρισμού της μνήμης πισίνα). Τα σφάλματα εισόδου/εξόδου (επαλήθευση εισόδου/εξόδου) αποτελούν ένα ασήμαντο μέρος όλων των σφαλμάτων, επομένως η θέση αυτού του πλαισίου ελέγχου είναι, γενικά, εντελώς μη κρίσιμη.

Αφού ολοκληρώσετε την επιλογή των ρυθμίσεων, κάντε κλικ στο κουμπί «Εφαρμογή» και, όπως μας προτείνεται, κάντε επανεκκίνηση.

Αμέσως μετά την έναρξη της εκκίνησης, το σύστημα θα επιβραδυνθεί αισθητά, όπως θα έπρεπε, αφού ο πυρήνας εκτελεί πολύ περισσότερους ελέγχους από ό,τι συνήθως. Όταν εντοπίζονται σφάλματα, αναβοσβήνει μια μπλε οθόνη θανάτου με το όνομα του προγράμματος οδήγησης και κάποιες άλλες πληροφορίες που είναι χρήσιμες για τους προγραμματιστές, αλλά άχρηστες για εμάς. Το μόνο που μπορούμε να κάνουμε είναι να ενημερώσουμε το πρόγραμμα οδήγησης στο μέγιστο τελευταία έκδοσηή αρνηθείτε να χρησιμοποιήσετε το πρόγραμμα (υλικό) που το χρησιμοποιεί. Στην πραγματικότητα, έχουμε λίγο περισσότερες επιλογές για την ανάφλεξη υγρού ξύλου, αλλά περισσότερα για αυτό αργότερα.

Μπορείτε να μάθετε την κατάσταση επαλήθευσης ανά πάσα στιγμή εκτελώντας το verfier.exe. Η καρτέλα Κατάσταση προγράμματος οδήγησης παραθέτει τις καταστάσεις όλων των προγραμμάτων οδήγησης που εντοπίστηκαν με μια εξήγηση της τρέχουσας κατάστασης. Η κατάσταση φόρτωσης σημαίνει αυτό αυτόν τον οδηγόέχει ληφθεί και επαληθευτεί από τουλάχιστον, μια φορά (αλλά ίσως όχι εντελώς, δηλαδή, δεν είχαν όλα τα τμήματα του οδηγού χρόνο να ασκηθούν). Η κατάσταση Unloaded σημαίνει ότι το πρόγραμμα οδήγησης έχει φορτωθεί, επαληθευτεί (ενδεχομένως εν μέρει) και εκφορτώθηκε από το σύστημα/πρόγραμμα που το χρησιμοποιεί ή κατόπιν δικής του αίτησης. Το τελευταίο είναι ιδιαίτερα χαρακτηριστικό για τους οδηγούς που έχουν απομείνει από εξοπλισμό που αφαιρέθηκε τραβώντας βάρβαρα την κάρτα επέκτασης από την υποδοχή, δηλαδή χωρίς να πραγματοποιηθεί απεγκατάσταση. Ο επιζών οδηγός σαρώνει το λεωφορείο, προσπαθώντας να βρει το υλικό «του», αποτυγχάνει με την αναζήτηση και στη συνέχεια ξεφορτώνεται από τη μνήμη, παρεμπιπτόντως, επιβραδύνοντας την εκκίνηση του συστήματος (μερικές φορές πολύ σημαντικά) και έρχεται σε σύγκρουση με άλλα προγράμματα οδήγησης. Ηθικό: Ο εξοπλισμός πρέπει να αφαιρεθεί από το σύστημα σύμφωνα με όλους τους κανόνες! Ωστόσο, δεν είναι κάθε κατάσταση Unloaded ένδειξη μιας μη φυσιολογικής κατάστασης και πριν διαγράψετε ένα πρόγραμμα οδήγησης με τέτοια κατάσταση, πρέπει να καταλάβετε τι είδους τάρανδος είναι αυτός και από πού προήλθε αρχικά.

Η κατάσταση Never Loaded υποδεικνύει ότι αυτό το πρόγραμμα οδήγησης δεν έχει φορτωθεί ακόμη, πράγμα που σημαίνει ότι δεν έχει ελεγχθεί, επομένως, πρέπει να περιμένετε πριν από την εκκίνηση διάφορα προγράμματαπου μπορεί να σχετίζεται με αυτό. Ωστόσο, ορισμένα προγράμματα οδήγησης (ειδικά που έχουν απεγκατασταθεί λανθασμένα) δεν φορτώνονται και, κατά συνέπεια, δεν ελέγχονται ποτέ.

Αφού δουλέψουμε με το σύστημα σε λειτουργία σκληρού ελέγχου για κάποιο χρονικό διάστημα (από αρκετές ώρες έως αρκετές ημέρες), θα εντοπίσουμε σχεδόν όλα τα ελαττωματικά προγράμματα οδήγησης από τα οποία υποφέραμε στο παρελθόν και θα σημειώσουμε τα ονόματά τους σε ένα κομμάτι χαρτί.

Μπορείτε να επαναφέρετε το σύστημα σε κανονική λειτουργία (δηλαδή, χωρίς πρόσθετους ελέγχους που καταστρέφουν την απόδοση) χρησιμοποιώντας τον ίδιο επαληθευτή. Επιστρέφουμε στην καρτέλα Ρυθμίσεις, μετακινούμε το κουμπί επιλογής στη θέση Επαλήθευση επιλεγμένων προγραμμάτων οδήγησης (δεν πρέπει να επιλεγεί πρόγραμμα οδήγησης), κάνουμε κλικ στο «Επαναφορά όλων», μετά στο «Εφαρμογή» και κάνουμε επανεκκίνηση. Ολα! Το σύστημα λειτουργεί πλέον με κανονική ταχύτητα, αλλά χωρίς ελέγχους.

Τι να κάνετε με τα υγρά καυσόξυλα;

Αλλά πραγματικά, τι μπορείτε να κάνετε με έναν ελαττωματικό οδηγό; Οι χάκερ που ξέρουν πώς να κρατούν ένα πρόγραμμα εντοπισμού σφαλμάτων στα χέρια τους, αν έχουν αρκετό ελεύθερο χρόνο, μπορούν να το αποσυναρμολογήσουν (ευτυχώς, τα προγράμματα οδήγησης είναι συνήθως μικρού μεγέθους), να βρουν ένα σφάλμα και να βρουν έναν τρόπο να το διορθώσουν, αλλά... Αυτό είναι πολύ χρονοβόρο.

Το να πετάξετε το πρόγραμμα οδήγησης (μαζί με το υλικό/πρόγραμμα που το χρησιμοποιεί) επίσης δεν είναι επιλογή. Αν και αν είναι γνωστό ότι φταίνε οι μπλε οθόνες του θανάτου κάρτα ήχουξένος Κινέζος κατασκευαστήςαξίας $20, τότε έχουμε ένα πολύ ισχυρό κίνητρο να το αντικαταστήσουμε με κάτι πιο άξιο. Αλλά αυτό, αυστηρά μιλώντας, είναι ήδη σαφές σε όλους και Πρόσθετα σχόλιαδεν χρειάζεται.

Αλλά δεν γνωρίζουν όλοι ότι ένας τεράστιος αριθμός ατυχημάτων και μπλε οθονών θανάτου οφείλονται στο γεγονός ότι ένα πρόγραμμα οδήγησης που αναπτύχθηκε (και δοκιμάστηκε) σε περιβάλλον ενός επεξεργαστή είναι εγκατεστημένο σε μια μηχανή διπλού επεξεργαστή. Με τον όρο "διπλός επεξεργαστής" εδώ εννοούμε τόσο μια πραγματική πλατφόρμα με δύο πέτρες όσο και επεξεργαστές Hyper-Threading/πολλαπλών πυρήνων. Γνωστό (και επιβεβαιωμένο) μεγάλο ποσόδοκιμές) ότι οικιακός υπολογιστήςδύο επεξεργαστές είναι απολύτως άχρηστοι, αφού στη συντριπτική πλειοψηφία των εφαρμογών δεν υπάρχει πρακτικά καμία αύξηση στην απόδοση.

Επομένως, εάν το σύστημα είναι ασταθές και για τον ένα ή τον άλλο λόγο είναι αδύνατο να απαλλαγείτε από το ελαττωματικό πρόγραμμα οδήγησης, μπορείτε να προσπαθήσετε να μπείτε στο BIOS Setup, μετατρέποντας το μηχάνημα "εικονικού διπλού επεξεργαστή" σε έναν επεξεργαστή . Ένα παρόμοιο αποτέλεσμα μπορεί να επιτευχθεί ανοίγοντας το αρχείο boot.ini (σε υπολογιστές με Windows NT/2000/XPβρίσκεται στον ριζικό κατάλογο λογική κίνηση, στο οποίο είναι εγκατεστημένο το σύστημα) και προσθέτοντας το κλειδί /ONECPU σε αυτό και, στη συνέχεια, επανεκκινήστε με την ελπίδα ότι τα σφάλματα θα εξαφανιστούν.

Λίστα 1

Παράδειγμα τυπικού αρχείου boot.ini


timeout=30

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

Λίστα 2

Διαμορφώνουμε το σύστημα ώστε να χρησιμοποιεί μόνο έναν επεξεργαστή από όλους τους διαθέσιμους


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

Αλλά επάνω Windows Μακρινή θέαδεν υπάρχει αρχείο boot.ini και παρόλο που είναι δυνατό (προσωρινά) να διαμορφωθούν οι ρυθμίσεις εκκίνησης χρησιμοποιώντας ειδική χρησιμότητα, η Microsoft σχεδιάζει να εγκαταλείψει εντελώς αυτό το κενό, έτσι ώστε να παραμείνει μόνο το πρόγραμμα Εγκατάστασης του BIOS. Ωστόσο, όσον αφορά Μακρινή θέα, μετά από τη στιγμή που θα μεταβούν σε αυτό, οι προγραμματιστές προγραμμάτων οδήγησης πιθανότατα θα έχουν αποκτήσει μηχανές πολλαπλών επεξεργαστών (καθώς απλώς δεν θα υπάρχουν άλλες προς πώληση) και θα δοκιμάσουν τις δημιουργίες τους σε περιβάλλον πολλαπλών επεξεργαστών.

Άλλο ένα λεπτό σημείο. Θυμηθείτε, είπαμε παραπάνω ότι το πιο συνηθισμένο λάθος που κάνουν οι προγραμματιστές προγραμμάτων οδήγησης είναι η πρόσβαση σε προκαταρκτική μνήμη σε επίπεδο IRQL στο οποίο ο διαχειριστής σελιδοποίησης δεν λειτουργεί και εάν η ζητούμενη σελίδα δεν είναι στη μνήμη, προκύπτει σφάλμα; Η προφανής λύση εδώ θα ήταν η αύξηση μνήμη τυχαίας προσπέλασηςστον τόμο στον οποίο ουσιαστικά καμία σελίδα δεν εξάγεται στο δίσκο. Σε τρέχουσες τιμές μνήμης, σχεδόν όλοι μπορούν να αντέξουν οικονομικά να αγοράσουν μερικά νέα memory stick. Υπάρχει όμως μια πιο προσιτή (και πιο κομψή) λύση στο πρόβλημα. Εάν η παράμετρος DisablePagingExecutive, που βρίσκεται στον επόμενο κλάδο μητρώου HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\MemoryManagement, ισούται με ένα (μηδέν από προεπιλογή), τα πυρηνικά στοιχεία δεν θα προκαταλαμβάνονται. Επομένως, εκκινούμε απλώς τον "Επεξεργαστή Μητρώου", αλλάζουμε αυτήν την αγαπημένη παράμετρο και κάνουμε επανεκκίνηση (οι αλλαγές ισχύουν μόνο μετά από επανεκκίνηση), ελπίζοντας ότι αυτό θα βοηθήσει στην επίλυση του προβλήματος των αποτυχιών.