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

Shareware 14.06.2012

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

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

Возьмем для примера программное обеспечение от корпорации Microsoft. Такой передовик с огромным штатом программистов наверняка уделяет большое значение защите своих продуктов. А между тем, масштабы нелицензионного использования той же операционной системы Windows описывать не приходится.

Но, в нашем случае, популярность и объемы продаж не в сравнении. Стоит ли тратиться на сторонние решения? Опыт подсказывает, что совсем необязательно. Намного дешевле и проще использовать фиктивные временные ключи активации. Как это работает? Да очень просто.

Допустим, в программе используется проверка на «волшебное слово», то есть по окончании пробного периода пользователь должен оплатить дальнейшее использование программы и получить ключ активации, который необходимо ввести в программу, иначе она работать не будет. Такую защиту, даже при особом шифровании кода приложения, взломают очень быстро. Так же не спасут проекторы, которые нацелены на препятствование считывание кода из памяти, где ранее зашифрованный код приложения отображается как на ладони – как есть. В обычной практике, «волшебное слово» можно найти на варезах (сайты распространяющие нелицензионное программное обеспечение) через 2-3 дня после появления информации о продукте в тематических каталогах Интернета. И вот тут можно использовать неизбежное в своих интересах.

Для этого всего лишь требуется разместить в разных частях программы дополнительные проверки на… тут уже кому что угодно. И далее, при каком либо несоответствии, дать понять пользователю, что его программа не является зарегистрированной. Отображать эту информацию рекомендую не сразу после проверки, а рандомно (с задержкой через таймер, где время задержки не фиксировано). Да и саму проверку стоит запускать тем же образом, чтобы было сложнее отловить место запуска. Первый этап защиты оставляем неизменным. Готовим релиз и выкладываем на своем сайте.

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

На мой взгляд, изящно и просто. А главное – работает!