А также WindowsNT4/2000 на 80386 (если угодно)...
Инструментарий:
1)Hiew by SEN. (patching)
2)Heaventools PE Explorer 1.95 (для просмотра ресурсов сообщений во 2-ой части setupldr.bin/cmldr)
Почитав форум и порывся в инете, а также покопався в дистрибутиве ХП СП2 нашел где идет проверка на инструкции CPUID/CMPXCHG8B. Наличие оных требуется для установки данной винды. :idea:
Я копался в аглицкой версии XPюши с SP2.
Файл называется SETUPLDR.BIN (он переименовывается в cmldr при использовании WindowsPE).
Для справки: setupldr.bin (260272) состоит из двух частей:
1-ая: бинарный кусок. (19632) до сигнатуры MZ. (REALMODE загрузчик?)
2-ая: обычный PE-файл. (240640)
Вот выдержка из него.
Как патчить - можно догадаться. Отключить эти проверки.
НО! Этого недостаточно. Нужно еще пересчитать контрольную сумму в PE-заголовке, а потом "склеить" 1 и 2-ую части файла. Вуаля!
Дополнительно проверка на CPUID и CMPXCHG8B осуществляется в файле SETUPLDR.EXE (SETUPLDR.EX_) - это обычный PE-файл.
P.S. По аналогии можно сделать и с Windows 2003 Server и с Windows XP c SP1, c русскими версиями наверное тоже можно разобраться.
P.S.P.S. Для ленивых: Патченый файл могу выложить или выслать по почте.
[/]
У темы появилось продолжение. Был найден драйвер, эмулирующий некоторые инструкции процессора.
Windows SSE Driver for Transmeta Crusoe CPU.
geocities.com/dalex_257/
Дело "за малым" - переписать его для перехвата СPUID, CMPXCHG8B.
А, кстати, каким куcком кода можно заменить инструкцию CMPXCHG8B?
DOOMED TO WALK THE EARTH AS SLAVES OF THE LIVING DEAD.
Увы, драйвер скорее всего не поможет - т.к. ядро грузится/инициализируется до драйвера.
Уважаемые коллеги, в переписке с нашими англоязычными партнерами помните: whether - который, weather - погода, wether - кастрированый баран!
У некоторых людей торс - это просто разветвитель, позволяющий подключить руки и голову к заднице.
Отправить комментарий