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

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

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

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


Как быть с персональными брандмауэрами, популярность которых постоянно растет? Пользователь не выпустит программу в Сеть! Хотя любой брандмауэр легко обойти установкой собственного драйвера, так поступать нельзя. Журналисты тут же поднимут шумиху и обольют программиста грязью. Требовать обязательного наличия интернета нельзя. До сих пор он есть не у всех (если все-таки требовать, необходимо как минимум уметь работать через прокси). Правда, можно прибегнуть к одному очень хитрому маневру: через функцию InternetGetConnectedState определить, доступен ли в настоящее время интернет, и если сетевое соединение действительно присутствует, потребовать от пользователя открыть брандмауэр (или что там у него есть). Популярная программа Macro Express поступает именно так, но и этот путь не свободен от проблем. Если выход осуществляется через локальную сеть, функция InternetGetConnectedState не сможет сказать, имеется ли выход оттуда в интернет. С удаленным доступом по модему намного проще, однако не стоит забывать, что пользователь может подключаться не только к провайдеру, но и к своему приятелю, у которого стоит импровизированный «сервер», не предоставляющий доступа в интернет... Однако InternetGetConnectedState этого не объяснишь! Наконец, системную библиотеку WININET.DLL, которая экспортирует функцию InternetGetConnectedState, очень просто хакнуть в контексте памяти ломаемого приложения, и тогда защите настанут кранты.

Криптография и все, что связано с ней

Вместо серийных номеров некоторые разработчики предпочитают использовать криптографические ключи и прочие системы цифровой подписи типа сертификатов, усиленно продвигаемые на рынок компанией Microsoft и прочими гигантами. Все чушь собачья! Цифровая подпись хорошо работает только в связке «клиент-сервер», но на локальной машине она бессмысленна. Да, сгенерировать «левый» ключ в этом случае невозможно, но если как следует пошурудить hiew'ом в исполняемом файле, никакие ключи уже не понадобятся. Так что цифровая подпись должна использоваться совместно с шифровкой кода и проверкой целостности!

Можно (и нужно) шифровать ключевым файлом критические модули защищаемой программы, но главное тут — не перестараться! Независимо от алгоритма реализации, такая защита вскрывается при наличии одного-единственного ключа. Кроме того, она не защищена от распространения ключа.

Оборудование — физическое и виртуальное

Привязка к аппаратуре — это грязный и пакостный трюк, отравляющий жизнь легальным пользователям и все-таки не спасающий от взлома, поскольку любая привязка обнаруживается опытным хакером элементарно. Либо эмулируется, либо вырезается. Виртуальные машины типа VM Ware представляют собой большую проблему, на варезных серверах уже появились программы с примечанием «Запускать под VM Ware». Достаточно зарегистрировать программу один раз, и дальше можно тиражировать ее сколько угодно.

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