Патчим современное приложение для работы под Windows 2000

Если вы думаете, что Windows 2000 умерла, это далеко не так, она прекрасно трудится на старом железе, пусть без патчей безопасности, но в домашней интрасети это простительно. Устаревшая система на устаревшем Pentium-4 что может быть прекрасней? Да и ностальгические чувства зачастую требуют вернуться к старому интерфейсу, чтобы ощутить себя на полтора десятка лет моложе.

Конечно, OS/2 смотрелась бы еще лучше, но c ней большие проблемы с современным софтом. На Windows 2000 проблем тоже хватает. Например, утилита по восстановлению удаленных файлов отказалась работать. Выдает якобы, что исполняемый файл не является приложением Win32. На Windows 7 при этом работает прекрасно.



Чтож, посмотрим что случилось с PE-заголовком exe-файла. На первый взгляд ничего подозрительного. Но после детального анализа и сличения документации, выясняется, что слишком большие цифры в параметрах OS Version 5.01 и Subsystem Version 5.01 являются непреодолимым препятствием для запуска нашего файла под Windows 2000.



Исправим на OS Version 1.00 и Subsystem Version 3.10, контрольную сумму установим равную нулю, пропатчим файл.



После этого Windows 2000 начинает запускать файл, проблемы решены.

В заключение приведу побайтовое сравнение внесенных изменений:

Сравнение файлов repair1.exe и REPAIR2.EXE
00000138: 05 01
0000013A: 01 00
00000140: 05 03
00000142: 01 0A
00000150: F0 00
00000151: 38 00
00000152: 0D 00
Метки:
Поделиться публикацией
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама
Комментарии 13
  • 0
    Хм интересно, надо попробовать на другом софте.
    • +3
      Конкретные смещения бесполезны: смещение до PE заголовка может быть разным. Ну и нужно помнить об импортах, которых может тупо не быть на старой операционке.
      • 0
        Я бы вообще посоветовал в таком случае воспользоваться, к примеру — FileInsight, который позволяет определять свои структуры, и имеет парочку встроенных, например для PE-заголовков.

        Примерно так (см. поле MajorOperatingSystemVersion):
        Скриншот

        • 0
          У автора используется HIEW который прекрасно подходит для исправления заголовков.
          • 0
            Виноват, не пользовался HIEW, подумал что это просто Hex-редактор.
            • 0
              Который и есть HEX-редактор…
              • 0
                Ещё и дизассемблер и редактор PE заголовка.
                К тому же платный. Интересно, автор приобрел лицензию?
                • 0
                  Для 32-битных приложений достаточно и демо версии
      • +3
        Не с каждой программой так получится. В Windows 7 немного другая структура взаимодействия DLL, или что-то в этом роде. Пробовал так перенести на XP игру в шахматы Chess Titans, не получилось.
        • +2
          Иной раз даже на XP нельзя перенести просто так, там могут использоваться функции WinAPI, которых нет в XP.
          Более того, иной раз даже с Win 8 в Win 7 нельзя.
          • +3
            Безусловно, метод пройдёт не с любым приложением — помню как Doom 3 официально не работал на Win98 из-за того, что API изменилось, и данные раньше отдавались в байтах, а начиная с XP — в мегабайтах (или наоборот), но фанаты его патчили. Но ведь есть и приложение, где авторы просто перестраховались и «на всякий случай» выставили минимальную версию довольно высокой. Таким программам эти махинации помогут, что безусловно классно :-)
            • 0
              Утилита PE Tool позволяет сделать подмену версии из командной строки и бесплатно (ссылка открытым текстом из-за кармы): http://www.cantorsys.com/2017/03/Pet.html. Интересно будет получить отклик.
              • 0
                Если так нужно запускать новые приложения на Windows 2000, то лучше воспользоваться обновлением от японского хакера blackwingcat, которое не только даёт запускать приложения с большими минимальными версиями, но и добавляют в экспорты системных библиотек некоторые нужные функции. Там же можно поискать обновления для XP, к сожалению, только для 32 бит.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.