(2016-03-13 14:36:31 отредактировано trh)

После автозащиты перестает работать GrdStartupEx

.Net, SDK7 Upd2, SignNet

Ошибка UnableToCreateIniFile после применения автозащиты.

Перепробовал все варианты GrdRCS, с различными настройками "Установить путь поиска INI ..." в Мастере лицензирования.


gnclient.ini существует
API без автозащиты:  ОК.
Автозащита без API:  ОК.
API c автозащитой: автозащита ОК (т.е. автозащита находит ключ и занимает лицензию); API - UnableToCreateIniFile.

Upd:
Дал пользователям права на изменение файлов в каталоге - все заработало.
Тогда не понимаю  почему работает GrdStartupEx без автозащиты?

Re: После автозащиты перестает работать GrdStartupEx

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

trh пишет:

Перепробовал все варианты GrdRCS, с различными настройками "Установить путь поиска INI ..." в Мастере лицензирования.

Уточните, пожалуйста, директория расположения конфигурационного *.ini-файла клиента указывалась одинаковая для автозащиты и Guardant API?

Укажите какая именно директория использовалась.

(2016-03-14 15:29:04 отредактировано trh)

Re: После автозащиты перестает работать GrdStartupEx

Антон Тихиенко пишет:

Здравствуйте.
Уточните, пожалуйста, директория расположения конфигурационного *.ini-файла клиента указывалась одинаковая для автозащиты и Guardant API?

Укажите какая именно директория использовалась.

Каталог в автозащите не указывал, т.к. нет 100% уверенности что пользователь выполнит установку именно в данный каталог.

Явно указывал только переменную окружения.
А вообще путь в тестах был c:\program files(x86)\SomeCompany\SomeApplication

Re: После автозащиты перестает работать GrdStartupEx

Переменная окружения указывает на эту директорию:

trh пишет:

А вообще путь в тестах был c:\program files(x86)\SomeCompany\SomeApplication

Эта переменная указывается и для API и для автозащиты?

Re: После автозащиты перестает работать GrdStartupEx

Антон Тихиенко пишет:

Переменная окружения указывает на эту директорию:

trh пишет:

А вообще путь в тестах был c:\program files(x86)\SomeCompany\SomeApplication

Эта переменная указывается и для API и для автозащиты?

Да

Re: После автозащиты перестает работать GrdStartupEx

И еще один вопрос.

Если я указываю что искать файл надо по значению переменной окружения, то зачем автозащита создает gnclient.ini во всех папках, где приложения других разработчиков загружают наши dll?

Re: После автозащиты перестает работать GrdStartupEx

trh пишет:

Если я указываю что искать файл надо по значению переменной окружения

Настройки поиска конфигурационного *.ini-файла (относительно переменной окружения) задавались для каждой защищенной *.dll?

Re: После автозащиты перестает работать GrdStartupEx

Антон Тихиенко пишет:

Настройки поиска конфигурационного *.ini-файла (относительно переменной окружения) задавались для каждой защищенной *.dll?

Да, конечно.

Re: После автозащиты перестает работать GrdStartupEx

trh пишет:

trh пишет:
А вообще путь в тестах был c:\program files(x86)\SomeCompany\SomeApplication

Нужно еще уточнение - во время выполнения данного тестирования в какой директории находились защищенные *.dll?

trh пишет:

Если я указываю что искать файл надо по значению переменной окружения, то зачем автозащита создает gnclient.ini во всех папках, где приложения других разработчиков загружают наши dll?

Также укажите директорию, где находились приложения других разработчиков, загружающие эти защищенные *.dll?

Re: После автозащиты перестает работать GrdStartupEx

Антон Тихиенко пишет:

Нужно еще уточнение - во время выполнения данного тестирования в какой директории находились защищенные *.dll?

dll1: c:\program files(x86)\SomeCompany\SomeApplication
dll2: c:\ProgramData\App2\bin

Антон Тихиенко пишет:

Также укажите директорию, где находились приложения других разработчиков, загружающие эти защищенные *.dll?

App1: C:\Program Files (x86)\1cv8\8.3.7.1917\bin  (грузит ddl1)
App2: C:\ProgramData\App2\bin  (грузит ddl2)

Re: После автозащиты перестает работать GrdStartupEx

trh пишет:

gnclient.ini существует
API без автозащиты:  ОК.
Автозащита без API:  ОК.
API c автозащитой: автозащита ОК (т.е. автозащита находит ключ и занимает лицензию); API - UnableToCreateIniFile.
Upd:
Дал пользователям права на изменение файлов в каталоге - все заработало.
Тогда не понимаю  почему работает GrdStartupEx без автозащиты?

Такое поведение нам воспроизвести у себя так и не удалось:

  • Если у пользователя есть права на запись в каталог (или, хотя бы, права на изменение предварительно созданного *.ini-файла), то корректно отрабатывает и автозащита, и Guardant API (как по отдельности, так и совместно);

  • Если у пользователя нет нужных прав на доступ к каталогу (*.ini-файлу), то *.ini-файл не может создать\изменить ни автозащита, ни Guardant API.

trh пишет:

И еще один вопрос.
Если я указываю что искать файл надо по значению переменной окружения, то зачем автозащита создает gnclient.ini во всех папках, где приложения других разработчиков загружают наши dll?

Тут выявилось некорректное поведение утилит автоматической защиты .Net-приложений.
Так, если автозащита выполнялась при помощи GUI-мастера (LicenseWizard.exe), а кроме защиты кода выполнялась еще и обфускация, то валидной директорией для поиска *.ini-файла будет считаться та, которая была указанна в опциях обфускатора - GUI-мастер же применяет опцию /RCS_ только для утилиты защиты кода, что отражено в соответствующих *.bat-файлах параметров вызова утилит автозащиты (файл с расширением *.obf содержит набор опций для обфускатора, а файл с расширением *.prt содержит набор опций для утилиты защиты кода).

В результате реальный путь создания\поиска *.ini-файла остается тот, который применяется при автозащите "по умолчанию" (текущий каталог для исполняемого файла), как будто опция /RCS_ не применялась. Это поведение будет исправлено.

Если выполнять автозащиту .Net-приложения при помощи консольных утилит обфускации и защиты кода, и задать нужный параметр /RCS_ и для обфускатора и для утилиты защиты кода, то *.ini-файл будет создаваться\искаться в заданной директории.