Зацепка: В одном из сегодняшних дайджестов промелькнул короткий пассаж про раннюю цифровую дистрибуцию id Software и группу GNOMON, которая через 39 дней после релиза выпустила QCRACK.EXE — кряк, открывавший все «зашифрованные» игры на компакт-диске Quake. Я сначала подумал, что это просто очередная байка про подростков-реверсеров из 90-х. Но чем глубже копал, тем яснее становилось: это не «хакерская байка», а техническое вскрытие целой бизнес-модели, которая сегодня кажется нам дико знакомой — ровно потому, что она же, но в правильной инкарнации, привела нас к Steam, Epic Games Store и подписочным сервисам. История про то, как security by obscurity убила первый честный эксперимент с цифровой монетизацией, и почему Carmack после этого больше никогда не пытался продавать игры через физический носитель со встроенным шифрованием.
Август 1996 года, на полках CompUSA по всей Америке появляется Quake Shareware CD-ROM. Цена — $9.95. На диске — shareware-версия Quake (22 МБ) и каталог ранних игр id Software, зашифрованных по технологии TestDrive Corp. Идея была красивая и абсолютно в духе времени:
То есть id Software хотела превратить shareware-диск в универсальный каталог: pay-one-price-for-CD, pay-one-phone-call-for-unlock-the-whole-thing. Это за 11 лет до Steam, за 14 лет до Xbox Live Arcade, за 22 года до Epic Games Store. И это работало на одной из самых неудобных инфраструктур 90-х — стационарном телефоне. В 1996 году это было технологическим хулиганством.
30 августа 1996 — релиз.
8 октября 1996 — группа GNOMON выкладывает Quakecrk.zip, содержащий QCRACK.EXE, кряк, открывающий все игры на диске.
39 дней. Не три месяца. Не «когда-нибудь потом». Меньше шести недель.
Это самое интересное. Группа GNOMON не взламывала шифрование в каком-то криптографическом смысле. Они взломали архитектуру доверия. И взлом был настолько прост, что Fabian Sanglard в 2026 году восстановил его в одиночку, имея под рукой только диск и текстовый редактор.
Вот что лежало на компакт-диске:
.MJ3-файл (зашифрованный .EXE) и соответствующий ему кусок .ST3 (таблица, нужная для восстановления).FLOW.EXE — графический интерфейс разблокировки. Она умела генерировать SERIAL из CHALLENGE локально.PAGEMKR — все куски .ST3 (то есть все таблицы для всех игр).FLOWDIR — plain-text версия SKU.TXT, которая полностью повторяла содержимое зашифрованного SKU.17. То есть шифрование базы данных игр было декоративным — рядом лежал незашифрованный дубликат.Самое главное открытие GNOMON, которое убило всю систему:
SERIAL, который выдавался по телефону, не содержал никакого секрета. Это был просто «proof of payment».
То есть TestDrive Corp и id Software построили систему так, что unlock-код генерировался той же самой логикой, что жила на диске. CHALLENGE → несколько шагов преобразования через CODENAME игры, DOC-файл, XOR-таблицу, обратный 7-битный ход и две константы (0x18 и 0x83 + 0x1EA3/0x1700A1) → SERIAL. Звонок по 800-номеру добавлял только факт оплаты, а реальный криптографический секрет не существовал в природе.
Формула, которую реверснул Санглар:
unlock = ((reverse7(GAME_ID) + MEM + 0x18) & 0x7F)
+ 0x83 * ((MEM ^ 0x1EA3) + 0x1700A1)
Всё. Любой, кто знал эту формулу, мог сгенерировать валидный SERIAL за миллисекунду, вообще не звоня никому. И GNOMON её узнали.
А потом ещё выяснились мелочи, которые превращают историю из «хакерского триумфа» в «инженерный бардак»:
.DIR библиотеки не было ни зашифровано, ни скремблировано — реверс формата занял у группы GNOMON считанные часы..TMP, бэкапы .BAK, и программа ENCRYPT.EXE, которая вообще не использовалась в финальной версии.Сам Sanglard пишет об этом с убийственной формулировкой:
«Никогда не приписывайте злому умыслу то, что можно объяснить глупостью. И никогда не приписывайте глупости то, что можно объяснить нехваткой времени». Бритва Фаба.
Цифры из Masters of Doom Дэвида Кушнера (биография, ставшая канонической):
«Эксперимент с retail shareware у Quake оказался катастрофическим. В теории id собиралась убрать розничных посредников, позволив геймерам купить shareware-диск и затем позвонить по 800-номеру, чтобы получить пароль для разблокировки остальной части игры. Но геймеры не теряли времени на взлом shareware, чтобы бесплатно открыть полную версию. Что ещё хуже, рутина дистрибуции и обработки заказов вышла из-под контроля. В отчаянной мере id попыталась притормозить retail shareware, но было уже поздно. Они застряли с почти 150 000 дисков на складе».
150 тысяч CD-ROM по $9.95 — это ~$1.5 миллиона убытков в закупках, плюс расходы на складирование, плюс репутационная катастрофа, плюс потеря контроля над монетизацией.
Контраст с параллельной реальностью того же года поражает:
То есть id Software одновременно построила работающую модель бесплатной дистрибуции через интернет и неработающую модель защищённой монетизации через CD. Первая победила. Вторая умерла так быстро, что о ней почти никто не помнит — а зря, потому что именно она была технической базой, на которой позже выросли все современные цифровые магазины.
И вот ещё одна цифра, которую мало кто вспоминает: в том же 1996 году id Software принесла $15.6 миллиона выручки и сделала мультимиллионерами всех шестерых сооснователей. Carmack, Romero, Adrian Carmack, Jay Wilbur, Kevin Cloud, Michael Abrash. Убыток от 150 тысяч дисков был для них финансовой царапиной. Но они запомнили её надолго.
Сама система TestDrive Corp — это отдельная история, и она гораздо интереснее, чем сам кряк. TestDrive придумали «denaturing» исполняемых файлов:
.EXE..MJ3..ST3.Концептуально это попытка превратить коммерческое ПО в физический shareware: покупаешь диск, но играбельно только то, что не закрыто ключом. Захотел полную версию — плати, получаешь unlock.
У TestDrive было два патента США на эту механику:
Сам TestDrive Corp базировался в Принстоне, штат Нью-Джерси, и идеологически был наследником модели shareware, но пытался сделать её корпоративно-безопасной для издателей. Их клиентами в начале 90-х были Lotus, Adobe, Borland. Они были реальной компанией с реальными клиентами.
Но в 1996 году их технология впервые столкнулась с реальной массовой аудиторией, которая была не просто «домашний пользователь с дискетой», а интернет-аудитория, умеющая пользоваться отладчиком. И тут архитектура, рассчитанная на физический магазин с обезличенной покупкой, мгновенно превратилась в картонную декорацию.
Позже TestDrive пыталась пивотировать в сторону корпоративного софта и онлайн-активаций, но их технология так и осталась в 90-х. Они пытались переизобрести Steam за 20 лет до того, как инфраструктура позволила это сделать по-настоящему.
Если посмотреть на хронологию дальше, история становится ещё интереснее:
Меня здесь зацепило три вещи, и каждая из них — самостоятельный пласт.
Во-первых, это урок про security by obscurity в его чистом, дистиллированном виде. TestDrive Corp зашифровала базу SKU.17. Рядом положила незашифрованный SKU.TXT. Carmack и id Software не заметили этого — потому что в их модели мира диск — это артефакт, который покупатель получает один раз и больше не трогает. Они не думали моделью атакующего, который будет разбирать диск по байтам. В этом смысле QCRACK.EXE — не реверс-инжиниринг хитрого хакера, а обнаружение архитектурной ошибки, которую инженер TestDrive Corp оставил в спешке. Если бы вынести на обсуждение, мы бы сказали: «это баг, это не фича, это нужно удалить перед релизом». Но файлы .BAK, .TMP, незашифрованный .TXT поплыли на мастер-диск.
Во-вторых, это урок про распределение времени. Цитата Санглара — «никогда не приписывайте глупости то, что можно объяснить нехваткой времени» — идеально описывает не только TestDrive, но и весь проект Quake в целом. Они одновременно дописывали Quake, делали shareware-релиз через интернет, готовили retail CD, вели переговоры с TestDrive, согласовывали дизайн коробки, и некогда было вычитывать диск. У них был один программист (Jay Wilbur), один «biz guy», плюс сам Carmack. Они строили бизнес-модель, которую невозможно было построить в то время. И у них не было ресурсов отшлифовать её до рабочего состояния.
В-третьих — и это самое тонкое — это урок про то, как рождаются новые модели распространения. id Software одновременно создала две модели:
Carmack и id этот опыт преподал бесплатно: будущее цифровой дистрибуции — это интернет + авторизация на сервере, а не шифрование на носителе. Valve понадобилось ещё 7 лет, чтобы материализовать этот урок в Steam. Современные студии тратят миллионы на DRM-защиты, которые ломаются за неделю, хотя история 1996 года даёт простой рецепт: не клади то, что хочешь защитить, на диск.
Если свести историю Quake shareware CD к одному абзацу — получается так: за 30 лет до прихода Steam группа хакеров за 39 дней доказала, что универсального способа защитить цифровой контент от реверса на пользовательском устройстве не существует. И это знание, в общем-то, так и осталось непоколебимым — изменилась только экономика: раньше за взлом платили энтузиасты денег и славы, сегодня за него платят рынки пиратства. Принцип тот же. Серверная валидация — единственное, что реально работает, потому что она не пытается скрыть ключ на устройстве пользователя, а делает так, чтобы устройство пользователя без сервера не могло ничего запустить.
Quake shareware CD — это не «провал 1996 года». Это натурный эксперимент, показавший, что любая DRM-схема без серверной компоненты обречена. Carmack потом, в 2000-х, открыто говорил, что самые успешные PC-игры — это те, где DRM либо отсутствует, либо минимален, потому что конверсия пиратов в покупателей зависит не от защиты, а от удобства. В 1996-м id Software попытались сделать «удобную защиту», и эта попытка оставила их с 150 тысячами мёртвых дисков и одним хорошим уроком на следующие тридцать лет.
Сегодня Valve, Epic, Apple, Google используют ровно ту архитектуру, которой не существовало в 1996-м: никакого шифрования на устройстве, авторизация через облако, и каждая покупка привязана к аккаунту, который живой, пока живой аккаунт. В 1996-м этой архитектуре мешали три вещи: отсутствие широкополосного интернета у большинства домохозяйств, отсутствие дешёвого облачного хранения, и отсутствие привычки платить за цифровой контент через подписку. Все три барьера к 2003 году пали — и Steam стал возможен.
QCRACK.EXE был не взломом шифрования. Он был взломом бизнес-модели, которая пыталась обойтись без инфраструктуры, без серверной валидации и без постоянного подключения. Урок, который индустрия усвоила за 7 лет: не пытайся продавать то, что лежит на диске у покупателя. Продавай доступ к тому, что лежит у тебя.