Создание и сохранение исполняемых файлов ядра Windows
Теперь надо создать новые файлы ядра Windows. Где же искать "сырье" для работы (файлы ntoskrnl.exe, ntkrnlmp.exe, ntkrnlpa.exe, ntkrpamp.exe)?
Со времени выхода в свет Windows XP, компания Microsoft выпустила несколько обновлений, подменяющих эти файлы их более новыми версиями. На момент написания этой статьи последней публичной версией является 5.1.2600.2622 (KB890859). Также существует версия 5.1.2600.2868 (KB910623). Поэтому источник "сырья", в зависимости от того, каким способом вы интегрируете обновления в дистрибутив, на каком этапе создания собственного инсталляционного диска вы занимаетесь всем тем, о чем мы здесь говорим, а также от многих других факторов, может быть самым разнообразным.
Я использую набор обновлений для русской Windows XP Professional SP2 и другими способами практически не пользовался, поэтому дальнейший рассказ будет основан на предположении, что наши вкусы совпадают.
Если вы предпочитаете другие способы, то могу подсказать только одно. В полностью "готовом" дистрибутиве Windows XP Professional SP2 все четыре файла ядра находятся в архиве \I386\SP2.CAB. Кроме того, в каталоге \I386 находятся файлы ntoskrnl.ex_ и ntkrnlmp.ex_ (также являющиеся CAB-архивами, содержащими одноименные файлы).
В нашем случае все интересующих нас файлы находятся в каталоге Files , который, в свою очередь, находится в папке, куда вы распаковали архив UpdatePack-XPSP2-Rus.7z.
Одним из этих файлов нам нужно будет на время подменять системный файл %WINDIR%\SYSTEM 32\ntoskrnl.exe (если у вас однопроцессорная система с менее чем 3 ГБ оперативной памяти). Как правило, произвести такую подмену на обычной Windows XP вам не удастся, так как включенное в ее состав свойство Windows File Protection (WFP) зорко стоит на страже целостности системы. Методов отключения (обхода) WFP существует много, и здесь мы их рассматривать не будем. Воспользуемся самым простым и не требующим никакого дополнительного программного обеспечения способом.
Внимание! Невнимательное или неправильное выполнение дальнейших инструкций может привести к возникновению серьезных проблем, вплоть до необходимости переустановки системы! К таким же последствиям может привести внезапное отключение электропитания вашего компьютера!
- Войдите в каталог %WINDIR%\system32 и скопируйте файл ntoskrnl.exe в ntoskrnl.temp.
- Войдите в каталог %WINDIR%\Driver Cache\i386 и переименуйте файл sp2.cab в sp2.temp.
- Войдите в каталог %WINDIR%\SYSTEM32\dllcache и переименуйте файл ntoskrnl.exe в ntoskrnl.temp.
- Скопируйте один из файлов ядра из каталога Files набора обновлений в каталог %WINDIR%\system32 под именем ntoskrnl.exe.
- Сработает WFP и вы увидите сообщение:
- Нажмите Отмена и ответьте Да на последующий запрос:
- Создайте в удобном для вас месте каталог, например, C:\MyKRNL для будущих "новых" файлов ядра, снова запустите программу TuneUp Styler и пройдите в основное окно Boot Screen.
- Выберете ваш загрузочный экран и щелкните кнопку Install Boot Screen.
- Теперь снова войдите в каталог %WINDIR%\system32 и скопируйте файл TUKernel.exe в каталог C:\MyKRNL под тем же именем, с которым хранится исходный файл в каталоге Files набора обновлений.
Повторив перечисленные операции (начиная с копирования одного из файлов в каталог %WINDIR%\system32 под именем ntoskrnl.exe) для остальных трех файлов ядра, вы снова получите их полный набор, но теперь уже с вашим загрузочным экраном.
Не забудьте вернуть систему в исходное состояние!
Для этого:
- Войдите в каталог %WINDIR%\system32 и переименуйте файл ntoskrnl.temp в ntoskrnl.exe;
- Войдите в каталог %WINDIR%\Driver Cache\i386 и переименуйте файл sp2.temp в sp2.cab;
- Войдите в каталог %WINDIR%\SYSTEM32\dllcache и переименуйте файл ntoskrnl.temp в ntoskrnl.exe.
Способы использования модифицированных файлов ядра
Использовать полученный набор файлов ядра можно разными способами:
Создание пакетного файла для выбора ядра
Следующий пакетный файл, является простым скриптом, который читает параметр NUMBER_OF_PROCESSORS из системного реестра, а затем выбирает соответствующий файл ядра.
FOR /F "tokens=3 delims= " %%A IN (`REG QUERY "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v NUMBER_OF_PROCESSORS`) DO SET NUMBER_OF_PROCESSORS=%%A
bootcfg /copy /D "Windows XP Professional" /ID 1
if %NUMBER_OF_PROCESSORS%==2 goto DUAL
REM ----For Single proc
bootcfg /RAW "/Kernel=singkrnl.exe" /A /ID 2
goto End
:DUAL
REM ----For Multiprocess/Hyperthread proc
bootcfg /RAW "/Kernel=dualkrnl.exe" /A /ID 2
:End
bootcfg /Timeout 2
bootcfg /Default /ID 2
Этот скрипт делает копию оригинальных параметров входа в систему, находящихся в boot.ini, и озаглавливает их как "Windows XP Professional". Затем добавляет в конец /kernel, чтобы использовать другой файл ядра, затем устанавливает задержку на 2 секунды, и наконец устанавливает новое ядро по умолчанию.
Если вы хотите использовать другие названия для ваших файлов ядра, я уверен, что вы сообразите, где изменить их. Если вы хотите установить другую задержку, только измените число после ключа /Timeout. Если вам не нужна задержка времени, введите 0.
Сохраните этот пакетный файл как bootscreen.cmd, скажем, в $ОЕМ$ директории. И сли хотите чтобы bootscreen.cmd сработал при первом входе в систему, то запускайте его из GuiRunOnce.
Подмена оригинальных файлов ядра в дистрибутиве
Если вы хотите "навсегда" расстаться с оригинальным загрузочным экраном Windows default, можете подменить оригинальные файлы ядра в дистрибутиве своими.
Сделать это можно, или самостоятельно перепаковав архивы SP2.CAB, ntoskrnl.ex_ и ntkrnlmp.ex_ в каталоге \I386\ вашего дистрибутива с заменой соответствующих файлов.
Комментарии (0)