Как удалить старфорс из игры
Перейти к содержимому

Как удалить старфорс из игры

  • автор:

Как удалить старфорс из игры

У меня стоит Vista Ultimate. На днях сын установил некую игрушку, которая не встала из-за конфликта Starforce с Вистой. С тех пор при каждом запуске компьютера возникает сообщение с примерным текстом «драйвер Starforce не может быть запущен из-за несовместимости с Вистой. Обратитесь на сайт Starforce для обновления драйвера». Эту игрушку снесли, а проблема осталась, что тормозит компьютер при каждом запуске. Прошу помощи или совета по поводу того, как снести этот драйвер с компьютера или, хотя бы, найти место, где он располагается. Программа Your Uninstaller найти местоположение этого драйвера не может.

Сообщения: n/a
Удаление драйверов Star Force

Существует утилита SFdrvRemover (FrontLine Drivers Removal Tool). Можно поискать в инете. Можно удалить эту бяку ручками. Для этого нужно в диспетчере устройств сделать видимыми скрытые устройства и загнобить все, что имеет в своем названии слова Star Force.

Как удалить StarForce?

Установил старую игрушку. После установки перезагрузил комп. Но при входе в систему(всегда) винда пишет что драйвер защиты не может работать с этой версией вин, стоит 7ка. После установок патчей диск стал ненужен и старфорс соотв тоже.
Вот и сама проблема: не знаю как удалить старфорс чтоб не появлялось сообщение о несовместимости.
P.S. Уже нажал не выводить это сообщение больше, но не хочу чтоб при старте системы запускалось(или пыталось запустится)лишнее.

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

Всем, кто прочел статью до 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 в папке с игрой.

Примерно так выглядели сопровождающие библиотеки и файлы ранних SafeDisc

Примерно так выглядели сопровождающие библиотеки и файлы ранних SafeDisc

А вот это уже у более поздних релизов, два изображения для splashscreen под 16 и 256-битные режимы монитора и библиотеки

А вот это уже у более поздних релизов, два изображения для splashscreen под 16 и 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.хх можно было встретить даже на зарубежных релизах UbiSoftTom 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 помнит эту эпоху дисково-защитной вакханалии — делитесь впечатлениями в комментариях здесь. Будет интересно почитать.

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

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

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

Как удалить старый STARFORCE который не поддерживается Windows 7

Author24 — интернет-сервис помощи студентам

Сообщение «Удалите это приложение, так как оно не поддерживается Windows 10» при обновлении Windows
Добрый день. Столкнулся с проблемой при обновлении Windows 10. Не даёт обновить,пишет что.

Как удалить старый драйвер
Здравствуйте. Подскажите, пожалуйста, как удалить старый драйвер после установки обновлённой версии.

Как удалить старый DrWeb
На старом ноуте лежит мертвым грузом DrWeb с давно оконченной лицензией. В списке "установка и.

Эксперт JSЭксперт HTML/CSSЭксперт PHP

1846 / 1342 / 599
Регистрация: 12.01.2011
Сообщений: 5,432

ЦитатаСообщение от Stanislavvv Посмотреть сообщение

как удалить старый STARFORCE

Ручное удаление драйверов StarForce
Сначала нужно зайти в Диспетчер устройств и оттуда удалить все, относящееся к StarForce. В меню Вид нужно отметить «Показать скрытые устройства». После чего просматриваем все записи и удаляем все с именами StarForce.

Но это не все. В папке system32 хранятся файлы sfvfs*.sys, sfdrv*.sys, sfhlp*.sys и sfsync*.sys. Удалите их (или переместите в безопасное место). Если этого не сделать, то после перезагрузки они установятся снова.

На этом все. В реестре можно поискать (если есть квалификация и желание) записи от StarForce и удалить их. Посмотрите в службах записи от StarForce. Но главное — удалить сами файлы этой въедливой и глючной системы защиты.

Добавлено через 34 секунды
Еще есть утилиты для этого, посмотрите в интернете

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *