30 ноября 2022 30.11.22 79 9386

О том, как мы втроем бодались со StarForce 5.0.8.2

+144
Лучший блог недели
2000 ₽
Всем, кто прочел статью до 1 декабря 12:30 по мск! Я ее дополнил информацией об устройстве компакт-дисков, механике чтения данных с дисков защитами от копирования и добавил информацию об управлении файловой системой драйверами SF.

Однажды на стриме я спросил у Васи Гальперова и Макса Солодилова: а будет ли интересно стопгеймовцам прочитать блог о том, как работали старые защиты от копирования и каким образом отдельные умельцы находили способы их обходить? Ребята живо отреагировали, чем смотивировали меня набросать этот текст.

Речь пойдет о временах, когда игры стоили 400-500 рублей, распространялись вот в таких чудесных джевелах, или, если повезет —  в красивых DVD-боксах, а то и в больших коллекционных коробках с набором памятных вещиц
Речь пойдет о временах, когда игры стоили 400-500 рублей, распространялись вот в таких чудесных джевелах, или, если повезет — в красивых DVD-боксах, а то и в больших коллекционных коробках с набором памятных вещиц

Здесь я некоротко изложу свою «исповедь» о том, как однажды приложил руку к небезызвестному проекту Russian Game Copy World. Данная статья носит развлекательный характер и написана для тех, кто застал те самые времена и хочет узнать побольше о защитах от копирования и том, как с ними боролись, в. т. ч. у нас в стране. Для чего вообще я написал эту статью? Просто я сам хочу таким образом вспомнить, как это было.

Продолжу мысль с предыдущего изображения. Кто бы отказался от такого издания? 
Продолжу мысль с предыдущего изображения. Кто бы отказался от такого издания? 

Текст пишу как есть, он сыроват, кривоват, слабо структурирован и практически без оформления (просто потому в сети уже нет подходящих изображений, которые бы качественно сопроводили написанное). Статьей я также отдаю дань уважения далекому прошлому SG, который, как и многие другие посвященные играм ресурсы, некогда, помимо трейнеров и обзоров, содержал NoCD и NoDVD различных калибров, и тем самым, частично, помогал людям беречь свои лицензионные копии.

Россыпь лицензий той эпохи
Россыпь лицензий той эпохи

По сути, почивший ныне rugcw.com — это форум, где собирались как любители халявы, так и те, кто всеми силами пытался сберечь хрупкий лицензионный оптический носитель с любимой (или не очень) игрой. Увы, материалов и скриншотов с тех времен у меня не осталось, поэтому остается довольствоваться тем, что предлагает archive.org.

Я думаю у многих, кто зашел сюда, этот скриншот вызовет бурный приступ ностальгии:

Это вторая версия "морды" rugcw
Это вторая версия "морды" rugcw

К сожалению, архив не сохранил содержимое тем, поэтому придется восстанавливать все события по памяти.

Будучи завсегдатаем форума и студентом второго курса техникума (или, как модно говорить, колледжа), еще перед получением вышки, я нередко набрасывал как куски кода на самые разные темы, а то и вовсю с любопытством «воевал» с самыми разными защитами от копирования — не без помощи форумов, пиратских дисков, которые приносили друзья, или ресурсов типа gamecopyworld.

Было дело, всеми силами искал по Сети хоть какую-то информацию об устройстве защит от копирования и даже набросал свой дипломный проект на паре языков программирования, который честно различал эмуляцию от «не эмуляции», «свою» болванку от чужой по трем параметрам (тип носителя, искусственно созданные сбойные секторы и ATIP — все как у SafeDisc).

Ликбез о том, как работают системы защиты от копирования на оптических дисках

Здесь наглядно видно разницу между болванками CD и DVD - у них разный окрас активного слоя. Яркий фиолетовый - у DVD (цианин) и желтоватый - у CD (фталоцианин). Но их главная беда в вопросе создания резервных копий лицензионных игр - фиксированное физическое размещение данных исходя из структуры матрицы, которая была использована при штамповке на заводе
Здесь наглядно видно разницу между болванками CD и DVD - у них разный окрас активного слоя. Яркий фиолетовый - у DVD (цианин) и желтоватый - у CD (фталоцианин). Но их главная беда в вопросе создания резервных копий лицензионных игр - фиксированное физическое размещение данных исходя из структуры матрицы, которая была использована при штамповке на заводе

Защита от копирования — по сути, это либо набор библиотек, либо проприеритарный кусок кода, призванный отличать лицензионный диск от нелегально скопированного любыми доступными способами. Исполняемый файл программы, в идеале, должен корректно распознать «подделку», завершая свою работу, и, что немаловажно, не менее корректно распознавать легальный диск, причем так, чтобы корректность распознавания достигала 99,5% запусков, иначе от такой защиты толку мало. Помимо этого все поздние версии защит имеют обфускацию кода, затрудняющую декомпиляцию и реверс-инжиниринг (с целью взлома, конечно же).

