Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #64, МАРТ 2006 г.

защита игр от взлома

КРИС КАСПЕРСКИ АКА МЫЩЪХ

Спецвыпуск: Хакер, номер #064, стр. 064-066-7


Круче всего — нарыть в Сети эмулятор малоизвестной ЭВМ, под которую есть компилятор с языка высокого уровня (С, ФОРТАН), и... Хакеру придется очень худо, придется осваивать неизвестный ему машинный язык, искать дизассемблер (или, скорее, писать собственный), прилагая титанические усилия для взлома. Разработчик тем временем будет пить пиво и кодить в привычной для него среде. Самое замечательное — то, что в следующей версии программы можно использовать эмулятор от «другой» ЭВМ, перекомпилировав весь код без адаптации и каких-либо изменений. Точнее, совсем без изменений, конечно, не получится, но трудоемкость переноса не сравнить с тем объемом работы, который предстоит проделать взломщику!

Секреты привязки

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

Практически нереально создать защиту, которая безошибочно распознавалась бы любым приводом (включая что-то сильно раздолбанное или слишком нестандартное), но в то же время не копировалась бы ни одним известным копировщиком. Лучший результат дает привязка к геометрии спиральной дорожки (защиты типа CD-COPS, Star-Force) — ее невозможно скопировать, но легко проэмулировать или… подобрать диск с похожими характеристиками. Для предотвращения эмуляции разработчикам Star-Force пришлось очень глубоко зарыться в систему, в результате чего получился полный глюкодром, а установка очередного пакета обновлений на Windows требует параллельной установки соответствующего обновления для Star-Force. Так что лучше похоронить эту тему раз и навсегда и даже не пытаться возвращаться к ней. Иначе столкнешься с таким количеством проблем, осилить которое сможет только крупная компания, да и то…

Серийные номера

Самое простое — защитить программу серийным номером, который элементарно программируется и не вызывает никаких конфликтов ни с чем. Конечно, это не помешает Пете скопировать понравившуюся ему программу у Васи или даже выложить серийный номер в Сеть напоказ всем желающим. Соответствующий способ борьбы — использовать черный список «засвеченных» серийных номеров, проверяя их на соответствие при установке обновлений. Если защищенная программа предполагает взаимодействие с удаленным сервером, процедура проверки валидности серийных номеров значительно упрощается и нелегальный пользователь просто не получит доступ к серверу (очень актуально для сетевых игр!).

Несетевые программы также могут периодически ломиться в Сеть, передавая свой серийный номер. Если этот номер не подтверждается, регистрация считается недействительной и работа программы прекращается. При этом возникают следующие проблемы: поддержка выделенного и постоянно работающего сервера стоит денег, к тому же такой сервер сам по себе представляет весьма нехилую мишень для атаки. Что если хакеры завесят его или, еще хуже, проникнут внутрь и украдут легальные номера? Значит, необходимо содержать толкового администратора и разрабатывать протокол проверки серийных номеров с учетом возможного перехвата, например использовать несимметричную криптографию — тогда украденная база не позволит восстановить ни один легальный серийный номер. Впрочем, что-то я все о мелочах да о мелочах.

Назад на стр. 064-066-6  Содержание  Вперед на стр. 064-066-8