Змінюємо колір «синього екрану смерті» bsod

Екран BSoD з кольором, що відрізняється від синього може збентежити кого завгодно, і я готовий посперечатися, що вам було б цікаво підібрати свій колір і потім показати його своїм друзям. Варто відзначити, що описані мною кроки для зміни кольору BSoD проробляються вручну і зачіпають тільки сеанс завантаження, так що вони підходять для демонстрацій, а не для загальної настройки BSoD.

підготовка системи

Оскільки нам доведеться змінити код ядра, перший крок полягає в дозволі редагувати код ядра в пам`яті, якщо це раніше не було зроблено. Системи Windows з менш ніж 2 Гб ОЗУ використовують сторінки об`ємом 4 Кб для зберігання коду ядра, завдяки чому можна забезпечити необхідний рівень захисту для вмісту. Наприклад, сторінки даних ядра повинні дозволяти доступ на читання і запис, в той час як код ядра повинен надавати доступ тільки для читання і виконання.

Відео: Ремонт комп`ютера Синій екран смерті що робити

В рамках оптимізації, яка дозволяє збільшити швидкість трансляції віртуальних адрес, Windows використовує великі сторінки (4 Мб на x86 і x64) на великих системах. Це означає, що якщо в сторінці зберігається і код, і дані, то ця сторінка повинна представляти доступ на читання, запис і виполненіе- так що для того, щоб гарантувати можливість редагування сторінки, ви повинні забезпечити використання Windows великих сторінок.

Якщо у вас Windows XP або Windows Server 2003 і менше 256 Мб ОЗУ, або Windows Vista або старше і є 2 Гб ОЗУ або менше, створіть значення REG_DWORD з назвою LargePageMinimum, яке встановлено в 1, в гілці реєстру HKLM System CurrentControlSet Control Session Manager Memory Management:

Змінюємо колір & laquo-Синього екрану смерті & raquo- BSOD

Щоб вам не треба було поспішати похвалитися результатами своєї роботи поки Windows автоматично НЕ перезавантажиться після збою, поміняйте налаштування автоперезагрузка. На Windows XP і Server 2003 клацніть правою кнопкою миші на значку «Мій комп`ютер», виберіть вкладку «Додатково» і натисніть кнопку «Параметри» в розділі «Завантаження і відновлення».

На Windows Vista і вище клацніть правою кнопкою миші на значку «Комп`ютер» в меню Пуск, виберіть «Властивості», натисніть «Додаткові параметри системи», перейдіть на вкладку «Додатково» і натисніть кнопку «Параметри» в розділі «Завантаження і відновлення». Зніміть прапорець з пункту «Виконувати автоматичне перезавантаження»:

Змінюємо колір «Синього екрану смерті» BSOD

Якщо ви працюєте на 64-розрядної версії Windows Vista або вище, вам потрібно завантажити систему в режимі налагодження, щоб можна було запустити відладчик ядра в режимі «local». Ви можете зробити це або натиснувши F8 під час завантаження системи і вибравши режим налагодження, або поставивши прапорець «Налагодження» в утиліті «Конфігурація системи» (Msconfig):

Змінюємо колір «Синього екрану смерті» BSOD

Далі перезавантажте систему і запустіть відладчик з правами адміністратора. Налаштуйте відладчик на сервер символів Microsoft, відкривши діалогове вікно «Symbol Search Path» з меню Файл і введіть наступний рядок: srv * c: symbols * http: //msdl.microsoft.com/download/symbols (замініть c: symbols на шлях до локальної папці, в якій відладчик повинен зберігати кешированниє символи). Далі відкрийте діалогове вікно «Kernel Debugging" з меню Файл, виберіть вкладку «Local» і натисніть OK:




Змінюємо колір «Синього екрану смерті» BSOD

Наступні кроки відрізняються в залежності від того, працюєте ви з 32-розрядної або 64-розрядної Windows і від версії Windows.

32-розрядна Windows XP і Windows Server 2003

Функція, яка відображає BSoD на цих операційних системах, називається KeBugCheck2. Ви шукайте місце, де функція передає значення кольору функції, яка заливає фон екрану - InbvSolidColorFill. Введіть команду «u kebugcheck2», щоб вивести початок функції, потім вводите команду «u», щоб перегорнути додаткові сторінки коду функції до тих пір, поки ви не побачите посилання на InbvSolidColorFill (після першого введення «u», ви можете просто натиснути Enter, щоб повторити команду). Вам потрібно буде пропустити 30-40 сторінок до того, як ви побачите цей запит:

Змінюємо колір «Синього екрану смерті» BSOD

Перед цим запитом ви побачите інструкцію «push», що використовує як аргумент 4, як показано на малюнку вище. Скопіюйте адресу коду цієї інструкції, вибравши його з шпальти адреси зліва і натиснувши Ctrl + C. Потім в командному вікні налагоджувача введіть «eb», потім Ctrl + V, щоб вставити адресу, потім "+1" і натисніть Enter. Отладчик увійде в режим редагування пам`яті, починаючи з адреси значення кольору. Тепер ви можете вибрати колір, який ви хочете . 1 - це червоний, 2 - зелений, ви також можете поекспериментувати, щоб отримати інший колір. Просто введіть число і натисніть Enter двічі, щоб підтвердити введення, після чого вийдіть з режиму редагування. Ось як приблизно має виглядати екран, після того як ви закінчите:




