Защитите DLL-файл файлом лицензии [закрыт]

StackOverflow https://stackoverflow.com/questions/106347

  •  01-07-2019
  •  | 
  •  

Вопрос

Каков наилучший способ обеспечить использование / загрузку библиотеки DLL с файлом лицензии?

Это было полезно?

Решение

Пара вещей, которые вы, возможно, захотите рассмотреть:

Проверьте файл DLL.Используя криптографическая хэш - функция, вы можете сохранить это внутри файла лицензии или внутри библиотеки DLL.Это предоставляет метод проверки, позволяющий определить, не взломан ли мой исходный файл DLL, или это файл лицензии для этой библиотеки DLL.Несколько простых методов замены байтов могут быстро увести вашу хэш-функцию с проторенной дороги (и, следовательно, ее нелегко воспроизвести).

Не храните свой хэш в виде строки, разделите его на неподписанные короткие фрагменты в разных местах.

Как сказал Ларри, MAC-адрес - довольно распространенное явление.Есть много примеров того, как это сделать Проект Code ( Код), но имейте в виду, что в наши дни легко подделать.

Моим предложением должно быть использование частный /публичный ключи для генерации лицензий.

Короче говоря, способы атаки будут двоичными (измените инструкции вашего DLL-файла), чтобы защититься от этого, или генерация ключа, чтобы сделать каждого пользователя лицензии, компьютер и даже установку специфичными.

Другие советы

Вы можете проверить наличие лицензии внутри DllMain() и умереть, если она не найдена.

Это также зависит от того, как работает ваш лицензионный алгоритм.Я бы посоветовал вам рассмотреть возможность использования чего-то вроде Обмен ключами Диффи–Хеллмана (или даже RSA) сгенерировать какой-то открытый / закрытый ключ, который может быть передан вашим пользователям на основе некоторой информации.

(В зависимости от приложения, я знаю один случай, когда я написал лицензионный код по контракту для компании, они использовали MAC - адрес, и некоторые другие данные, хэшировал их и шифровал хэш, присваивая им "ключевое значение", если регистрационный номер был правильным).Это гарантирует, что файл ключа не может быть перемещен (или передан) на другой компьютер, что приведет к "краже" программного обеспечения.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top