Отсутствует или содержит ошибки файл windowssystem32 winload.efi в Windows 10 / 8

Что такое Winload.exe в Windows ?

27.01.2017

WInload.exe или Windows Boot Loader
– это небольшая в своих размерах программка под названием системный загрузчик, которая подхватывает процесс, начатый файлом bootmgr
. Она появилась в Windows со времён версии Windows Vista.

Основное предназначение winload.exe
– загрузить драйверы устройств первой необходимости, самые важные из них – те, без которых система не понимает, что за составляющие в компьютере находятся. Примерно тем же самым занимается и программа ntoskrnl.exe
, входящая в ядро Windows. В Windows XP всё немного не так – за загрузку ntoskrnl.exe
отвечает NTLDR, который также служит в качестве менеджера загрузки.

Если компьютер выходит из режима гибернации, winload.exe
уже не принимает никакого участия в загрузке. Его место занимает процесс winresume.exe. 

Который, кстати, вы найдёте в той же папке Windows.

Winload.exe – это вирус?

Предыдущий абзац ответил на вопрос, что нет. Хотя вполне может быть инфицирован. На некоторых сайтах я даже встречал совет, что файл вообще не нужен. Если так, нужно для себя уяснить, где должно быть расположение настоящего исполнительного файла загрузки Windows, и где подделка обычно лежит.

Расположение реального файла -папка C:WindowsSystem32
 .  Насколько мне известно, он лежит там от версии к версии (от Vista до 10-ки). Если ваш пронырливый взгляд и антивирус обнаружили этот файл где-то ещё и помечают его как подозрительный – приступайте к удалению. Однако помните, что копии файла вполне могут находиться и в таких папках, как Boot
из корневой директории C:Windows
. Антивирус вам в помощь.

Ошибки winload.exe

Если файл повреждён или вообще каким-то образом исчез из системы, Windows сигнализирует о том сообщениями типа:

Windows failed to start. A recent hardware or software change might be the cause

Winload.exe отсутствует или повреждён

ошибка: windowssystem32winload.exe

“WindowsSystem32winload.exe”
cannot be trusted because of its digital signature

Status 0xc0000428

A component of the operating system has expired. File: windowssystem32winload.exe

и т.д.

При всём том Windows может продолжать перезагружать компьютер раз от раза, выказывая сообщение об ошибке. Однажды (это произошло ещё в версии Windows XP) лечение антивирусом окончилось переустановкой системы, которая продолжала настойчиво требовать ввести лицензионный ключ. Более с такими ошибками не сталкивался.

Да, причиной повреждения файла являются далеко не только вирусы, деструктивные способности которых перехватываются современными антивирусами на лету. Нередко причиной тому являются ошибки файловой системы жёсткого диска, причём в мультизагрузочных системах одна из систем вполне способна загружаться без проблем, вторая – выдавать ошибку с содержанием про winloader.exe.

Лечим проблему для winload.exe

Лично я пытался скорректировать файл путём скачивания оригинального файла с других ресурсов, и раз от раза натыкался на подделки, любезно предоставляемые злоумышленниками.

Первое
, что вам необходимо сразу сделать – это проверить систему антизловредами. Неплохо с этим справляется бесплатная утилита Касперского. Не исключено, что решение проблемы наступит сразу по окончании проверки.

Второй
реально работающий способ – как всегда режим восстановления с помощью загрузочного диска Windows из окна параметров восстановления системы:

Все остальные способы так или иначе крутятся вокруг этих двух вариантов. В том числе и описываемый вот здесь метод, когда Windows просто не хотела загружаться. Я же предлагаю вам прямой путь. Если у вас нет под рукой образа Windows, не проблема. С помощью этой утилиты вы получите законную копию современной версии:

Скачать Образ Windows

Третий
способ предназначен для тех, у кого два варианта не подошли, система продолжает показывать сообщение об ошибке, а вариант восстановления системы в окне этапа установки Windows не отображается. Вами понадобится диск Hiren’s BootCD, с помощью которого вам необходимо:

  • провести проверку жёсткого диска с помощью команды в консоли
sfc /scannow
  • затем найти искомый файл winload.exe
    в папке с неисправной Windows, сделать его копию (где он лежит, вы уже знаете). Теперь ваша задача – найти файл winload~1.exe
     (его можно найти в папках  windowssystem32boot
    или подпапках windowswinsxs
    – они все скрыты, но этих файлов часто несколько; система в целях безопасности и просто по случаю дублирования плодит их несколько). Переименуйте winload~1.exe
    в winload.exe,
    положите файл папку C:WindowsSystem32 
    и загружайтесь.

Успехов нам всем

Рубрика
Настройки Windows
Ошибка Bootmgr Is Missing: причины и решения
Как вернуть Windows 7 после установки Windows XP?