Если очень простым языком, данные записываются pits ("ямками") (обозначающими единицу) и пустым пространством lands, обозначающим ноль. Лазер, пробегаясь по дорожке, закрученной по спирали (см. ниже), считывает эти данные, которые могут быть как служебными, отвечающими, например, за обозначение типа диска, субканальные данные или даже за разметку файловой системы, так и "полезными" данными - содержимым файлов. Для разных типов дисков используются разные длины лазеров, что позволяет наносить данные с разной плотностью
Если очень простым языком, данные записываются pits ("ямками") (обозначающими единицу) и пустым пространством lands, обозначающим ноль. Лазер, пробегаясь по дорожке, закрученной по спирали (см. ниже), считывает эти данные, которые могут быть как служебными, отвечающими, например, за обозначение типа диска, субканальные данные или даже за разметку файловой системы, так и "полезными" данными - содержимым файлов. Для разных типов дисков используются разные длины лазеров, что позволяет наносить данные с разной плотностью

Собственно, для того, чтобы считать какую-то область данных, лазерной головке требуется время на то, чтобы передвинуться к нужному участку диска и попасть в нужный сегмент диска. 

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

Самый простой способ — CD Check. Это, по сути, простейшая проверка наличия диска в приводе (распознать, что это CD\DVD-привод легко, в ОС все диски имеют характерную пометку о типе носителя) и пробежаться по структуре папок и файлов, которые должны быть на носителе. Используется с тех пор, как вообще в PC появились CD-дисководы.

Типичный пример стандартного сообщения игры, проверяющей лицензионность с помощью проверки метки диска + типа устройства + структуры папок
Типичный пример стандартного сообщения игры, проверяющей лицензионность с помощью проверки метки диска + типа устройства + структуры папок

Продвинутый способ — редактирование таблицы размещения файлов (ISO-9660) с целью искусственно создать «огромные» файлы, весом в 2-16 ГБ, превышающие емкость носителя. Таким же образом, кстати, создавались мини-образы для игр, хитрым образом накидывая объема к файлам, которые указывали на пустое место.

С какими наиболее популярными защитами мог столкнуться обычный русский пользователь:

CD-Cops. На самом деле, одна из первых защит, которая использовала привязку к типу матрицы диска — паттерну, по которому нанесены данные на поверхность диска. Иными словами — использует особенности геометрии размещения данных на диске. Задержка чтения одних и тех же участков данных, совершенных под определенным углом движения лазера будет одинаковой на дисках из одной партии с одной матрицы и разной на дисках с разной матрицей (например, CD-R\CD-RW болванки имеют свои шаблоны и разительно отличаются друг от друга от партии к партии). На заводе по производству дисков производитель брал один экземпляр диска, прогонял утилитой и получал на выходе CD-KEY, который печатался на диске. CD-KEY содержал как раз описание уникального паттерна всей партии дисков. Ее чаще всего использовали зарубежные разработки.

К сожалению, я сам лично не сталкивался с этой защитой, но смутно помню скриншоты проверки окна, которые находил в Сети. 
К сожалению, я сам лично не сталкивался с этой защитой, но смутно помню скриншоты проверки окна, которые находил в Сети. 

SafeDisc — крайне популярная защита с массой разных версией, устанавливалась почти повсеместно на западные релизы с чуть ли не 1998 года по 2009. Многие могут ее вспомнить по Red Alert 2, серии Need For Speed (особенно Most Wanted 2005 года). С точки зрения копирования может быть болезненно долгой из-за любви создавать поврежденные или слабочитаемые области на диске, а также иметь привязку к субканалу. Эмуляторы распознавать способна, но легко обходится самыми свежими версиями. В отдельных случаях требовались специально написанные утилиты, патчащие реестр, чтобы эмулятор успешно проходил проверку. С этой защитой могли столкнуться обладатели копий игр от Electronics Arts (начиная с ранних C&C), 2K, и Microsoft (MechWarrior 4). Тот, кто возился с NFS: Most Wanted и Civilization IV наверняка вспомнят характерную плашку и файлы вида 00000000.256 в папке с игрой.

SecuROM — некогда сверхпопулярная защита на западе. Использует тот же принцип чтения геометрии размещения данных на диске, что и CD-COPS. Ею были защищены Bioshock, F.E.A.R. The Sims, и многие другие. Эмуляторы распознавать тоже более, чем способна, но легко обходится свежими версиями.
В отдельных случаях требовались специально написанные утилиты, патчащие реестр или перехватывающие опрос приводов, чтобы эмулятор успешно прошел проверку. Получила массу критики за жесткую привязку к железу ПК, за глубокую установку своих драйверов, вызывающих конфликты с ПО и драйверами (привет, StarForce!), за ограничения к количеству активации копий в поздних версиях, за несовместимость с отдельными приводами. Ее проверку сопровождал узнаваемый анимированный курсор с компакт-диском со стрелочкой.

