Не существует общего метода предотвращения того, чтобы кто-то перепроектировал ваше приложение.Это код, и поэтому его можно анализировать.Это усугубляется такими инструментами, как Reflector, которые принимают сборку .NET и выводят полное решение Visual Studio, способное создавать данную сборку .NET.Злонамеренный пользователь может просто вывести вашу сборку, удалить биты лицензирования и затем заново скомпилировать сборку.
Однако вы можете использовать инструмент обфускации кода (т. Е. Dotfuscator (заявление об отказе:мой работодатель)) чтобы ваш код был достаточно запутанным, чтобы было чрезвычайно трудно определить, где именно находятся регистрационные биты.
Тем не менее, просто запутывание кода все равно не защитит вас так, как вы пытаетесьбыть защищенным, потому что вы хотите встроить секрет (то есть код регистрации) в двоичный файл.Обфускаторы кода могут помочь с этим (т. Е. Шифрование строк), но в целом это слабое место - ваша программа должна получить константу в открытом тексте в некоторый момент, поэтому метод получения открытого текста должен где-то существовать в вашей программе.В конце концов, для Windows и для каждой видеоигры на планете есть свои недостатки и многое, несмотря на то, что миллионы компаний, таких как Sony, тратят средства на защиту от копирования.