Как исправить код ошибки 0xc000000e winload.exe в Windows 10

Главная » Инструкции windows » Как исправить код ошибки 0xc000000e winload.exe в Windows 10


Столкнулись с синим экраном смерти
 и кодом ошибки 0xc000000e winload.exe в Windows 10? Проблема возникает, когда Windows пытается выполнить загрузку. Основной причиной этой конкретной проблемы является неисправный или недействительный BCD
(Boot Configuration Data). BCD — это хранилище, в котором сохраняются все параметры и настройки, связанные с загрузкой. Таким образом, 0xc000000e появляется, когда запись не загружается из файла BCD. Проблемы с BCD обычно происходят по различным причинам, такими как перебои в подаче электроэнергии, ошибка при настройке, вирусы загрузочного сектора. В большинстве случаев идет повреждения файла BCD, когда вы принудительно отключите ПК в середине обработки важных данных в загрузочном секторе. Давайте разберем способы, как исправить ошибку 0xc000000e winload.exe
в Windows 10.

Способы по исправлению ошибки 0xc000000e winload.exe в Windows 10

1. Восстановить данные конфигурации загрузки

Шаг 1
. У вас должна быть установочная флешка с ОС Windows 10, если вы не можете загрузиться на рабочий стол. Вставьте её в USB-порт и начните установку системы, но до определенного момента. Когда появится кнопка «Установить», Вы нажмите снизу на «Восстановление системы
«, чтобы загрузиться в особых параметрах windows.

Примечание:
Если вы можете загрузится на рабочий стол или загрузиться в безопасном режиме
, то запустите командную строку от имени администратора и следуйте Шаг 3
.

Шаг 2
. В особых параметрах перейдите по пути Поиск и устранение неисправностей > Дополнительные параметры >
и выберите Командная строка.

Шаг 3
. Теперь вы можете выполнить команды восстановления для BCD Windows 10. Задайте ниже команды в окно командной строки, нажимая Enter
после каждой.

bootrec /scanos

bootrec /fixmbr

bootrec /fixboot

bootrec /rebuildbcd

Примечание:
 Если приведенные выше команды не выполняются, введите следующие и убедитесь, что нажали
 клавишу Enter
 после каждой.

bcdedit /export C:BCD_Backup

c:

cd boot

attrib bcd -s -h -r

ren c:bootbcd bcd.old

bootrec /RebuildBcd

Шаг 4
. После успешной процедуры ввода команд, перезагрузите свой компьютер и ошибка должна исчезнуть.

2. Автоматическое восстановление

Шаг 1
. Посмотрите, как в 1 способе
мы запускали командную строку через установочный USB-накопитель. Вам нужно сделать тоже самое, т.е. попасть в особые параметры системы. Далее перейдите Поиск и устранение неисправностей > Дополнительные параметры >
и выберите Восстановление при загрузке.

Шаг 2
. Далее запустится диагностика, после которой ошибка может исправиться. Следуйте инструкциям на экране, после чего перезагрузите ПК.

3. Восстановить ОС с помощью Recovery Drive

Отсутствующие системные файлы также могут быть причиной возникновения кода ошибки 0xc000000e
 на ПК под управлением Windows. Данные команды будут исправлять поврежденные файлы системы с помощью командной строки «диска восстановления». Как и выше способами, вам нужно получить доступ к особым параметрам системы через USB-установочный накопитель.

Шаг 1
. Откройте командную строку, как в способе 1
и задайте команду ниже. Эта команда утилиты StartRep.exe исправит значение загрузочной среды и устранит ошибку BCD. Однако в некоторых случаях она может не работать с одной попытки, поэтому вам нужно попробовать ввести эту команду несколько раз.

cd x:sourcesrecovery

StartRep.exe

Шаг 2
. После успешной процедуры, извлеките установочную флешку и перезагрузите ПК. Надеюсь, этот метод поможет вам исправить ошибку 0xc000000e.

4. Выполнение сканирования SFC и  CHKDSK

Шаг 1
. Вставьте в командную строку следующие команды. После завершения сканирования закройте командную строку и перезапустите Windows 10.

sfc /scannow /offbootdir=c: /offwindir=c:windows

chkdsk c: /r

5. Восстановление образа Windows

Воспользуемся встроенным инструментом DISM
(Deployment Image and Service Management). Откройте командную строку через установочную флешку, как описано в способе 1.

Шаг 1
. Задайте в командную строку следующую команду и нажмите Enter, после чего Вам придется подождать примерно минут 20.

DISM /Online /Cleanup-Image /RestoreHealth

В случае, если вышеуказанная команда не работает, вам нужно попробовать выполнить приведенные ниже команды.

Dism /Image:C:offline /Cleanup-Image /RestoreHealth /Source:c:testmountwindows