Fable 3 тоже была защищена SecuROM
Fable 3 тоже была защищена SecuROM

StarForce (aka головная боль всея РФ и стран СНГ). Использует тот же принцип чтения геометрии размещения данных на диске, что и CD-COPS\SecuROM. Для взаимодействия с приводами имеет свой уникальный набор драйверов, позволяющих «общаться» с ними на низком уровне, что существенно затрудняет подделку (например, не разрешает запуск копии со снятой геометрией диска с помощью Alcohol\Daemon Tools на CD\DVD-болванке).

Чтобы удалить драйвера StarForce приходилось использовать дополнительную утилиту, которую игроки через жалобы издателям вытребовали у разработчика, поскольку с удалением игры этот весь бардак из системы не вычищался
Чтобы удалить драйвера StarForce приходилось использовать дополнительную утилиту, которую игроки через жалобы издателям вытребовали у разработчика, поскольку с удалением игры этот весь бардак из системы не вычищался

Ранние версии, вплоть до 3.0 не особо хорошо распознавали эмуляторы, однако, с 3.3-3.4 стали настолько агрессивными, что исходили из принципа «свой-чужой». Если в системе оставался единственный привод, то в его случае включался принцип «презумпции невиновности», поэтому самым дельным решением было физически отключать настоящий привод, особенно если он сидел на шине IDE, для которой у StarForce был написан очень мощный инструментарий для взаимодействия. В ряде случаев помогала замена внутреннего (IDE/SATA) привода на дорогие и малодоступные в то время USB-приводы, для которых у StarForce не было своих драйверов, но это было непопулярное решение. Впоследствии умельцы разработали StarFuck и StarForce Nightmare, которые позволяли «на лету» наглухо отключать CD\DVD-приводы на ATA и SATA-контроллерах.

Наверняка у Вас уже ёкнуло сердечко при виде этого окна
Наверняка у Вас уже ёкнуло сердечко при виде этого окна

Однако и здесь разработчики защиты нашли решение: агрессивный сброс ATA\SATA-каналов, который порой ронял приводы из режима DMA в PIO, вынуждая драйвер активно использовать процессор для работы с приводом (вместо прямого обращения к ОЗУ) и, таким образом, серьезно замедляя его работу.
StarForce славился тем, что использовал крайне нестандартные методы борьбы с эмуляцией: тонны хаков и использования недокументированного функционала ОС и ядра с крайне агрессивным поведением в отношении последнего. Пика это достигло, если мне не изменяет память, со StarForce 5.xx.

Интернеты плохо сохранили скриншоты такого ПО, найти их практически не представляется возможным. StarForce Nightmare выглядел вообще как кошмар GUI-дизайнера - просто набор кнопок для отключения IDE\SATA и сброса каналов. 
Интернеты плохо сохранили скриншоты такого ПО, найти их практически не представляется возможным. StarForce Nightmare выглядел вообще как кошмар GUI-дизайнера - просто набор кнопок для отключения IDE\SATA и сброса каналов. 

Например, вы знали, что в Windows можно остановить работу всех процессов, кроме ядра и привилегированных процессов? А в StarForce эту фичу поставили на поток: в определенный момент, когда проверка оптического носителя проходила успешно, драйвер StarForce, находясь в максимально привилегированном состоянии, совершал т. н. «Stop World» с целью поиска виртуальных приводов: если в момент тотального «останова» всех процессов привод не реагирует на команды — значит это фальшивка. И их не волновало, что подобные действия могут запросто уронить другие драйверы (графические, звуковые, и. т. д.) или какой-то системный резидентный софт — то, что машина клиента будет валиться в BSOD их нисколько не волновало. Как и то, что вследствие их действий железо конечного юзера будет работать в режиме пониженной производительности с повышенным потреблением ресурсов.

Со временем Daemon Tools научились работать и с клятым «Stop World», что, к слову, не решало проблему возможных BSOD’ов, но позволяло немного обмануть защиту и пройти проверку — для этого потребовались серьезные доработки драйверов эмуляции. Но до этого момента это была серьезнейшая из проблем для эмуляции.

Обычная практика западных решений, которую агрессивным маркетингом превратили в "фишку" для наших издателей. В ключ зашит паттерн задержек чтения конкретной партии дисков
Обычная практика западных решений, которую агрессивным маркетингом превратили в "фишку" для наших издателей. В ключ зашит паттерн задержек чтения конкретной партии дисков

