Перейти к концу метаданных
Переход к началу метаданных

Guardant Armor – это решение для защиты программного обеспечения от анализа и модификации путем обфускации и виртуализации кода.

Утилита grdarmor.exe входит в состав Guardant SDK (версии не ниже 7 Update 3) и является консольной.

 

Расположение версий:

ВерсияРасположение
32-bit C:\Program Files (x86)\Guardant\SDK7\Bin
64-bit C:\Program Files (x86)\Guardant\SDK7\Bin\x64


Запустить grdarmor.exe можно через стандартную командную строку, Windows Power Shell или при помощи заранее подготовленных пакетных файлов (*.BAT, *.CMD).

 

Внимание!

  • Нельзя выполнять защиту файлов, которые ранее уже были защищены другими протекторами, в том числе утилитами автозащиты Guardant.
  • Для защиты с использованием опции “-MAP=” необходимо при сборке приложения включать опцию генерации MAP-файла.
  • Опция режима работы конверта “-ENVELOPE_MODE=” должна быть задана всегда.
  • Всегда должна быть указана опция "-PRC" или "-INI".

 

При работе с утилитой можно применять различные опции и параметры:

Схема 1Схема 2

grdarmor.exe <опции защиты>

___________<опции поиска ключа> <модель ключа>[=<параметры привязки>]

___________<опции защиты файлов> [<файл 1>] ...[<файл N>]

grdarmor.exe <опции защиты>

___________<опции поиска ключа> <модель ключа>[=<параметры привязки>]

___________<опции защиты файлов> [<файл 1>] [<файл 2>]

___________<опции поиска ключа> <модель ключа>[=<параметры привязки>]

___________<опции защиты файлов> [<файл 3>] [<файл 4>]

 

<опции защиты>

-RC=N

Количество неудачных обращений к ключу (по умолчанию 50)

-FAST

Использовать все доступные ключи для ускорения защиты

-SILENT

Отключить вывод сообщение в защищенном приложение (отключает опцию -RC)

-MSG=<msg-файл>

Использовать сообщения об ошибках из файла (по умолчанию сообщения об ошибках берутся из ресурсов)

-PP

Вероятность генерирования полиморфных инструкций (по умолчанию 100%)

-PD

Фактор глубины полиморфных инструкций. Допустимые значения от 2 до 100 (по умолчанию 10)

-HP

Фактор уменьшения вероятности вызова функций контроля целостности. Допустимые значения от 1 до 1000

-PRC

Установить имя входного PRC файла

-PROTECT_DLL_NAME=<file>

Установить имя защищённого хранилища данных

-OUT=<путь>

Установить выходную директорию для защищаемых файлов

-Q

Запретить вывод сообщений утилитой защиты

 

<опции режима работы конверта>

-ENVELOPE_MODE=S|H:[N]:[L]

режим работы конверта (способ шифрования секций защищаемого модуля)

-S – программный режим конверта без использования алгоритмов электронного ключа

-H – режим работы конверта с использованием аппаратного алгоритма с номером N и длиной вопроса L

 

<опции для установки пути к конфигурационному файлу клиента>

-RCS_USER_DEFINED=<path>

Полный или относительный путь к файлу или каталогу

-RCS_PROGRAM_DATA=<path>

Путь относительно папки "ProgramData" к файлу или каталогу

-RCS_ENV_VAR=<name>

Имя переменной окружения, в которой установлен полный или относительный путь к файлу или каталогу (используется только для подключения к серверу Guardant Net)

 

<опции активации Guardant SP>

-SP_ACTIVATE=<grdvd-file>

Путь к файлу лицензии Guardant SP

-SP_TRIAL_ACTIVATE=<grdvd-file>:<file>

Путь к файлам лицензии и серийного номера Guardant SP (рекомендуется для автоматической активации триальных версий программ)

Примечание: используется только при активации Guardant SP ключей

 

-USE_NET_AS_LOCAL

Использовать сетевые ключи в качестве локальных

 Примечание: при привязке к локальным ключам игнорируется

 

<опции защиты файла>

-ATR=N

Количество таблиц вопросов к алгоритму (по умолчанию 2)

-AES_COUNT=N

Количество ключей шифрования (по умолчанию 5)

-INI=<ini-файл>          

Использовать ini-файл

-MAP=<map-файл>

Использовать map-файл

-LICENSE_COUNTER=limit

Предупреждать при запуске, если счетчик запусков меньше, чем limit

-LICENSE_TIME[=days]

Предупреждать при запуске, если количество дней использования осталось меньше, чем days. Работает только для ключей семейства Guardant Time. Значение по умолчанию – 14 дней.

-LICENSE_URL=string

Отображать URL в сообщении

 

<опции поиска ключа>

