Black Crow #05
01 февраля 2001

The_hacker_club - Защита CSC:DV-2

<b>The_hacker_club</b> - Защита CSC:DV-2
     ЗАЩИТА ИГРЫ CSC:DV=2      
                                         
(С) 2000 TicklisH Jim                    
-----------------------------------------
   В  общем-то, ничего особо новаторского
я не внес в это дело. Все началось задол-
го  до  окончания работы над самой игрой.
Где-то  года за два (!!!) до этого знаме-
нательного  события. Придумывались всякие
извращения  с загрузкой, форматированием,
обычным  кодированием.  До сих пор где-то
валяется  довольно простенькая (по нынеш-
ним  меркам;) ксорка. Хер снимешь ее STS-
ом, SHADOW Monitor`ом или Magic`ом - ее и
поставить-то довольно сложно. Но завершая
работу  над  игрой, я все больше и больше
убеждался,  что все это "суета", в смысле
- подобная защита. Появлялись все более и
более  навернутые  "protection  systems",
как  на  программном, так и на аппаратном
уровнях. И буквально сразу же их "делали"
по полной программе: сам "делал" - знаю;)
                                         
   Кто добился наибольшего успеха в защи-
те  своих  программ? Правильно, либо тот,
кто  ничего не делал, либо Слава Медноно-
гов.  Если  отбросить всеобщее уважение к
Славе,  во многом благодаря которому он в
свое время получил достаточно много денег
за  свое  ПО,  посмотрим,  что за защита.
Физическое повреждение диска. Да, это уже
притча  во  языцех. Но понятно, что этого
явно не достаточно (да уж, если на Speccy
научились копировать #F5, #F6, #F7 - сек-
тора,  что считалось в принципе невозмож-
ным!!!).  Оставалось лишь завернуть прог-
раммную  часть защиты. Ясно, что извраще-
ние  в  духе  RST7  (а-ля  CBS protection
system v2.хх в Mortal Kombat) неуместно в
таком монстре, как ЧВ. Нужно что-то похи-
трее.  И  Слава  извратился  -  самокоди-
рующиеся  ксорки,  контроль  изменений  в
программе  путем подсчета КС (без возмож-
ности подделать последнюю;) и изнасилова-
ние дисковода, если вдруг что не так. Все
усложнялось  тем,  что вся прога написана
на РС, работает в экранной области, зани-
мает  все 128к и лазить по ней STS`ом до-
вольно  неудобно, не говоря уж о проверке
своих догадок - кэша у меня нет;-))).    
                                         
   Все  хорошо,  достаточно эффективно...
На первых порах. Основной недостаток, ко-
торый  сразу  бросился  мне в глаза - это
то,  что  защита сразу обнаруживает себя.
Типа  кричит:  "Вот  она  я, видал, что я
умею,  если ты пытаешься тронуть мою под-
защитную?!!" Как бы она ни была спрятана,
а зная, что искать, дело остается лишь за
техникой, т.е. за твоей квалификацией как
"взломщика".  Все  же  практически  7 лет
опыта даром не проходят.                 
                                         
   В общем, хотелось сделать подобную за-
щиту,  но  более  эффективную. Думаю, мне
это  удалось. Другое дело, что на фирмен-
ном  диске я оставил пару огромных "дыр",
но, надеюсь, их не заметили. ("Оставь на-
дежду...";).                             
                                         
   Свою  защиту  я разделили также на две
части  -  физическую и программную. Физи-
ческая  выполняла  две  функции: первая и
неосновная  - помешать скопировать "диск-
в-диск";  вторая  и  основная - отвлечь и
убедить  хакера, что автор есть мегалох и
полный ламер.                            
                                         
   Еще  один  важный  момент - в код игры
жестко внесены несколько ошибочных значе-
ний, корректность которых нигде НЕ ПРОВЕ-
РЯЕТСЯ.  А  самое  главное,  естественно,
заключалось  в  программной части. Она не
подгружается  с  битых секторов. Частично
она  находится в основном коде игры с са-
мого  начала,  но  в виде белиберды. Пра-
вильно,  она  закодирована, т.к. является
достаточно  большой по объему подпрограм-
мой.  А  запускается  и работает она сле-
дующим  образом: по мере ПРОХОЖДЕНИЯ игры
в  области переменных СОЗДАЕТСЯ очень ма-
ленькая  программка, которая декодирует и
запускает основную ПП обработки защиты.  
                                         
   Просто? Не то слово. Попробуй, отследи
этот декодировщик, тем более, что он соз-
дается в произвольном порядке. Единствен-
ное  его  слабое  место  в  том, что есть
отгрузочный блок. Объяснять ничего не на-
до? Правда, это слабость лишь программ, в
которых  предусмотрена  отгрузка. Но про-
должу.  Ближе  к  концу игры декодировщик
наконец  создан  и  запускает ППЗ(ащиты).
Что  делает  та? В первую очередь стирает
из  памяти  декодер, делает копию себя во
временный  буфер, вновь кодирует свою ко-
пию (т.е. получилась копия ППЗ в первона-
чальном  виде, до работы декодировщика) и
переходит к основной фазе.               
                                         
   Что  делает хакер, увидев мою физичес-
кую "защиту"? Убирает ее и ее вызовы. Все
верно.  А  что делает ППЗ? Она считает КС
блока  физической  защиты  (учти,  что на
каждом  фирменном диске покалечены разные
сектор/трек,  к которым и "привязывается"
инсталлятор  защиты) и КС блока, где при-
мерно  находится вызов ФЗ. Причем КС счи-
тается  так,  что  "от  перестановки сла-
гаемых  сумма ИЗМЕНЯЕТСЯ". Далее... Полу-
ченные  значения  абсолютно  ни  с чем не
сверяются  -  что получилось, то и имеем.
Потом,   например,  эти  КС  складываются
(выч., т.д.) с теми ошибочными данными, о
которых  я  говорил  выше. Новые значения
вносятся  на  место  ошибочных. И все это
без  проверки на правильность. Если прог-
рамма не изменялась в ключевых местах, то
вместо неправильных значений внесутся те,
что требуются. Иначе, вместо неправильных
подставятся  неправильные и игра как была
непроходимой изначально, так ею и остает-
ся. А напоследок ППЗ берет свою закодиро-
ванную  копию и кладет ее на себя, выходя
в  основную  программу  через  PUSH HL:JP
13251 (к примеру). Время работы ППЗ очень
короткое - ты ничего не замечаешь.А в па-
мяти  вроде  бы и ничего не поменялось, к
тому  же временный буфер уже занят совер-
шенно  другими данными. Вот и получается,
что  о результате ее работы ты можешь до-
гадаться лишь по тому, смог ты пройти иг-
ру  или нет. Поэтому все те, кто не может
молотом  разбить глыбу льда имеют в своем
распоряжении  некорректно взломанную вер-
сию игры.  И не стоит ругаться на меня за
излишнюю подлость. Меня достали эти "дро-
восеки" (по-английски - "Hacker"). Ломай-
те, но корректно. Аминь.                 
                                         
   Ну,  что  скажешь,  Макс? Преимущества
данной защиты очевидны. Закрутить-то мож-
но  так,  что  снять защиту будет дороже,
чем  приобрести лицензионную копию. Я ис-
пользовал упрощенный вариант. Хотя потен-
циал был огромный. Есть, правда, и недос-
таток.  Некорректно  снятую  защиту легко
выдать за "полностью" снятую. Т.к. прове-
рить - значит пройти игру до конца.      
                                         
                 -----                   
                                         
   Р.S. Да, чуть не забыл. Все насчет той
же  игры. Как уже не раз говорилось, я ее
всю прошел вдоль и поперек уже более сот-
ни (!) раз. И проблем, в принципе, не бы-
ло (все найденные глюки либо удалены, ли-
бо  описаны). Но тут вот какое дело. Как-
то  у  меня приобрел копию Imperio/PHG из
Бреста.  Не мог запустить из-за того, что
программа сбрасывалась - срабатывала про-
верка  на порчу диска. Я заменил диск. Та
же  тема.  Он (Imperio) убрал проверку на
царапины и начал играть. О том, что доиг-
рать у него все равно не получилось бы, я
не  говорю.  Проблема  в  том,  что  игра
сбоила то в одном месте, то в другом. За-
висала  или  сбрасывалась.  Причем у него
только 128к Спектрум. Я подумал, что дело
в IM2-драйвере (или в turbo-драйвере, тем
более,  что  Павел  говорил о проблемах с
точками входа в TR-DOS). Однако, все про-
верив,  я  так и не нашел никаких ошибок.
Т.е. у меня и  знакомых все работает кор-
ректно.  И в 128к, и в 25бк-режимах. Воз-
можно,  проблемы из-за нестандартной про-
шивки  DOS,  но  с  этим тяжело бороться.
15635 я не могу использовать из-за отсут-
ствия свободной памяти. Так что спрашиваю
со страниц журнала, у кого какие проблемы
возникли  с отгрузкой на диск, подгрузкой
текстов и графики в 128к-режиме? Я поста-
раюсь  все  подправить. Надо только знать
что именно (конкретные ситуации).        
                                         
   И  последнее.  Вначале  этого текста я
упомянул о якобы авторской фрикопи версии
нашей игры. Новости о ней я получил одно-
временно  из  двух источников - из письма
Квазара  Слайдеру  и из разговора с одним
человеком  из  Гомеля.  Ситуация примерно
следующая - из Барнаула по е-mail присла-
ли  "авторскую"  freecopy  version "Санта
Клауса", но в ней есть "глюк" - невозмож-
но  молотом  разбить глыбу льда. Я попро-
сил,  чтобы  мне выслали эту самую версию
игры.  А пока имейте ввиду, что авторская
freecopy версия  ПЕРВОЙ появляется в жур-
нале "Чёрная Ворона #5"!!! И нигде раньше
появиться  она не могла по причине отсут-
ствия таковой!                           
                                         
   Теперь уж точно всё, всего хорошего!  
                                       TJ



Другие статьи номера:

От редакции

Программистам - Чанки на бордюре.

Программистам - Справочник по TR-DOS.

The_hacker_club - Принцип работы АОН

The_hacker_club - Защита CSC:DV-2

Очумелые ручки - Питание для кэш.

Очумелые ручки - Цифровой индикатор состояния порта.

Очумелые ручки - Слотовая система.

Очумелые ручки - Подключение контроллеров дисковода к ZX-Spectrum.

Очумелые ручки - Снова о ZX-NEXT HDD

Очумелые ручки - Самозащита: схема электрошока.

Очумелые ручки - Телемастеру: техническое меню телевизоров.

Очумелые ручки - Реставрация дисков.

Белый_попугай - Записки жены программиста (продолжение).

Белый_попугай - Демократия в дурдоме.

Белый_попугай - Анекдоты.

Белый_попугай - День гаишника.

Игровой автомат - Самоучитель преферанса.

Раскрутка - Архиватор HRIP.

Раскрутка - Black crow viewer.

Презентация - Crime Sаntа Clаus: Dejа Vu. Free versiоn.

Обозрение - Игровые программы, игры на целый диск, демоверсии игровых программ, электронные газеты, электронные журналы, системные программы, демонстрационные программы.

Разное - Выставка полuграфuя`2000 в Украине

Разное - Реклама.

Разное - Закоси от армии.

Разное - Азы переписки.

Библиотека - Поэзия.

Библиотека - Формула боя.

Библиотека - новелла по игре Санта Клаус.

Глас народа - Рецензия от NEMO.

Глас народа - Рассуждения на тему...

Глас народа - Открытое письмо.

Глас народа - Анкета в Днепропетровске.

Глас народа - Письма читателей.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Наш ответ - два письма, оба из Cамары.
В паутине - График работы городских серверов.
WHAT THE HELL IS THE WoMo-TEAM?
Смешные ошибки в цениках
Chaos Constructions '999 - второй день.

В этот день...   21 ноября