Как системы защиты от копирования используют особенности оптических носителей

Типичная Copy Protection System использует либо повреждение секторов (SafeDisc, LaserLock, различные ранние проприетарные защиты, написанные самими разработчиками игр, etc), которые сложно точно нанести таким же образом на реплику (т.е. слабочитаемые или вообще нечитаемые), либо идут еще хитрее и замеряют разницу по времени, которая требуется для того, чтобы считать определенный блок данных в определенной последовательности.

В максимально упрощенном виде, защиты типа SecuROM, CD-COPS и StarForce считывают примерно ~140 секторов, разбивая их на блоки примерно по 19 секторов, проходя по ним в обратном порядке, создавая определенный «угол» чтения, с учетом момента вращения компакт диска в приводе. Это означает, что если данные были нанесены на компакт диск идентичным образом — одна и та же штампованная матрица — проход по этим секторам будет занимать приблизительно одно и то же время на разных приводах с минимальным отклонением.

Чтобы хоть как-то визуализировать чтение геометрии диска StarForce, это можно представить примерно таким образом: в обратном порядке основной спирали, со сдвигом на несколько секторов, защита читает данные и прикидывает, сколько времени заняло чтение сектора (с учетом вращения диска и движения лазера). 
Чтобы хоть как-то визуализировать чтение геометрии диска StarForce, это можно представить примерно таким образом: в обратном порядке основной спирали, со сдвигом на несколько секторов, защита читает данные и прикидывает, сколько времени заняло чтение сектора (с учетом вращения диска и движения лазера). 

А для борьбы с мини-образами, которые, по сути, являются хитрым хакнутым «обрезком» полного образа, который возвращает нули вместо файлов (это, как выяснилось был «полезный» баг Daemon Tools\Alcohol, который позволял создавать такие эмулируемые файловые структуры с минимальной стоимостью по объему данных) защита после проверки поверхности еще пробегается по случайным областям диска и читает их содержимое, сравнивая их [контрольные суммы] с тем, что зашито в конкретный релиз.

Про умение StarForce ставить препоны на системном уровне

Более того, поздние версии SF 3 научились замедлять работу файловой системы (жесткого диска) во время параллельного чтения секторов с компакт-диска, что выливалось в серьезную проблему для того же Daemon Tools, который не успевал отдавать нужные данные. Как это работало: StarForce начинал считывать произвольные сектора с CD\DVD, заставляя эмулятор обращаться к жесткому диску, чтобы считать эти данные с образа и предоставить защите в виде эмулируемого компакт-диска. Здесь в дело вступали драйвера SF, которые, обладая высокими правами и эксклюзивным доступом к контроллеру, могли поставить команды операционной системы к жесткому диску в очередь, тем самым мешая эмулятору вовремя считать и отдать данные. В это время StarForce замерял задержку ответа «компакт-диска», замечал, что это время сильно отличается от обычного времени чтения диска и сообщал о «фальшивке». Для примера: если сектор «компакт-диска» из эмулятора во время нарочного «замедления» читался не 22 миллсекунды, а 3-6 секунд — сообщаем об ошибке и не даем запустить игру. Собственно, это хитрый ответ на вопрос, зачем продвинутые пользователи монтировали образы по сетевой шаре (по локальной сети в общей папке): туда драйвера SF не могли дотянуться в принципе и данные доставлялись вовремя с минимальной задержкой. А если локальной сети не было, создавали виртуальную машину, в нее помещали образ, пробрасывали сеть с виртуальной машины на хост-машину (ту, что запускает виртуальную) и снова монтировали образ по сэмулированной локальной сети. Причем, если проверка не проходила, образ файловой системы виртуальной машины размещали на USB-носителе. Минус: требовалось затем выключать виртуальную машину после успешного запуска копии игры, а движки некоторых игр, если свернуть их окно, умудрялись падать или вести себя некорректно.

Лик зла

Итак. У нас есть ранние версии StarForce 1-2, которые легко обходились эмуляторами Alcohol 120% и Daemon Tools: достаточно было точно снять на хорошем приводе топологию (геометрию диска) вместе с данными с диска. Пример — защита какого-нибудь The I of the Dragon, который у меня где-то до сих пор лежит среди прочих дисков.

У нас есть более поздняя, StarForce 3, которая крайне агрессивно орудовала с IDE\SATA-каналами, доводя исступленных опытных пользователей до того, что размещали образ на сетевой шаре для того, чтобы драйвер StarForce не фиксировал активность жёсткого диска во время проверки компакт-диска. Простые же пользователи обходились физическим отключением привода и эмулятором с образом диска или, на ранних 3.хх использовали StarFuck\StarForce Nightmare. Версии 3.хх можно было встретить даже на зарубежных релизах UbiSoft — Tom Clancy’s Splinter Cell: Chaos Theory, Prince of Persia: The Two Thrones, и. т. д. К счастью, после получения тонны жалоб, издатель переключился на другие технологии защиты своего ПО.

