Неудобство распространения физических носителей и электронных ключей, а также развитие Интернета и цифровой дистрибуции привели к взрывному росту популярности различных методов онлайн-защиты.
Компания Microsoft с 1999 г. начала применять интернет-активацию в большинстве своих продуктов, и вот уже более 10 лет сотни миллионов копий ее программного обеспечения успешно защищаются таким образом. Суть защиты состоит в том, что приложение вычисляет параметры оборудования, на которое оно установлено (серийные номера материнской платы, процессора и т.д.), в зашифрованном виде пересылает их на сервер активации и после получения ключа приложение начинает работать в полную силу, но оказывается привязанным к «железу», куда оно установлено.
Преимуществ у онлайн-за-щиты множество. Например, отсутствие физических носителей, что означает как отсутствие проблем с пересылкой электронных ключей и дисков, так и невозможность их механических поломок. Также можно отметить относительную дешевизну внедрения и поддержки этого метода защиты и, конечно, возможность широкой цифровой дистрибуции и «мгновенной» покупки ПО из любой точки Земли.
Однако стойкость всех вышеперечисленных методов защиты упирается в сложность реверсинга приложения и его технологий привязки к диску, электронному ключу или онлайн-активации. Поэтому крайне необходимо защитить приложение не только от копирования, но и от изучения и отладки.
5.3 Обфускация кода
Несмотря на то что ассемблер современных процессоров не так прост для понимания, как высокоуровневый С-код, опытный взломщик с большой долей вероятности сможет при наличии времени и сил воспроизвести любые алгоритмы в приложении, включая и те, что обеспечивают защиту от копирования. И если где-то существует заблуждение, что сама по себе компиляция в машинный код это уже хорошая защита, то в современном мире это не так, не говоря уже о том, что множество технологий не предусматривает компиляции в машинный код, а анализировать байт-код или промежуточное представление куда легче (например,.NET, Java или ActionScript).