Dism /Online /Cleanup-Image /RestoreHealth /Source:c:testmountwindows /LimitAccess

Шаг 2
. После проделанных действий, закройте CMD и перезагрузите ПК. Если ничего не помогло, то просто попробуйте переустановить Windows.

Смотрите еще:

  • Восстановить главную загрузочную запись (MBR) в Windows 10/8/7
  • Исправить ошибку SrtTrail.txt в Windows 10
  • Как исправить ошибку 0xc000014c в Windows 10
  • Как исправить код ошибки 0xC0000225 в Windows 10
  • Исправить ошибку 0XC000021A в Windows 10 

comments powered by HyperComments

Подпишись

Отключение проверки целостности bootmgr и winload

Зачастую возникают потребности изучения процесса загрузки операционной системы Windows на уровне исходного кода. Ну а тут уж без внесения изменений в код просто не обойтись.. и в этом самом месте нас ждет разочарование. Дело в том, что если вносить изменения в код модулей bootmgr
, winload.exe
и файлы драйверов, участвующих в процессе начальной загрузки, то процесс запуска операционной системы начинает «вылетать» с ошибками, «валиться» в синий экран и режим восстановления. Логично, ведь мы столкнулись с проверкой целостности bootmgr и winload
, которая препятствует модификации исполняемых образов, задействованных в цепочке запуска. Подобный механизм впервые появился в линейке операционных систем Windows начиная с версии Vista и теперь приобрел перманентно-устойчивый вид. Для самописных драйверов разработчики оставили возможность загрузки в тестовом режиме (флаг TESTSIGNING
), тем не менее остаются условия, при которых внесение изменений в код компонентов оканчивается отказом в запуске ОС. Исследователям архитектуры Windows этот факт существенно портит настроение, поэтому сегодня мы разберем несколько нестандартный метод отключения проверки целостности bootmgr и winload
.

Для 32/64-битных версий Windows Vista/7/8 и далее есть вполне официальный способ отключения проверки проверки целостности драйверов режима загрузки, тем не менее иногда приходится работать с тестовыми (измененными) версиями некоторых загрузочных файлов, в этом случае требуется отключение вообще всех проверяющих механизмов.

Для подавления проверки целостности мы будем патчить код модулей таким образом, чтобы алгоритмы внутренних функций проверки хэшей файлов всегда выполнялись по ветвлению типовой (нормальной) загрузки. В качестве учебного материала статьи будет использована операционная система Windows 7 SP1 Professional RUS x86
в нормальном (legacy, PC/AT-MBR) режиме загрузки. Не смотря на то, что отключение проверки целостности в 32-битной системы имеет меньше смысла нежели в x64-версии, приведенное в данной статье решение является универсальным, поскольку логика работы внутренних функций проверки целостности аналогична (даже для режима загрузки UEFI), за исключением, разумеется, исходного кода.

Перед выполнением нижеприведенных действий не забудьте сделать резервные копии файлов:
  • %SystemRoot%System32BootWinload.exe
    ;
  • %SystemRoot%System32Winload.exe
    ;
  • Bootmgr
    (находящийся на скрытом системном разделе/разделе EFI);

Итак, нам потребуется:

  • Интерактивный дизассемблер IDA
  • Шестнадцатеричный редактор с возможностью поиска/замены шестнадцатеричных значений (ваш любимый)
  • Утилита bmzip
  • Утилита BOOTMGR Recompiler v2
  • PE-редактор LordPE

Bootmgr