Фотка откуда-то с Пикабу
Фотка откуда-то с Пикабу

Четвертая спокойно обходилась уже с помощью новых версий Daemon Tools. А вот пятая задала жару. С ней приходилось очень туго, и зачастую приходилось ждать реверс-инженеренных бинарников — взломанных исполняемых файлов игры от разных групп хакеров и релизной сцены.

Но это все лирика и предисловие.

Ближе к сути статьи: версия 5.0.8.2

Кто покупал S.T.A.L.K.E.R.: Clear Sky, Тургор, Sledgehammer, Офицеры: Золотое Издание, Алмазный меч Деревянный меч, Geo-Political Simulator v1.4 на лицензионных дисках? Именно на них была установлена версия 5.0.8.2, и она, как ни парадоксально, самая уязвимая. «Фишка», а точнее недостаток этой версии — в жестком разделении процедур «проверка RMPS» (aka топология диска) и «проверка на наличие эмуляции», выполнение которых можно было вполне себе четко подгадать по времени и вовремя отключить эмуляцию Daemon Tools после того, как защита успешно пошарит по топологии диска с виртуального привода. Обычно защита сначала проверяет приводы и лишь затем замеряет топологию (геометрию) диска, и мне совершенно неведомо, была ли это ошибка одного из программистов или намеренное решение с целью какой-то оптимизации, но факт есть факт.

Свеженький и непочатый
Свеженький и непочатый

Товарищ xKVtor с форума Russian Game Copy World эту любопытную особенность либо нашел в Сети, либо сам откупорил сам каким-то неведомым мне методом. После чего попытался своими силами набросать батник (.bat-файл) с набором команд для успешного включения и отключения эмуляции в нужный момент с подсчетом времени. Шанс успеха был примерно 1 к 3 или 1 к 5, и если попытка проваливлась и StarForce находил таки эмулятор, он создавал серьезный сбой на уровне ядра и вдребезги крашил ОС, уводя ее в «синий экран смерти».

Прочитав ветку форума и прикинув свои силы, я понял, что смогу написать софт, который будет совершать все действия за пользователя:

1) Запускать игру;
2) Управлять Daemon Tools и вовремя включать-выключать его эмуляцию;
3) Фиксировать время запуска замера топологии (на одном и том же ПК с одним и тем же приводом время было всегда ± одинаковым);
4) Максимально упрощать жизнь пользователя через ряд подсказок, что нужно делать.

Изначально список действий человека, желающего сделать бэкап S.T.A.L.K.E.R.: Clear Sky,Тургор, Sledgehammer, Офицеры: Золотое Издание, Алмазный меч Деревянный меч, Geo-Political Simulator v1.4 без автоматизации процесса, вручную, выглядел так:

1) Снять топологию диска с помощью Alcohol 120% вместе с образом диска на методе Starforce 3.x;
2) Записать на качественную DVD+R болванку образ вместе с методом записи RMPS;
3) Отключить Автозапуск диска в ОС, т. к. он добавлял проблем с чтением топологии и размазывал границы времени проверки диска;
4) Запустить игру;
5) Вовремя, прям до секунды, дать команду Daemon Tools через трей «отключить эмуляцию», чтобы проверка на наличие виртуальных приводов прошла успешно.

Скажем, далеко не самый удобный способ запуска, когда наказание — гарантированный BSOD.

На обложке диска, кстати, нет гордой плашки «защищено StarForce». Либо постеснялись, либо уже это стало самоочевидным, мол, покупатель и так знает, на что идет. Либо не нашли места на утлой обратной стороне jewel-кейса
На обложке диска, кстати, нет гордой плашки «защищено StarForce». Либо постеснялись, либо уже это стало самоочевидным, мол, покупатель и так знает, на что идет. Либо не нашли места на утлой обратной стороне jewel-кейса

Final Showdown

Вооружившись, как ни странно, Delphi 6 и еще не шибко быстрым тогда интернетом, я сел за наброски ПО. Назвалось ПО нехитро, лаконично и логично: AntiStarForce 5. По сравнению с самой защитой от копирования — оно было донельзя примитивным и далеко не таким шедевром программирования.

Сначала я реализовал управление DT через командную строку. Затем набросал код, который позволял замерить, на каком моменте внутреннего таймера ПК возникла задержка — тот самый «Stop World» (если разница между двумя опросами таймера превышала ~1500 мс — это оно и было, таким образом «Остановку мира» я и фиксировал), причем в первой версии моего ПО нужно было дополнительно фиксировать время от момента старта игры.

