Защита исходного кода QML от плагиатаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Защита исходного кода QML от плагиата

Сообщение Anonymous »

Цель — найти способ защитить ваш QML-код от плагиата. Это проблема, поскольку способ проектирования и реализации QML кажется необъяснимым образом незащищенным в этом отношении. Единственные типы QML, которые в некоторой степени защищены, — это те, которые полностью реализованы на C++.
  • Файлы ресурсов Qt не поддерживают никакой степени защиты.
  • даже если вы сжимаете файл ресурсов, извлечение данных из него по-прежнему довольно тривиально для любого человека со средним опытом.
  • Файлы QML, хранящиеся в файловой системе, практически доступны для использования.
  • то же самое относится и к любым удаленным файлам QML, кроме добавления зависимости от подключения к Интернету, их легко перехватить. доступ к сети и получение файлов QML через их URL-адреса.
  • Похоже, что QML не предоставляет какого-либо общедоступного API, который позволил бы пользователям достаточно контролировать разрешение типов QML для защиты своего кода.
В целом, похоже, что Qt намеренно экономит на защите кода QML, одной из очевидных возможных причин может быть принуждение людей покупать безумно выразительную коммерческую лицензию, включающую QML. компилятор.

Поэтому в отсутствие какого-либо стандартного метода защиты источников QML единственное решение, которое в настоящее время приходит мне на ум, - это контроль над тем, как разрешаются типы QML. Существует несколько способов регистрации типов в QML:
  • зарегистрироваться в исполняемом файле приложения
  • зарегистрироваться в плагине
  • зарегистрироваться через модуль QML
Однако мне нужно вручную разрешать типы QML, так же, как вы можете создать собственный QQuickImageProvider, который вводит строку URL и выводит изображение, мне нужно, чтобы механизм QML запрашивал строку с типом у моего поставщика пользовательских компонентов, который выводит готовый компонент для создания экземпляра объекта.

Это было бы легко, если бы использовался какой-либо пользовательский механизм создания экземпляров, но мне нужно, чтобы эти типы можно было использовать в обычных источниках QML. В идеале это должен быть первый механизм, используемый для разрешения типа, прежде чем просматривать доступные пути импорта или даже внутренне зарегистрированные типы.

В качестве альтернативы было бы так же полезно, если бы существовал способ полностью определить модуль QML на C++, без каких-либо внешних файлов QML, без файла qmldir и т. д.

В крайнем случае, если он не соответствует идеалу, я бы также согласился на регистрация типов QML (не C++) во время выполнения, это также может быть полезно, но я бы предпочел иметь полный контроль над процессом разрешения.

Плагин QML не справляется с этой задачей, поскольку он регистрирует типы C++, а я хочу зарегистрировать типы QML, то есть QQmlComponent, созданные из строковых источников и ссылающиеся друг на друга.

Подробнее здесь: https://stackoverflow.com/questions/348 ... plagiarism
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»