Комбинирование защиты GS3S || GN3S

Здравствуйте!

Подскажите пожалуйста, возможна ли автоматическая защита .Net приложения с помощью консольных утилит (CodeObfuscator.exe, CodeProtect.exe) таким образом, чтобы защищенное ПО могло работать как с локальным ключом (Time) так и с сетевым (Time Net)?

Предполагается, что локальный и сетевой ключ имеют идентичную прошивку.
Под комбинированием подразумевается не обязательное наличие и локального, и сетевого ключа, а возможность работы приложения как с сервером защиты так и с локальным ключом.

Обязательно ли в этом случае наличие двух версий приложения, одной, защищенной с опцией /GS3S, другой - с опцией /GN3S? Или возможно реализовать все в одном исполняемом файле?

С уважением, Владимир.

Re: Комбинирование защиты GS3S || GN3S

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

"C:\Program Files (x86)\Guardant\SDK7\Bin\CodeObfuscator.exe" /GS3S /GN3S /INIT /SO /MAP="C:\Test\test.map" /OUT="C:\Test\" "C:\Test\old\.NetApp.exe"



"C:\Program Files (x86)\Guardant\SDK7\Bin\CodeProtect.exe" /GS3S /GN3S /PER=50 /MAP="C:\Test\test.map" /OUT="C:\Test\" "C:\Test\.NetApp.exe"

В данном примере утилиты будет привязаны к ключам Guardant Time/Sign и  к Guardant Time/SignNet. При этом дополнительные параметры (номер алгоритма, длина вопроса, и пр.) будут взяты по умолчанию. Таким образом, защищенное приложение будет работать с любым из указанных ключей.

Подробнее о защите DOTNET приложений можно узнать по ссылке

http://developer.guardant.ru/pages/view … Id=1279157

Подробнее об опциях установки типа электронного ключа можно узнать по ссылке

http://developer.guardant.ru/pages/view … Id=1279185

Re: Комбинирование защиты GS3S || GN3S

Спасибо, Тимофей!

Все получилось, программа работает и с тем, и с другим ключом!

Подскажите ещё пожалуйста, а можно ли "автозащитить" программу так, чтобы она работала с сетевым ключом как с локальным?

То есть, сейчас привязал программу к двум ключам Guardant Time и к Guardant TimeNet как было указанно выше. У обоих ключей абсолютно одинаковая прошивка.

Если к серверу подключен сетевой ключ, локальный отключен - программа работает.
Если от сервера отключен сетевой ключ, локальный подключен - программа работает.
Если локально подключен сетевой ключ - программа не работает.

Это штатное поведение или я что-то не правильно делаю?
Может ли сетевой ключ выступить в качестве локального?

Re: Комбинирование защиты GS3S || GN3S

Добрый день.
Есть возможность использовать сетевой ключ как локальный. Для этого используйте параметр /USE_NET_AS_LOCAL для консольных утилит. Кстати, для наших консольных утилит можно вывести список допустимых параметров, набрав в командной строке после утилиты /? . Так Вы получите список всех параметров.

Также, работу сетевых ключей в качестве локальных можно организовать используя  функции Guardant API (http://developer.guardant.ru/display/DO … ardant+API).

Re: Комбинирование защиты GS3S || GN3S

Ещё раз большое спасибо! Читал же про этот флаг, но совсем забыл про него.

Не могли бы Вы разъяснить следующий момент.
В случае, если используется команда привязки сразу к двум ключам с параметрами:

CodeObfuscator.exe /GS3S=N1:L1:ID1:S1:FileName1.bin /GN3S=N2:L2:ID2:S2:FileName2.bin /SE ...

Параметры, алгоритмы и их определители для каждой модели ключа должны быть идентичны? (N1 = N2, L1 = L2, ...)
Обфускатор шифрует строковые константы с помощью алгоритма N в ключе?
Или используется какое-то промежуточное шифрование и настройки каждой модели могут быть индивидуальны?

(2016-10-06 16:35:17 отредактировано Тимофей Ершов)

Re: Комбинирование защиты GS3S || GN3S

Да, Вы правы. Типы алгоритмов, их номера и определители должны совпадать. Эти алгоритмы используются во время защиты консольной утилитой. Если данные не будут совпадать, утилита сообщит об ошибке и автозащита будет невозможна. Однако, прочие поля памяти ключей могут не совпадать. Так, один из ключей, использующийся при защите, - сетевой, и может содержать поле Таблица лицензий.