Первый кусочек говнокода из AntiStarForce 5. Собственно, все проще некуда: спрашиваем у системы, какое сейчас внутреннее значение часов (таймера) и сравниваем текущее значение с предыдущим. Если вдруг при таком цикле без внешних задержек обнаруживается разница между замерами в 1500 мс - значит выполнение программы кто-то остановил извне. Stop World, привет!
Первый кусочек говнокода из AntiStarForce 5. Собственно, все проще некуда: спрашиваем у системы, какое сейчас внутреннее значение часов (таймера) и сравниваем текущее значение с предыдущим. Если вдруг при таком цикле без внешних задержек обнаруживается разница между замерами в 1500 мс - значит выполнение программы кто-то остановил извне. Stop World, привет!

Сложность заключалась в том, что для ловли идеального момента нужно еще и раскрутить привод, чтобы время проверки всегда было одинаковым на конкретном отдельно взятом ПК: чтобы защита запускалась всегда в одинаковых условиях. Поэтому перед запуском игры программа искала файлы на диске размером больше 32 МБ, агрессивно их читала, раскручивая привод до максимальной скорости (48х для CD и 16x для DVD), после чего, уже «на горячую» запускала игру и давала StarForce порезвиться, попутно отслеживая состояние выполнения своих действий. Затем предлагала сразу же перезагрузиться — своими же средствами через WinAPI.

И вот таким образом получалось запускать игру в 99% случаев — без каких-либо дополнительных действий. Пользователю было нужно
0) Запустить AntiStarForce 5;
1) Указать на букву с приводом с диском с игрой (и отключить Autorun с помощью отдельной кнопки);
2) Указать путь до Daemon Tools, если программа сама его не нашла;
3) Совершить первичный замер задержки, после чего, во избежание BSOD, сразу же перезагрузиться;
4) Запустить игру через AntiStarForce 5.

После чего повторные замеры не требовались: достаточно было держать болванку в приводе и запускать игру через AntiStarForce 5: все происходило автоматически.

Еще немного студенческого говнокода из AntiStarForce 5. Процедуры для раскрутки привода, перебора окон, открытия и закрытия лотка привода
Еще немного студенческого говнокода из AntiStarForce 5. Процедуры для раскрутки привода, перебора окон, открытия и закрытия лотка привода

Со временем я вычитал, как с помощью средств Delphi можно обратиться к чужому окну и посмотреть в его элементы — через WinAPI, все оказалось не так сложно. Таким образом я внаглую начинал поиск окна проверки StarForce по заголовку «Идет проверка диска», находил нехитро названный ProgressBar (разработчики считали себя совершенно безнаказанными, чуть ли не богами, и никак не обфусцировали это дело) и начинал фиксировать задержку уже от процента прогрессбара, что сильно упростило дело и повысило процент запуска до почти 100%.

Сообщение, объясняющее пользователю, что делать и зачем
Сообщение, объясняющее пользователю, что делать и зачем

Собственно, сам софт в финальной версии:

Скриншот с моих арихвов с файлами
Скриншот с моих арихвов с файлами

Итого, софтина упрощала все до следующих действий:

1) Записать RMPS-болванку с игрой с помощью Alcohol 120%
2) Вставить ее в привод
3) Прописать путь к exe-файлу установленной игры или ее ярлыку (lnk)
4) Выполнить проверку RMPS-задержки (кнопка «проверить», НЕ «Тест RMPS», который отвечал за проверку заголовка компакт диска и наличие правильного диска с RMPS в приводе с правильной эмуляцией его Daemon Tools), точно следуя инструкциям и обязательно перезагрузившись
5) Запустить игру
Более того, позже я добавил в AntiStarForce 5 возможность запуска из командной строки: программа создавала ярлык на рабочем столе, который сразу же запускал всю процедуру обхода защиты и запуска резервной копии конкретной игры. От игрока требовалось только вставить правильную болванку и нажать на ярлык.

Инструкция, написанная мной, еще студентом, выглядела так:

Из недостатков — метод +/- стабильно работал на Windows XP x86, однако на Windows Vista шанс запуска резко падал из-за изменений в поведении ядра ОС и ее драйверов. Кто-то говорил, что у него получалось запускать игры, защищенные 5.0.8.2 на Vista, кто-то сообщал, что не выходило. Аналогично было немало и тех, у кого способ AntiStarForce 5 работал не настолько хорошо даже на WinXP, как у «успешной» половины — кто-то мог запустить игру успешно только на 10 раз, кто-то вообще никак — видимо, из-за особенностей привода или материнской платы, или вовсе из-за бардака в ОС, перегруженной кучей другого установленного ПО, что ломало логику AntiStarForce 5 и мешало вовремя реагировать на действия StarForce.