В процессе загрузки операционной системы Windows, после окончания этапов MBR и PBR, управление передается на код менеджера загрузки Bootmgr
. Что бы сам менеджер загрузки в случае модификации у нас не «брыкался» разнообразными ошибками контрольных сумм, нам требуется его пропатчить:

  • Для начала нам необходимо получить файл bootmgr
    со специального «скрытого» системного раздела. Метод описан в этой статье, тем не менее я приведу здесь краткую последовательность действий: запускаем оснастку Управление дисками
    , выделяем (маркируем) первый раздел диска (размер ~100-300Мб), щелкаем правой кнопкой мыши — выбираем пункт меню Изменить букву диска или путь к диску..
    и назначаем литеру.
  • В системе появляется (становится доступен) новый диск. Открываем, настраиваем представление проводника на показ скрытых файлов, папок и дисков, отменяем сокрытие защищенных системных файлов.
  • В корне обнаруживаем сжатый файл Bootmgr
    .
  • Распаковываем его при помощи консольной утилиты bmzip
    (ссылка выше):

    bmzip bootmgr bootmgr.exe

    В целевом каталоге обнаруживаем новый только что распакованный файл bootmgr.exe
    .

  • Дизассемблируем полученный модуль bootmgr.exe
    при помощи IDA. Обязательно с работоспособной возможностью по выкачиванию символов с сервера Microsoft.
  • В интерфейсе IDA, идем в Options
    General
    — вкладка Disassembly
    , выставляем значение параметра Number of opcode bytes
    в 8
    . Это нужно для отображения в листинге опкодов инструкций.
  • В основном окне дизассемблированного исходного кода откручиваем на начало листинга, ставим курсор в начало, затем жмем Alt
    +T
    и вводим в строку поиска ImgpValidateImageHash
    (можно без учета регистра символов), жмем OK
    .
  • Для дальнейшего поиска можно использовать комбинацию Ctrl
    +T
    . Перемещаясь по исходному коду находим точку входа функции (не путать с вызовами функции call _ImgpValidateImageHash
    )
  • Функция ImgpValidateImageHash
    выполняет проверку контрольной суммы (хэш) загружаемых модулей. Для того, что бы обойти разнообразные проверки собственной целостности и загружаемого в дальнейшем модуля Winload.exe
    , необходимо заставить функцию возвращать нулевое значение (согласно соглашению о вызовах в регистре eax
    ) в любой случае.
  • На данный момент в приведенном исходном коде мы можем наблюдать сигнатуру для поиска и замены:

    Конкретно в вашем случае она может быть иной, поскольку все зависит от текущей ревизии файла bootmgr
    ;

  • Скачиваем и запускаем шестнадцатеричный редактор. Открываем в нем наш файл bootmgr.exe
    .
  • Поиском по шестнадцатеричному значению находим сигнатуру. Нужно поменять найденный нами код так, что бы в регистре eax
    возвращалось значение . В оригинале мы видим команду mov eax, edi
    (опкоды 8B C7
    ), которая выполняет присвоение eax
    =edi
    . Давайте заменим её на xor eax, eax
    (опкоды 33 C0
    ), которая обнуляет регистр eax
    . Для этого в редакторе байты 8B C7
    меняем на 33 C0
    . Сохраняем изменения, закрываем редактор.
  • Теперь нам необходимо преобразовать образ bootmgr.exe
    обратно в сжатый bootmgr
    . Для этого используем утилиту BOOTMGR Recompiler v2
    (ссылка выше).
  • Помещаем получившийся сжатый файл bootmgr
    в корень скрытого раздела (который был у нас подмаплен в систему в начале). Атрибуты на скрытый менять не надо!

Winload.exe

Но это еще не все, поскольку после того, как код менеджера загрузки Bootmgr
находится на завершающей стадии исполнения, им подгружается загрузчик следующей стадии — так называемый загрузчик операционной систем под названием Winload.exe
. Данный модуль так же имеет привычку проверять целостность ключевых файлов, поэтому нам необходимо обновить и его код тоже. Дабы не описывать несколько раз одно и то же, условимся, что шаги предыдущего раздела актуальны и для текущего.

Метод №1

  1. По вышеописанной методике ищем функцию ImgpValidateImageHash
    .
  2. В шестнадцатеричном редакторе находим сигнатуру и меняем (выделены цветом) четыре байта 8B 44 24 18
    на 33 C0 90 90
    , что будет эквивалентно серии команд:

Метод №2

  1. По вышеописанной методике ищем функцию OslInitializeCodeIntegrity
    .
  2. В шестнадцатеричном редакторе находим сигнатуру и меняем (выделены цветом) первые три байта 8B FF 55
    на B0 01 C3
    , что будет эквивалентно серии команд:
Модификацию требуют два файла Winload.exe
, находящиеся по путям: %SystemRoot%System32
и %SystemRoot%System32Boot
. Поэтому после модификации одного файла не забудьте обновить и второй.

Корректировка контрольной суммы файлов

Имеется еще один тонкий момент. Возьмите в привычку, что если вы модифицируете winload.exe
или ntoskrnl.exe
, или любой драйвер начальной загрузки, то после всех сделанных изменений не забудьте пересчитать и поменять контрольную сумму (поле Checksum
заголовка PE). Осуществляется это посредством утилиты LordPE
или любого аналогичного редактора PE-модулей. Причина простая: где-то в коде Winload.exe
имеется еще одна проверка (которую я пока не смог обнаружить), которая верифицирует контрольную сумму модуля, и при несовпадении уходит на процесс восстановления системы.

Заключение

После модификации исполняемых бинарных образов bootmgr
и winload.exe
, мы имеем возможность вносить в их код любые требуемые изменения без риска наскочить на проверку и получить отказ в загрузке операционной системы. Тем не менее, это еще далеко не все, ведь дальнейшая загрузка подразумевает работу с ядром операционной системы, поэтому мы переходит к следующему этапу отключения проверки целостности ядра.

Похожие записи:

Ссылка на основную публикацию
Похожие публикации