Guardant Armor – это решение для защиты программного обеспечения от анализа и модификации путем обфускации и виртуализации кода.
Для того чтобы воспользоваться продуктом, нужно скачать Guardant SDK и запустить утилиту grdarmor.exe в режиме командной строки.
Утилита grdarmor.exe поставляется в составе Guardant SDK (версии не ниже 7 Update 3) и является консольной. Запустить grdarmor.exe можно через стандартную командную строку, Windows Power Shell или при помощи заранее подготовленных пакетных файлов (*.BAT, *.CMD).
При работе с утилитой можно применять различные опции и параметры:
Важно!
Нельзя выполнять защиту файлов, которые ранее уже были защищены другими протекторами, в том числе и утилитами автозащиты Guardant.
Важно!
Чтобы выполнить защиту целевого приложения, необходимо при его сборке включать опцию генерации MAP-файла, а при защите использовать опцию “-MAP=”.
Важно!
Опция режима работы конверта “-ENVELOPE_MODE=” всегда должна быть задана.
При работе с утилитой можно применять различные опции и параметры:
...
N | Номер алгоритма ключа (GSII64 или AES) |
L | Длина вопроса к алгоритму |
ID | ID ключа, на котором будет происходить защита |
S | Номер алгоритма ECC160 |
<файл ключа> | Путь к файлу с открытым ключом ECC160 |
Пример:
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.
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 или INI.
- PRC – файл с расширением *.prc создается в результате обработки защищаемого приложения утилитой профилирования. Сформированный ранее PRC-файл можно позже открыть и отредактировать при помощи утилиты профилирования. При защите измененного приложения (например, новая версия в которой добавлены новые функции и\или переработаны существующие) можно воспользоваться «старым» PRC-файлом, но в таком случае защитятся только те функции, hash которых не изменился.
- INI – файл с расширением *.ini создается разработчиком вручную, где на отдельных строках сначала указывается опция включения\исключения (+p\-p) и через пробел имя функции со всеми искажениями из MAP-файла.
+p <имя функции>
-p <имя функции>
Пример:
+p ?OnPaint@CWnd@Win32xx@@MAEJIIJ@Z
-p ?OnTimer@CDlgMain@@MAEJIIJ@Z
При повторном использовании INI-файла будет произведена попытка защиты всех указанных функций, вне зависимости от того менялся их hash или нет.