Тем не менее, метод был рабочим. На моей тогдашней машине с «незагаженной» ОС, а то был AMD Athlon 64 X2 6000+, материнская плата на nForce 5 от Gigabyte (модель уже не помню) с 4 GB RAM (DDR2) и Radeon HD 3870 с парой из самых популярных и удачных моделей приводов NEC\ASUS все запускалось практически 10 раз из 10 на болванках DVD+R Verbatim.

Важно еще упомянуть, что в работе мне сильно помогали форумчане — обратной связью, жалобами, своим опытом пользования. И, что немаловажно, были двое очень крутых и приятных в общении ребят в лице xKVtor, который помог довести идею до реализации и Meph1st0, который помогал другим форумчанам, давал структурированную обратную связь и всячески поддерживал релизы новых версий AntiStarForce 5.

Ребятам мой низкий поклон за тогдашнюю помощь.

Если кто-то на SG помнит эту эпоху дисково-защитной вакханалии — делитесь впечатлениями в комментариях здесь. Будет интересно почитать.

Также, если есть более прожжённые гуру — милости прошу в комменты дополнить статью или исправить какие-то мои недочеты или ошибки.

Всем надежных бэкапов лицензионных копий!

Полезные статьи, которые стоит почитать:

Другие мои статьи (блог)


Лучшие комментарии

время Победило этот Кошмар!

Хех. Мерзкий Securom и StarForce, гори в аду. Тоже постоянно сидел на форумах, и твоей утилитой пользовался. Сколько раз SecuRom и StarForce убивали систему, выдавали BSODы, отключали наглухо привод, и как горела ж*па. Alcohol тогда не только пили, им нарезали образы/ копировали диски. А Daemon — очень адски продвинутый софт был (то, что нужно для честных пиратов — любителей забойного метала).

Увидел «Чистое небо», и вспомнил как бомбило с него (работал тогда в больнице хирургом, з/п была 14,500 чтоли. Иду по базару, смотрю, лицензионное «Чистое Небо». 500р., пиратки «5 в 1» стоили 50-80р. Кусается, но это же S.T.A.L.K.E.R.! Бегу как угорелый до компа, диск в привод, и игра… тормозит и виснет, когда первый проходил на высоких/максималках. Сказать что я ругался матом — ничего не сказать. По итогу смог его нормально пройти через пару недель, после патча 1.004 на диске от «Игромании»). Дом сих пор эта лицензионная гадость на балконе валяется (вместе с кучей нарезанных болванок с играми, металлом в 128-192 кбит/с, фильмами в DivX/Xvid и прочими Reanimator 98-Me-XP-7, WinPE, HirenBootCD, XP, мерзкой Vista, 7, Linux-ами и прочим старьём).

Помню был очень горд, когда смог снять образ с лицензионного Принца Персии: Два Трона (он долгое время из образа не работал; вррде там SF 5.0? был), это потом позже NoDVD подтянулся.

Статья полезная, и при этом удивительно было узнать на что были готовы тогда пойти что бы изнасиловать свой комп ради обхода starforce.

Все бодались со старфорс, а в итоге самой эффективной системой защиты оказался намеренный полом игры и выбрасывание этого брака на торренты, как сделали авторы Batman Arkham Asylum и Batman Arkham City. В первой в определенный момент переставал цепляться крюк к решетке (причем это происходило чуть ли не в середине игры). А во второй — игра вылетала после схватки с Рас аль Гулом.
Именно эти багнутые версии и сподвигли меня в свое время купить лицензии. И какое же счастье было, когда все начало работать без багов.

А я со Старфорсом никогда проблем не имел. (

Но вот «Kane&Lynch» покупал три раза, там был не Старфорс, а какая-то защита от 1С была, так эта мразь просто переставала видеть один, ОДИН (1!!!) файл на всей восьмигиговой болванке, и весь диск просто шёл в помойку. Вздохнул с облегчением, когда купил её в стиме.

Я пару раз помучавшись с этими защитами для себя решил, что при покупке очередного лицензионного диска проще скачать NoCD/NoDVD и не страдать от этой пакости.

Я навсегда запомню Sacred Gold, который ты мне записывал — уже пролеченый от SF))
Статья очень крутая, дружище! Крайне обстоятельно и захватывающе!

Набрасывай ещё!

На самом деле, я рад, что мы дожили до того времени, когда гораздо проще и интереснее игры покупать! Ачивки, комьюнити, общение… Игры стали «живее» что ли!

И до того времени, когда DRM не шибко-то мешает играть (киваю в сторону обычной Steam DRM и плююсь в сторону Denuvo)

Это я еще про виртуальную файловую систему StarForce не рассказывал и извращенные методы виртуализации, которые пробовали люди для эмуляции привода. Но у меня слишком мало подробной информации, чтобы ее даже в статью добавить.

