Как защитить?

Статус
В этой теме нельзя размещать новые ответы.

focusnick

Постоялец
Регистрация
29 Июн 2012
Сообщения
141
Реакции
118
Ну, если вы их никак не будете защищать - то да, конечно увидит.
Проще всего хранить их в пошифрованном виде - например заксоренными на какую-нибудь константу и перед (во время) использования - дешифровывать (ксоря на ту же константу, благо скор симметричен).
Сложнее, но универсальнее - написать программку, которая будет проходить по всей сборке и заменять обращение к "голым" строкам на их дешифрацию (предварительно их все пошифровав).
 

artcosmic

Постоялец
Регистрация
16 Сен 2008
Сообщения
198
Реакции
162
А можно пример вот такой вот шифрации-дешифрации строк через XOR?
 

focusnick

Постоялец
Регистрация
29 Июн 2012
Сообщения
141
Реакции
118
Ну, я даже не знаю какого рода пример тут можно привести, xor (исключающее или) на большинстве языков выглядит так: a ^ b, где a и b - два байта, один из котиорых - искомый байт, которй требуется обработать, а второй - известная вам константа.
соответственно
c = a ^ b;
a = b ^ c;
b = a ^ c;

То есть оно полностью симметричное.
Соответственно, вы можете обработать нужные вам строки (проходясь по каждому символу) с помощью какой-нибудь самописной програмки, наверное проще всего - ксорить и накрывать с помощью какой-нибудь простой кодировки, например Base64, т.к. результаты ксора могут (в зависимости от байт и константы) содержать непечатаемые символы.

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

focusnick

Постоялец
Регистрация
29 Июн 2012
Сообщения
141
Реакции
118
Кстати, к теме защиты - вон, Futuremark не позаботилась о защите чувствительного ко взлому .NET кода в последнем 3DMark'е, результат - я реверснул всю систему лицензирования, включая алгоритм генерации ключей за несколько часов и теперь оно во всех раздачах марка по всей сети, не говоря уже о том, что я в коде обнаружил список компаний, имеющих Developer лицензии (в открытом виде - хэш ключа/название компании), что в случае конфиденциальности этого списка ставит эти компании под угрозу.
Защищаться надо - хотя бы примитивно, от любопытных глаз.
 

artcosmic

Постоялец
Регистрация
16 Сен 2008
Сообщения
198
Реакции
162
Отправка IP пользователя на сервер не спасает в случае >1000 пользователей - становится совершенно непонятно, кто нарушитель, а кто легально пользуется программой. Кроме того, когда хакер получает доступ к исходному коду - ему не составит труда закомментировать любые строки, в том числе и отправку IP или другой авторизационной информации.
В общем, изучая тему, я понял, что единственный способ защитить программу от взлома - это не писать программу. Пора переходить на вебсервисы в облаках. Хоть они само собой тоже могут быть подвержены различным уязвимостям, но все же их проще контролировать и не допустить массовой халявы. Это, конечно, не спасает от различных складчин на доступы к ресурсам, но это уже вопрос политики ценообразования. И, конечно, не всякий софт можно сделать в виде вебсервиса, хотя эта грань постепенно стирается.
За сим тему закрываю, как исчерпавшую себя.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху