Wise Installer - легендарный инсталлятор из 1990-х годов, который долгое время использовался для установки разнообразных программ и утилит. Его разработала команда Wise Solution, и этот установщик пользовался популярностью благодаря своей эффективной и гибкой системе установки софта. Однако с течением времени формат инсталляционных пакетов Wise Installer стал практически заброшенным, а утилиты для работы с ним - устаревшими и редкими. Несмотря на это, многие винтажные дистрибутивы и утилиты всё ещё существуют, и возникает необходимость в их установке и исследовании. Особенно это актуально, когда программы требуют наличия "главной программы" или других условий, без которых инсталлятор отказывается работать.
В таких ситуациях применяются методы реверс-инжиниринга, позволяющие понять логику проверок и, при необходимости, обойти их. Начинать ознакомление с Wise Installer стоит именно с анализа внутренней структуры инсталляционных пакетов и их скриптов. В отличие от современных решений, формат Wise Installer мало документирован, что усложняет задачу анализа. Также традиционные средства распаковки либо устарели, либо доступны лишь на архивных ресурсах. Среди популярных утилит можно выделить WiseUnpacker, ExWise, HWUN и E_WISE, однако их функционал сводится в основном к распаковке архива, без восстановления имён файлов или декомпиляции скриптов загрузки.
В отличие от них, существуют попытки создать средства с возможностью анализа и декомпиляции инсталляционных скриптов, например, утилита REWise. Обращение к свежим методам реверса Wise Installer начинается с загрузки дистрибутива в отладчик, например, x32dbg или x64dbg. При запуске с отладчиком можно прервать процесс установки на этапе появления ошибки, связанной с отсутствием требуемой основной программы, и провести анализ стеков вызовов. Это даёт информацию о том, какие функции и библиотеки отвечают за проверку условий установки. В случае Wise Installer важным элементом является библиотека glcb36c.
tmp или похожие по названию, которые появляются в системном временном каталоге и реализуют ключевые функции инсталлятора. Их имена часто меняются при каждом запуске, однако содержимое и функционал остаются теми же. Извлечь и проанализировать эти библиотеки позволяет дизассемблер IDA Pro - можно найти основную функцию WiseMain и проследить логику вызовов. Главная сложность при проведении реверс-инжиниринга заключается в том, что установка построена вокруг собственного интерпретатора скриптов. Выполнение этих скриптов происходит через обработчик opcode, в котором последовательность команд кодируется в особом формате.
Анализ команд, их параметров и эффектов требует тщательного трейсинга и логирования в отладчике. Несмотря на использование отладочных утилит и дизассемблеров, идентифицировать конкретные операции и понять их назначение без документации сложно. Нередки случаи, когда инсталлятор в работе динамически загружает свои компоненты с временным переименованием и размещением в временных каталогах, что делает расстановку точек останова сложной задачей. Однако современные инструменты отладки дают возможность "ловить" точки входа DLL и отслеживать вызовы функций из таких временных библиотек, что облегчает проведение анализа. Получение лога последовательности выполняемых команд позволяет построить карту работы скрипта установки.
На практике часто встречается ситуация, когда утилита отказывается устанавливаться без наличия "главной программы", из которой она изначально была частью. Сообщение об ошибке выводится через окно с использованием функции DialogBoxParamA, и нервом работы служит именно проверка подсистем инсталлятора. Чтобы обойти такую проверку, требуется модифицировать логику обработки интерпретатора инсталляционного скрипта, подавляя или игнорируя ошибочные условия. Одним из путей является перехват и изменение параметров команд во время исполнения скрипта - например, можно заставить считать, что необходимая основная программа установлена, даже если физически её нет. Другой подход - извлечь и декомпилировать сам установочный скрипт, а затем изменить или удалить проверяющие его части.
Для этого применяется модифицированное программное обеспечение, такое как отладочный вариант REWise с включённой опцией декомпиляции. Результат - подробный лог или даже обратный код установки, который позволяет понять структуру скриптовых команд и их параметры. На основе этого можно вручную или автоматизированно настраивать сценарии установки для обхода ограничений. Современным исследователям и энтузиастам винтажного ПО полезно восстановить порядок работы Wise Installer и понять особенности его внутреннего скриптового движка. Это интересно не только для возможного возрождения старых утилит, но и для получения фундаментальных знаний о принципах инсталляционных технологий 1990-х.
Изучение таких проектов помогает развить навыки реверс-инжиниринга и расширяет понимание истории программного обеспечения. Важно отметить, что изучение и модификация установщиков должны проводиться исключительно в образовательных и исследовательских целях, с уважением к копирайтам и правам разработчиков. Использование подобных методик для обхода лицензий или иных ограничений является незаконным и неэтичным. В заключение, работа с винтажным Wise Installer - это увлекательный вызов, объединяющий в себе навыки ассемблерного программирования, динамического анализа процессов, дизассемблирования и реверс-инжиниринга скриптов. Процесс обхода проверок установки сводится к выявлению точек контроля внутри скриптов и изменению их поведения с помощью отладчиков и специальных утилит.
Несмотря на кажущуюся сложность, грамотный подход и изучение механизмов Wise Installer открывают широкие возможности для работы со старым программным обеспечением, позволяя сохранять и поддерживать цифровое наследие прошедших эпох. .