Как защитить скомпилированное приложение MATLAB от распространения?

Как я могу защитить скомпилированный MATLAB .exe из:

  • конструирование
  • несанкционированный дистрибутив?

какие упаковщики, инструменты защиты и т. д. Я должен использовать?

2 ответов


Я ранее сталкивался именно с этой проблемой. Вот некоторые мысли:

  • скомпилированные двоичные файлы MATLAB фактически являются ZIP-архивами, которые распаковываются (возможно, во временную или домашнюю папку, доступную пользователю) во время выполнения.
  • сами файлы шифруются с помощью AES, что не является идеальным, так как ключ может быть теоретически восстановлен.
  • вышеизложенное делает бессмысленным дополнительно шифровать окончательный exe с пользовательскими ключами чтобы ограничить распространение, так как распакованные файлы будут доступны во время выполнения. В этом смысле это эквивалентно просто используя mcc для защиты.
  • в качестве дополнительного улова: mex файлы в дистрибутиве не шифруются. Вы можете взять файл mex из MCR_CACHE и напрямую использовать его. то же самое касается классов Java.
  • следовательно, вам нужно решение, которое будет шифровать/расшифровывать записи / чтения диска, выполняемые MATLAB исполняемый файл в дополнение к шифрованию самого исполняемого файла
  • очевидно, вам нужно иметь возможность указать, какой диск обращается к шифрованию - вы хотите, чтобы пользователь мог предоставлять входные данные и читать его вывод
  • В идеале это решение также сохранит зашифрованную копию двоичных файлов в памяти и только расшифрует их, когда это необходимо, т. е. когда часть кода/данных выполняется/доступна
  • кроме того, решение должно определить, что код выполняется из отладчика и завершает работу программы в таких случаях
  • Это должно быть трудно реконструировать процесс шифрования для извлечения ключей. С программным решением это всегда возможно (и проще, чем с аппаратным решением), чтобы получить ключи.

мы в конечном итоге использовали решение, которое включает USB-ключ. Он выполняет шифрование/дешифрование "на лету" и более или менее указанные выше сложности. Он работает в настройка клиент / сервер, т. е. у вас может быть USB-ключ на сервере, и клиенты связываются с сервером для проверки лицензии и запуска кода. Однако в то время полное шифрование поддерживалось только в Windows. Я не уверен, должен ли я упомянуть название компании здесь на SO (я никоим образом не связан с ним, но в любом случае). Я могу рассказать вам в частном порядке, что мы использовали, или вы могли бы немного погуглить - на этом рынке есть альтернативы.

редактировать I ошибся в своем первоначальном заявлении. Архив действительно извлекается в каталог MCR_CACHE, но файлы зашифрованы. Однако это все равно не мешает перераспределению скомпилированной программы. Хотя сценарии недоступны в открытом тексте, в этом смысле ваша интеллектуальная собственность защищена. Более подробное описание того, что делает и не защищает инструмент развертывания MATLAB, и краткое заявление о безопасности схемы можно найти вот!--15-->.


существует коммерческая утилита под названием Taurus, которая может использоваться для копирования приложений Matlab, как в pcoded, так и в скомпилированном формате. Taurus содержит ряд типичных схем защиты от копирования, найденных в настольных приложениях. Пожалуйста, смотрите http://www.algorithmprotection.com/index.php/component/content/article/34-products/46-taurus