Змінюємо колір «Синього екрану смерті» BSOD

64-розрядні версії Windows і 32-розрядні версії Windows Vista або вище

На цих версіях Windows функція ядра для відтворення BSoD називається KiDisplayBlueScreen. Введіть «u kidisplaybluescreen» і потім продовжуйте вводити команди «u», щоб пропустить сторінки з кодом функції, до тих пір, поки ви не побачите виклик InbvSolidColorFill. На 32-розрядних версіях Windows продовжите дотримання інструкцій, наведених в розділі Windows XP / Server 2003, щоб знайти і відредагувати значення кольору.

На 64-розрядних версіях цих операційних систем інструкція, що передує викликом InvbSolidColorFill, передає колір, так що скопіюйте її адресу (номер в лівій колонці), а потім введіть команду для початку редагування: «eb

+4 ». Отладчик перейде в режим редагування пам`яті, і ви зможете змінити значення (наприклад, 1 для червоного, 2 для зеленого):

Змінюємо колір «Синього екрану смерті» BSOD

Перегляд результату

Тепер ви готові до збою системи. Якщо ви працюєте на 64-розрядної Windows, ви можете викликати збій без будь-яких додаткових дій. Kernel Patch Protection помітить модифікацію і викличе збій системи як засіб стримування діяльності незалежних вендорів, які могли б вирішити підправити код ядра, щоб змінити його поведінку. Однак на це може знадобитися кілька хвилин.

Щоб викликати збій системи на вимогу, запустіть утиліту Notmyfault (ви можете завантажити її з веб-сторінки Windows Internals) і натисніть кнопку «Do Bug» (щоб уникнути втрати даних, переконайтеся, що ви зберегли будь-яку роботу і закрили всі інші додатки):

Змінюємо колір «Синього екрану смерті» BSOD

З`явиться BSoD в кольорі, який ви вибрали, в даному випадку це «червоний екран смерті»:

Змінюємо колір «Синього екрану смерті» BSOD

святковий BSoD

У дусі наступаючих свят, я зробив ще один крок і створив святковий BSoD: я поміняв не тільки колір фону, але і колір тексту. Щоб зробити це на 64-розрядних версіях Windows Vista або вище, знайдіть виклик InvbSetTextColor відразу після InvbSolidColorFill і адреса інструкції, яка передає колір тексту функції, «move ecx, 0Fh»:

Змінюємо колір «Синього екрану смерті» BSOD

Параметр 0Fh означає білий колір, але ви можете змінити його, використовуючи все ту ж методику редагування. Використовуйте команду «eb», передаючи адресу інструкції плюс 1. Нижче я встановив червоний колір (який має значення 1):

Змінюємо колір «Синього екрану смерті» BSOD

А ось і святковий BSoD, який я створив:

Змінюємо колір «Синього екрану смерті» BSOD

Щасливих вам свят! І пам`ятайте, якщо у вас були якісь випадки діагностики проблем, якими ви хочете поділитися, будь ласка, надсилайте мені скріншоти (переважно .jpg) і файли журналу.


Поділися в соц. мережах:

По темі: