Три предыдущие статьи секции описывают модификацию файлов uxtheme.dll, tcpip.sys и sfc_os.dll. У вас, наверное, возник вопрос: а что если нужно изменить какой-нибудь другой системный файл (например, экран привествия)? Если вы модифицируете системный файл при помощи редактора ресурсов типа ResEdit или Resource Hacker, и включите его в дистрибутив, то во время инсталляции системы неизбежно получите ошибку копирования. Программа установки Windows проверяет контрольную сумму всех копируемых файлов, и в случае несовпадения отказывается копировать. Утилита ModifyPE корректирует контрольную сумму, и как слдествие файл воспринимается как родной.
Загрузите ModifyPE отсюда и распакуйте утилиту из архива в %windir%\system32 для простоты использования.
Пример использования ModifyPE
В нашем примере модифицируется файл shell32.dll. Из командной строки выполните следующую команду:
modifyPE.exe shell32.dll -c
а затем
makecab shell32.dll
Подробнее об используемых тут командах вы можете прочитать в Справочнике (статья Сжатые файлы). На выходе мы получаем сжатый файл shell32.dl_. Теперь надо просто скопировать его в директорию i386 вашего дистрибутива и согласиться на перезапись.
Несмотря на то, что программа установки Windows допустит копирование файла, по окончании установки в файл setuperr.log вносится запись о том, что файл не имеет цифровой подписи Microsoft. Возможна ситуация, когда при проверке целостности файлов Windows захочет восстановить оригинальный файл. Как отключить проверку системных файлов вы уже знаете.
Примечания
Команда makecab нужна только если вы работаете с изначально сжатым файлом.
ModifyPE можно использовать с любыми системными файлами как английской версии Windows XP, так и прочих локализованых версий.