Как Windows 95 искала установщики по ключевым словам: история примитивного детекта

В середине 1990-х годов, когда персональные компьютеры только начинали входить в каждый дом, операционная система Windows 95 столкнулась с нетривиальной задачей: как отличить программу установки от обычного исполняемого файла? Разработчики Microsoft нашли решение, которое сегодня кажется удивительно

Как Windows 95 искала установщики по ключевым словам: история примитивного детекта

В середине 1990-х годов, когда персональные компьютеры только начинали входить в каждый дом, операционная система Windows 95 столкнулась с нетривиальной задачей: как отличить программу установки от обычного исполняемого файла? Разработчики Microsoft нашли решение, которое сегодня кажется удивительно наивным — они заставили систему искать в файлах «магические слова» вроде Setup, Install или Update. Этот метод работал, но далеко не идеально, и его история стала яркой иллюстрацией того, как эволюционировали подходы к безопасности и пользовательскому опыту.

Что такое «магические слова» и как они работали

Бывший разработчик Microsoft Рэймонд Чен, известный своими мемуарами о внутренней кухне компании, недавно раскрыл детали этого механизма. В своём блоге он рассказал, что Windows 95 сканировала исполняемый файл на наличие определённых подстрок. Список ключевых слов был жёстко зашит в коде системы и включал несколько десятков вариаций на разных языках, таких как «Setup», «Install», «Update», «Patch» и их локализованные версии. Если хотя бы одно из этих слов обнаруживалось в любом месте файла, Windows 95 помечала его как установщик.

Почему Microsoft выбрала именно такой подход?

В то время не существовало универсальных стандартов для идентификации установщиков. Современные методы, такие как цифровые подписи или анализ структуры PE-файла, были либо недоступны, либо слишком ресурсоёмки для массового использования. Windows 95 работала на компьютерах с процессорами 386 и 486, где каждый такт был на счету. Простой поиск подстрок не требовал сложных вычислений и мог выполняться быстро даже на слабом оборудовании. Кроме того, большинство установщиков того времени действительно содержали в своём коде слова вроде «Setup» — это была негласная конвенция среди разработчиков. Так что решение, хотя и примитивное, оказалось практичным для своего времени.

Как это влияло на пользовательский опыт

Когда Windows 95 находила «магическое слово», она меняла иконку файла на характерную «коробку с диском» и добавляла в контекстное меню пункт «Установить». В Windows 95 не было системы контроля учётных записей (UAC), поэтому никаких дополнительных проверок прав не проводилось. Это означало, что любой файл, содержащий слово «Setup», мог быть запущен с полными привилегиями, что создавало потенциальные риски безопасности. Однако в эпоху, когда интернет только начинал распространяться, а вирусы были редкостью, такие угрозы не воспринимались всерьёз.

Какие проблемы возникали из-за этого метода?

Главным недостатком были ложные срабатывания. Текстовый файл, содержащий слово «Setup», мог быть ошибочно принят за установщик. Например, если пользователь создавал документ с инструкцией по установке программы, Windows 95 могла предложить его «установить», что приводило к путанице. Более того, злоумышленники могли легко обмануть систему, просто добавив нужное слово в название или код вредоносного файла. Алгоритм не анализировал структуру PE-файла, не проверял цифровые подписи и не обращал внимания на контекст — только грубый поиск подстрок.

Эволюция механизмов обнаружения установщиков

Сегодня методы детекции установщиков стали гораздо сложнее. Современные операционные системы, такие как Windows 10 и 11, используют манифесты приложений, цифровые подписи и эвристический анализ для определения типа файла. Например, установщики Windows (MSI) имеют строгую структуру и проверяются на целостность. Кроме того, UAC требует подтверждения прав администратора перед запуском любого потенциально опасного файла. Тем не менее, некоторые примитивные подходы всё ещё используются: например, антивирусы часто сканируют файлы на наличие характерных строк, но уже в сочетании с другими методами.

Какой урок можно извлечь из этой истории?

История с Windows 95 напоминает, что даже в крупных компаниях принимают временные, несовершенные решения, которые со временем заменяются более надёжными. Для разработчиков и энтузиастов это ценный пример того, как эволюционируют технологии и как важно учитывать контекст эпохи. Сегодняшние механизмы безопасности кажутся нам естественными, но они стали результатом десятилетий проб и ошибок.

Что осталось неизвестным

Рэймонд Чен не раскрыл полный список всех ключевых слов, которые использовала Windows 95. Также неясно, применялся ли аналогичный подход в Windows 98 или других версиях. Возможно, эти детали навсегда останутся в архивах Microsoft. Однако сам факт существования такого механизма даёт пищу для размышлений о том, как далеко мы продвинулись в области пользовательского опыта и безопасности.

Заключение

Метод поиска установщиков по ключевым словам в Windows 95 — это яркий пример «костыля», который работал, но был далёк от совершенства. Он показывает, как разработчики решали сложные задачи в условиях ограниченных ресурсов. Сегодня такой подход кажется наивным, но в середине 1990-х он был вполне разумным компромиссом. История учит нас ценить современные технологии и помнить, что даже гиганты индустрии начинали с малого.