-UI[=ID]

Привязка к уникальному ID

-UN[=NPROG]

Привязка к уникальному номеру программы

-US[=SN]

Привязка к уникальному серийному номеру

-UV[=VER]

Проверка версии

-UM=MASK

Проверка маски запусков

Примечание: при привязке к нескольким моделям ключей опция -UI недоступна, опции -UV, -UN, -US, -UV, не имеют значений по умолчанию. Опция -USE_NET_AS_LOCAL игнорируется для локальных ключей.

 

Только для сетевых ключей:

-MN=N

Номер модуля в таблице лицензий (умолчанию -1)

-LOGIN_MODE[=H,S,P]

Выбрать режим лицензирования:

  • H - по хендлам,
  • P - по процессам,
  • S - по рабочим станциям (установлено по умолчанию)

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

 

<модель ключа>

-GC=N:L[:[ID]:[S:<файл ключа>]]

Привязать к Guardant Code

-GCN=N:L[:[ID]:[S:<файл ключа>]]

Привязать к Guardant Code Net

-GSP[=[N]:[L]:[ID:[S:<файл ключа>]]

Привязать к Guardant SP

-GSPN[=[N]:[L]:[ID:[S:<файл ключа>]]

Привязать к Guardant SP Net

-GS3S[=[N]:[L]:[ID]:[S:<файл ключа>]]

Привязать к Guardant Sign/Time

-GN3S[=[N]:[L]:[ID]:[S:<файл ключа>]]

Привязать к Guardant Sign/Time Net

-GS3[=[N]:[L]:[ID]]

Привязать к Guardant Stealth III

-GN3[=[N]:[L]:[ID]]

Привязать к Guardant Net III

-GS2[=[N]:[L]:[ID]]

Привязать к Guardant Stealth II

-GN2[=[N]:[L]:[ID]]

Привязать к Guardant Net II

Примечание: для ключей Guardant Stealth/Net II по умолчанию используется номер алгоритма GSII64 N=4 и длина вопроса L=8. Для ключей Guardant Stealth/Net III и Guardant Sign/Time/Net по умолчанию используется номер алгоритма GSII64 N=0 и длина вопроса L=8.

 

<параметры привязки>

N

Номер алгоритма ключа (GSII64 или AES)

L

Длина вопроса к алгоритму

ID

ID ключа, на котором будет происходить защита

S

Номер алгоритма ECC160

<файл ключа>

Путь к файлу с открытым ключом ECC160



Пример:

  1. grdarmor.exe -ENVELOPE_MODE=H:5:16 -GS3S=0:16 -OUT=./result -PRC=clock.prc -MAP=Clock.map Clock.exe
    Защищенное приложение Clock.exe будет запускаться в случае, если к компьютеру подсоединен ключ Guardant Sign\Time с симметричными алгоритмами #0 и #5, а длина вопроса 16. Код для защиты указан в файле clock.prc, а исполняемый файл будет помещен в подкаталог result.

  2. grdarmor.exe -ENVELOPE_MODE=S -GC=0:16 -GS3S=0:16 -OUT=./result -INI=Clock.ini -MAP=Clock.map Clock.exe
    Защищенное приложение Clock.exe будет запускаться в случае, если к компьютеру подсоединен ключ Guardant Sign\Time или Code\Code Time с симметричным алгоритмом #0 и длинной вопроса 16. Режим работы конверта программный. Для различных моделей аппаратных ключей можно использовать алгоритмы с разными номерами (числовыми именами).

 

Важно!

Привязать одно приложение к разным моделям электронных ключей возможно только в программном режиме работы конверта “-ENVELOPE_MODE=S ”.


На вход утилита grdarmor.exe может принимать 2 типа конфигурационных файлов для указания функций и участков кода, которые нужно защитить:

  • PRC – файл с расширением *.prc создается в результате обработки защищаемого приложения утилитой профилирования. Его можно открыть и отредактировать при помощи утилиты профилирования. При защите измененного приложения (например, новая версия, в которой добавлены новые и\или переработаны существующие функции) можно воспользоваться «старым» PRC-файлом, но в таком случае защитятся только те функции, hash которых не изменился.
  • INI – файл с расширением *.ini создается разработчиком вручную, где на отдельных строках сначала указывается опция включения\исключения (+p\-p) и через пробел имя функции со всеми искажениями из MAP-файла:
    +p <имя функции>
    -p <имя функции>

Пример:

  1. +p ?OnPaint@CWnd@Win32xx@@MAEJIIJ@Z
  2. -p ?OnTimer@CDlgMain@@MAEJIIJ@Z

 

При повторном использовании INI-файла будет произведена попытка защиты всех указанных функций, вне зависимости от того, менялся их hash или нет.


 

 

  • Нет меток