Командные ключи NwKey32.exe

Добрый день.

Прописываю вручную ключи в bat файле для автоматической защиты native приложения и столкнулся с непонятными моментами.

1. Использовал привязку к типу ключа по шаблону: ‘/GS3S[=[N]:[L]:[ID]:[S]:[<FileName.bin>]]’. Как выяснилось, параметр S и файл либо не должны указываться вообще, либо должны указываться оба. Указание только параметра S без файла (а это есть в примере ‘/GS3S=:::2’ на странице 163 в ‘Руководство пользователя’) вызывает ошибку ‘ERROR: Невозможно установить параметр '/GS3S' ’ при запуске ‘NwKey32.exe’. В результате, если ECC160 алгоритм перестал быть под номером 8 (что есть по умолчанию), то приходится создавать свой файл с открытым ключом и указывать его в командной строке или использовать PUBKEY_08.bin данный по умолчанию.

2. Для флага ‘/V’ в документации написано, что с ним приложение будет проверять свою целостность и сигнализировать о ее нарушении, а так же ниже, что размер защищенного приложения будет контролироваться. В конец защищённого этим флагом файла я добавил 1 байт, потом ещё 4, потом 4 байта изменил в середине файла, потом целый килобайт добавил в конец. После каждого изменения сохранял файл и запускал его – программа не переставала запускаться и нормально работать.

Использую Sign ключ с GuardantDevKit 6.3 на Windows 8.1 Pro.

Re: Командные ключи NwKey32.exe

Добрый день.

Phaza7 пишет:

1. Использовал привязку к типу ключа по шаблону: ‘/GS3S[=[N]:[L]:[ID]:[S]:[<FileName.bin>]]’. Как выяснилось, параметр S и файл либо не должны указываться вообще, либо должны указываться оба. Указание только параметра S без файла (а это есть в примере ‘/GS3S=:::2’ на странице 163 в ‘Руководство пользователя’) вызывает ошибку ‘ERROR: Невозможно установить параметр '/GS3S' ’ при запуске ‘NwKey32.exe’. В результате, если ECC160 алгоритм перестал быть под номером 8 (что есть по умолчанию), то приходится создавать свой файл с открытым ключом и указывать его в командной строке или использовать PUBKEY_08.bin данный по умолчанию.

Тут не совсем понятно в чем именно заключается проблема, т.к. описанное поведение соответствует таковому описанию в нашей документации, на той же, 163 странице:

Пример:
/GS3S=:::2
Привязка к Guardant Sign с умолчательным алгоритмом шифрования и алгоритмом типа ECC160 под номером 2 (с открытым ключом по умолчанию); ID не указывается.

FileName.bin
Файл, содержащий открытый ключ ЭЦП для алгоритма ECC160.
По умолчанию - PUBKEY_08.BIN, расположенный в текущей директории.

Phaza7 пишет:

2. Для флага ‘/V’ в документации написано, что с ним приложение будет проверять свою целостность и сигнализировать о ее нарушении, а так же ниже, что размер защищенного приложения будет контролироваться. В конец защищённого этим флагом файла я добавил 1 байт, потом ещё 4, потом 4 байта изменил в середине файла, потом целый килобайт добавил в конец. После каждого изменения сохранял файл и запускал его – программа не переставала запускаться и нормально работать.

Уточните, пожалуйста, верно ли то, что уже после выполнения автоматической защиты исполняемого (.exe) файла, размер именно этого, защищенного, файла динамически изменяется? Или имеется ввиду какой то другой служебный файл приложения?

Re: Командные ключи NwKey32.exe

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

Тут не совсем понятно в чем именно заключается проблема, т.к. описанное поведение соответствует таковому описанию в нашей документации, на той же, 163 странице:
/GS3S=:::2
Привязка к Guardant Sign с умолчательным алгоритмом шифрования и алгоритмом типа ECC160 под номером 2 (с открытым ключом по умолчанию); ID не указывается.

Как раз о том я и пишу, что такой ключ не работает, попробуйте указать ключ ‘/GS3S=:::2’, и вы получите ‘ERROR: Невозможно установить параметр '/GS3S' ’. Если в шаблоне ‘/GS3S[=[N]:[L]:[ID]:[S]:[<FileName.bin>]]’ указать параметр S, то обязательно требуется указание bin файла, иначе получаем названную выше ошибку, но шаблон и ваши примеры показывают, что так делать можно.


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

Уточните, пожалуйста, верно ли то, что уже после выполнения автоматической защиты исполняемого (.exe) файла, размер именно этого, защищенного, файла динамически изменяется? Или имеется ввиду какой то другой служебный файл приложения?

Да, я поэтапно изменял вручную содержимое и размер файла созданного автоматической защитой (NwKey32.exe) с использованием ключа /V. Проверьте сами.

Re: Командные ключи NwKey32.exe

ЭХО-Эхо-эхо....

Re: Командные ключи NwKey32.exe

Прошу прощения за задержку с реакцией.

1. Вы правы, присутствует неточность в описании. Логика и идеология работы опции такова - что либо используем по умолчанию, либо указываем оба параметра (номер и ключ).

Вывод справки nwkey32.exe будет поправлен в ближайшие дни, документация будет уточнена при переносе ее на Портал Документации Guardant.

2. Опция /V не контролирует целостность всего приложения, в документации не совсем явно это указано, согласен.

Данная опция направлена в основном на контроль антиотладочных и защитных механизмов вакцины и автозащиты. Т.е. она противодействует скорее не патчингу самого приложения, а патчингу автозащиты. Мы перепроверили работу опции на ряде приложений, и она корректно отрабатывает свое предназначение.