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

В середине 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-х он был вполне разумным компромиссом. История учит нас ценить современные технологии и помнить, что даже гиганты индустрии начинали с малого.