Сколько раз SecuRom и StarForce убивали систему, выдавали BSODы, отключали наглухо привод, и как горела ж*па.

О да, даже у меня скотские дрова этих защит роняли все подряд и ломали настройки драйверов железа в ОС.

работал тогда в больнице хирургом

Едрить, мой тебе сердечный почет за такую тяжелую и очень важную работу!

з/п была 14,500 чтоли

Много у кого она была ± такая, да, возможно даже побольше. Мой студенческий доход был едва ли 5000-6500 рублей в месяц с главредничества, статей и нарезания пиратских болванок знакомым через знакомых)

Дом сих пор эта лицензионная гадость на балконе валяется (вместе с кучей нарезанных болванок с играми, металлом в 128-192 кбит/с, фильмами в DivX/Xvid и прочими Reanimator 98-Me-XP-7, WinPE, HirenBootCD, XP, мерзкой Vista, 7, Linux-ами и прочим старьём).

Еееееееееееееееее! Наш человек! У меня под кроватью в огромном пакете лежат все 3000 с половиной болванок, нарезанных с 2001 по 2009 годы)

Помню был очень горд, когда смог снять образ с лицензионного Принца Персии: Два Трона (он долгое время из образа не работал), это потом NoDVD подтянулся.

Ага, я как раз дополнил статейку этим моментом про релизы UbiSoft, когда ты писал сообщение)

Тоже постоянно сидел на форумах, и твоей утилитой пользовался

Надеюсь, она помогала)

Я ж туда еще выкладывал свой самописный репакер к полным\юбилейным изданиям Героев Меча и Магии 3, чтобы они больше не требовали диска, патчи для CrashDay и многое другое, адаптируя западные кряки под русские релизы.

Это был SecuROM, если мне не изменяет склероз. И да, он вполне мог так себя повести.

О да, я помню rugcw! Сначла оттуда папа мне качал NoCD-шки и кряки, потом я и сам туда залезал и искал нужную мне «лечилку». Помню, целую папку тогда насобирали. Из тех времен помню, как сначала NoCD качали, потому что задолбаешься туда-сюда диск из привода вставлять-вынимать, и в результате образ клали просто на рабочий стол и Daemon Tools'ом монтировали. Когда есть кряк, так это вообще праздник, меньше телодвижений. А потом, когда интернет стал побыстрее, качали игры с рапидшары и депозита. Какой же это был геммор.) Скачать от 10 до 40 архивов по 100мб, и после каждого перезагружать роутер, чтоб сменился ip-адрес. Тогда одну «тяжелую» могли качать и несколько дней, и даже неделю. И потом эти игры записывались на болванки, вместе с НоСДишками или кряками + русификаторами, если были и нумеровались. И был у нас текстовый файл, где было записано, на каком по номеру диске какие игры лежат. Эти диски я время от времени нахожу, но большинство из них уже не читается, а текстовый документ до сих пор ищу на старых хардах. Уверен, что он где-то сохранился, но где — так и не выяснил.

У меня StarFuck до сих пор где-то на болванке(ках) должен валятся. Хуже всего, на данный момент, что драйвера старфорса не устанавливаются на современные ОС. Где-то с год назад захотелось перепройти You Are Empty со своей старой лицухи и столкнулся с проблемой не поддерживаемой ОС. Чтож гулять так гулять подумал я и собрал комп на 775-ом сокете с Win XP на борту.

И потом эти игры записывались на болванки, вместе с НоСДишками или кряками + русификаторами, если были и нумеровались. И был у нас текстовый файл, где было записано, на каком по номеру диске какие игры лежат.

Нашел скриншот этого плацдарма для прогерских экспериментов.

Этот многократно менявший дизайн список игр с привязкой к номеру диска ходил по рукам на болванках и флешках в свое время с модульной системой обновления т.н. «базы», набитой скриншотами, данными и прочим информационным хламом) 2002-2007 годы.

Не, ну в середине 2000-х я бы такой пользовался, знай бы о ней. Выглядит аутентично. Есть что-то очень притягательное в этих непригалаженных интерфейсах)

Для этого тебе надо было жить со мной в одном городе)))

Ты туда еще и плеер затолкал? 'D

В школьные годы хотелось повторить эффектность дисков «Игромании» (хотя сам читал game.exe). Поэтому туда регулярно заталкивал саундтреки из игр небольшими пачками как сопровождение)

Было дело. Возьмёшь лицензионных дисков у друганов (смотри, не поцарапай, убъю!), снимешь тихонько образы, скачаешь NoCD (NoDVD) / либо запустишь через привод (отключив программно/физически привод) — и вперёд. Диски можно отдавать. Так Psi Ops проходил, и Принцев, и Legacy Of Kain.

Читай также