(2022-11-09 09:20:43 отредактировано maksp1)

Защита приложения qt, linux

Добрый день!

Необходимо защитить c++ приложение написанное на qt под ос Linux. Используя средства защиты Guardant Armor и Guardant sign/Guardant dl.
Есть ли подробная инструкция? Есть ли возможность проверить на демонстрационных ключах.
Пусть исходный код программы:
#include <QCoreApplication>
#include <QDebug>


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    qDebug() << "Test Guardant";

    return a.exec();
}

Re: Защита приложения qt, linux

После просмотра данного видеоурока: https://www.youtube.com/watch?v=wHQWB0HrdD0&t=444s
Остается главный вопрос. Как внедрить через api защиту в приложение на linux?
И каким образом защитить бинарник на linux от реверс инжиниринга средствами Guardant Armor?

(2022-11-10 12:44:17 отредактировано Тимофей Ершов)

Re: Защита приложения qt, linux

Добрый день.
Подробная инструкция для защиты приложений с помощью Guardant sign/Guardant dl есть на нашем портале документации.
Для защиты приложений, предназначенных для работы в операционных системах Linux необходимо использовать API. Описание функций API вы сможете найти на нашем портале документации, в разделе Guardant Licensing API.
В составе набора инструментов для защиты Guardant SLK есть примеры использования API (по умолчанию C:\Program Files (x86)\Guardant\Software Licensing Kit\samples)

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

Документации по GrdArmor для Linux в данный момент на портале нет.
Ниже краткое описание опций с параметрами

usage:  guardant_armor [<protection options>] [<options>]
    [<file options>] [<file 1>] ... [<file options>] [<file N>]

<options>

-RESULT=<result-file>    - set output RESULT-file name for batch mode protection
-OUT=<path>        - set output directory for protected files
-?, -HELP        - print this help message

<file options>

-MAP=<map-file>        - set input MAP-file name
-PRC=<prc-file>        - set input PRC-file name
-INI=<ini-file>        - set input INI-file name
-SPLASH=<bmp-file>    - set application startup splash screen

<protection options>

-PP=n            - polymorphic instruction generation's probability 1%-100% (100% by default)
-PD=n            - polymorphic instruction's depth factor in range 2-100 (10 by default)
-HP=n            - hash function's probability decrease factor (10 by default)
-PUB=<pub-file>        - set input public file name

Re: Защита приложения qt, linux

Тимофей Ершов пишет:

Добрый день.
Подробная инструкция для защиты приложений с помощью Guardant sign/Guardant dl есть на нашем портале документации.
Для защиты приложений, предназначенных для работы в операционных системах Linux необходимо использовать API. Описание функций API вы сможете найти на нашем портале документации, в разделе Guardant Licensing API.
В составе набора инструментов для защиты Guardant SLK есть примеры использования API (по умолчанию C:\Program Files (x86)\Guardant\Software Licensing Kit\samples)

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

Документации по GrdArmor для Linux в данный момент на портале нет.
Ниже краткое описание опций с параметрами

usage:  guardant_armor [<protection options>] [<options>]
    [<file options>] [<file 1>] ... [<file options>] [<file N>]

<options>

-RESULT=<result-file>    - set output RESULT-file name for batch mode protection
-OUT=<path>        - set output directory for protected files
-?, -HELP        - print this help message

<file options>

-MAP=<map-file>        - set input MAP-file name
-PRC=<prc-file>        - set input PRC-file name
-INI=<ini-file>        - set input INI-file name
-SPLASH=<bmp-file>    - set application startup splash screen

<protection options>

-PP=n            - polymorphic instruction generation's probability 1%-100% (100% by default)
-PD=n            - polymorphic instruction's depth factor in range 2-100 (10 by default)
-HP=n            - hash function's probability decrease factor (10 by default)
-PUB=<pub-file>        - set input public file name

В папке с установленной SDK я не нашел приложение под linux guardant_armor, есть только grdarmor.exe. Хотелось бы на практике протестировать работу модуля.

Удалось собрать данный пример  C:\Program Files (x86)\Guardant\Software Licensing Kit\samples и создать один заказ и успешно активировать лицензию, однако возникли некоторые вопросы:
1)Следующие ключи будут доступны при покупке в Guardant Station?
static const grd_uint32 DEMO_ACCESSCODE_PUBLIC = 0x519175b7Lu;        // Demo public code
static const grd_uint32 DEMO_ACCESSCODE_PRIVATEREAD = 0x51917645Lu;   // Demo private read code
static const grd_uint32 DEMO_ACCESSCODE_PRIVATEWRITE = 0x51917603Lu;  // Demo private write code
2)Как корректно привязать программный компонет при помощи API? Необходимо использовать фунцию GrdVerifyDigest()?
Можете предоставить пример использования на примере с ключем F9 75 07 D7 85 22 54 1D 83 82 9D 7B B5 8C 0A FF AB E1 34 9B D7 43 4A 43 D3 0D 6F 5F F3 35 83 F5 E3 00 4A 78 D7 37 3D 88?
Я только изменить номер програмного компонента (Features) на тот, который указал в Guardant Station и после активации лицензии приложения запустилось. Но насколько я понимаю его нужно было предварительно свзяать с компонентом. Обьясните пожалуйста.
Прикладываю последний вывод программы:
Encrypt some data using the feature with id 14 without licensing limitations: success
Decrypte previously encrypted data using the feature with id 14 without licensing limitations: success
Digitally sign a message: success
Get rest of the feature life time: success
Rest of feature life time in seconds: 31678638
success
Current datetime in seconds: 1668154961
ALL SUCCESSFULLY DONE!

Спасибо за ответы!

Re: Защита приложения qt, linux

Добрый день.
В папке с установленной SDK я не нашел приложение под linux guardant_armor, есть только grdarmor.exe.
Да, в составе Guardant SDK присутствует GrdArmor только для защиты приложений, оптимизированных для работы в операционных системах семейства Windows.
GrdArmor для защиты приложений под Linux - самостоятельный коммерческий продукт. Приобрести его можно по запросу. Ранее ваши контакты (адрес эл. почты, указанный при регистрации) были переданы нашему менеджеру по продуктам Guardant. В ближайшее время менеджер свяжется с вами и ответит на все вопросы касающиеся тестирования продукта и приобретения.

1)Следующие ключи будут доступны при покупке в Guardant Station?
При покупке вам буду присвоены ваши уникальные коды доступа.

2)Как корректно привязать программный компонент при помощи API?
Наглядный пример входит в состав Guardant SLK (папка samples).
Схема привязки может быть следующей

  • в личном кабинете Guardant Station необходимо создать компонент, добавить его в продукт, продукт опубликовать в заказ, создав таким образом лицензию

  • в код защищаемого приложения необходимо встроить функции API,которые будут обнаруживать на рабочей станции лицензию и производить логин на указанный компонент

Условие успешного обнаружения лицензии и успешного логина на компонент - необходимое условие для запуска защищенного приложения.

GrdVerifyDigest - проверяет цифровую подпись данных при помощи криптографического алгоритма ECC160.