Автор: Unknown BIOS (не проверено) , 14 октября 2006
А также 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)
Вот выдержка из него.
[list]
.0031F3A6: E847420000 call .0003235F2 --- (1)
.0031F3AB: E82868FFFF call .000315BD8 --- (2) (проверка на 80486 и более камень)
.0031F3B0: 84C0 test al,al
.0031F3B2: 740B je .00031F3BF --- (3) (если успешно)
.0031F3B4: 686D230000 push 00000236D --- (4) (номер сообщения в таблице)
.0031F3B9: E8B0480000 call .000323C6E --- (5)
.0031F3BE: 59 pop ecx
.0031F3BF: E85868FFFF call .000315C1C --- (6) (проверка на CPUID)
.0031F3C4: F6C401 test ah,001
.0031F3C7: 750B jne .00031F3D4 --- (7) (если успешно)
.0031F3C9: 688C230000 push 00000238C --- (номер сообщения в таблице)
.0031F3CE: E89B480000 call .000323C6E --- (9)
.0031F3D3: 59 pop ecx
.0031F3D4: 381DA1E53300 cmp [0033E5A1],bl
.0031F3DA: BE50E03300 mov esi,00033E050
.0031F3DF: 0F858C040000 jne .00031F871 --- (A)
.0031F3E5: 8BBD1CFEFFFF mov edi,[ebp][-000001E4]
.0031F3EB: 6872E33100 push 00031E372 ;'osloadoptions'
.0031F3F0: 57 push edi
.0031F3F1: FF7508 push d,[ebp][08]
.0031F3F4: E8E3D0FEFF call .00030C4DC --- (C)
.0031F3F9: 3BC3 cmp eax,ebx
.0031F3FB: 0F84C5000000 je .00031F4C6 --- (D)
[/list:u]

Как патчить - можно догадаться. Отключить эти проверки.

НО! Этого недостаточно. Нужно еще пересчитать контрольную сумму в PE-заголовке, а потом "склеить" 1 и 2-ую части файла. Вуаля!

Дополнительно проверка на CPUID и CMPXCHG8B осуществляется в файле SETUPLDR.EXE (SETUPLDR.EX_) - это обычный PE-файл.

P.S. По аналогии можно сделать и с Windows 2003 Server и с Windows XP c SP1, c русскими версиями наверное тоже можно разобраться.

P.S.P.S. Для ленивых: Патченый файл могу выложить или выслать по почте.
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

vk6666

19 лет 4 месяца назад

Повторюсь: Вы сами видели 486 плату в которой было установлено или хотя бы можно было установить 64 MB Ram?

у меня дома сейчас лежит, я же о ней в соседней ветке писал...
128 метров SIMM на ней запросто пашут...

vk6666

19 лет 4 месяца назад

а потом переставить винч с ней на ту машину, где она требуется. Для НТ4 никаких шаманств не требуется,

подтверждаю, на моей четвере виннт так и поставлен - ставил на к6, а винч потом перекинул на 486 (ну нету у нее загрузки с сидюка, да и NTёвых загрузочных дискет ТЕПЕРЬ тоже нет (убил их старый флоповод)

Root

19 лет 4 месяца назад

ЗЫ: а такой вариант никто не пробовал?
Берем NT3.51, ставим на старую машинку (она, ессно, ставится, т.к. достаточно убойная и тупая ось), а потом грейдить ее до NT4?

vk6666

19 лет 4 месяца назад

Root,
ИМХО - онанизм... если 386 - то повиснет на первом запуске, а если на 486м - то нафиг надо - ее итак на нее можно ставить, с нуля..
так всё-таки, удалось кому-либо в истории "386 + NT4" ?
насколько я понял, NT4 просто использует команды 486го проца, которых нет в 386м. Или кто-то запарился ядро преписать?
Есть в коллекции несколько материнок 386х, в одной установлено 32Мб (4Мб*8).
[offtop]486ые как-то не заинтересовали... следующий объект коллекционирования - PPro, ну, на нём и так всё работает[/offtop]

vk6666

19 лет 1 месяц назад

2 74ALS00
NT4 как я уже писал повисает на 386м :( причем было испробовано все - и установка на ее винч на другом компе (что с 486м запросто прокатывало) и установка на нем, и куча ИДЕ контроллеров, и шамашство с бивисом - все по нулям, зато 3.51 сервер пашет на ура (на моем 386м 20 метров оперсклероза - 3.51й сервак просто летает)

savely

19 лет 1 месяц назад

А ядро выбирать пробовал? Ведь, к примеру, при формальном требовании пня 2K ставится на 486.

vk6666

19 лет 1 месяц назад

2 savely_s
пардон... 2000 я на 486 ставил совершенно без проблем, он даже не матюгнулся, и завелся с первого раза, а вот 386 и НТ4 - другое дело, тем более что имеется ввиду под "выбирать ядро" ?

ivp

19 лет 1 месяц назад

2 vk6666
В тот момент, когда установщик предлагает выбрать дополнительный контроллер по F6, нажать F5, далее сами разберетесь...

geodimetr

19 лет 1 месяц назад

NT4 на 386-й сам видел, знаю (примерно) как народ ее туда взгромоздил... кроме сопроцессора и приличного объема памяти (28 метров на нее втыкали) других особых условий не упомню...